& (Boolean And) operator

Доступно с лицензией Spatial Analyst.

Доступно с лицензией Image Analyst.

Краткая информация

Выполняет Булеву операцию И (And) для значений ячеек двух входных растров.

Иллюстрация

Иллюстрация Булев И
OutRas = Raster("InRas1") & Raster("InRas2")

Обсуждение

Оператор & выполняет булеву операцию And-, когда одно или несколько входных значений (операндов) являются растрами. Если оба входных значения (операнда) & являются числами, оператор & выполняет побитовую операцию And. Дополнительную информацию о работе с операторами можно найти в разделе Работа с операторами.

Если в выражении используется несколько операторов, их необязательно выполнять в порядке слева направо. Оператор с наивысшим значением приоритета будет выполнен первым. Более подробно см. таблицу приоритета операторов в разделе Работа с операторами в алгебре карт. Порядок выполнения операторов меняется с помощью скобок.

У булевых операторов (~, &, ^, |) уровень приоритет более высокий, чем у операторов сравнения (<, <=, >, >=, ==, !=). Поэтому если булевы операторы используются в выражении вместе с операторами сравнения, логические операторы будут выполняться первыми. Для изменения порядка выполнения операторов используйте скобки.

Когда несколько реляционных или логических операторов используются последовательно в одном выражении, в некоторых случаях выражение может не выполниться. Чтобы избежать этого, используйте в выражении соответствующие круглые скобки, чтобы явно задать порядок выполнения операторов. Более подробно изучите Правила сложных выражений.

Для выполнения Булевой операции необходимо наличие двух входных файлов.

Для этого оператора не важен порядок растров во входном списке.

При вводе значений с плавающей точкой они конвертируются в целочисленные посредством сокращения знаков перед выполнением булевой операции. Выходные значения всегда целочисленные.

Также булеву операцию And можно выполнять a &= b, что является альтернативным способом написания a = a & b.

Если оба входных растра являются одноканальными или на входе имеется константа, на выходе получится одноканальный растр.

Если оба входных растра являются многоканальными, оператор будет выполнен для каждого канала, а выходной растр будет многоканальным. Число каналов всех многоканальных растров должно быть одинаковым.

Если один из входных растров является многоканальным, а другие входные данные - константами, оператор выполнится с постоянным значением для каждого канала многоканального входного растра, а выходной растр будет многоканальным.

Если все входные данные являются многомерными растрами с одинаковым количеством переменных, оператор будет выполнен для всех срезов с одинаковым значением измерения, а на выходе будет получен многомерный растр. У переменных во входных данных должны быть одинаковые или общие размерности.

Если у обоих входных данных одна переменная, но разные имена, установите False для среды геообработки Сопоставить многомерную переменную, чтобы выполнить операцию.

Если одними из входных данных является многомерный растр, а другие - константой, оператор будет выполнен для всех срезов для всех переменных с постоянным значением, и на выходе будет получен многомерный растр.

Параметры

ОперандОписаниеТип данных
in_raster_or_constant1

Первый вход для использования в операции Булев И.

Если один из наборов входных данных – растр, а другой – скаляр, то создается выходной растр, для получения которого для каждой ячейки входного растра выполняется вычисление.

Raster Layer | Constant
in_raster_or_constant2

Второй вход для использования в операции Булев И.

Если один из наборов входных данных – растр, а другой – скаляр, то создается выходной растр, для получения которого для каждой ячейки входного растра выполняется вычисление.

Raster Layer | Constant

Пример кода

& Булев оператор And, пример 1 (окно Python)

В этом примере выполняется булева операция And на двух входных растрах.

import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C:/iapyexamples/data"
outBooleanAnd = Raster("degs") & Raster("negs")
outBooleanAnd.save("C:/iapyexamples/output/outbooland.img")
& Булев оператор And, пример 2 (автономный скрипт)

В этом примере выполняется булева операция And на двух входных растрах.

# Name: Op_BooleanAnd_Ex_02.py
# Description: Performs a Boolean And operation on the cell values
#              of two input rasters
# Requirements: Image Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.ia import *

# Set environment settings
env.workspace = "C:/iapyexamples/data"

# Set local variables
inRaster1 = Raster("degs")
inRaster2 = Raster("negs")

# Execute BooleanAnd
outBooleanAnd = inRaster1 & inRaster2

# Save the output 
outBooleanAnd.save("C:/iapyexamples/output/outbooland")

Связанные разделы