Операнд | Описание | Тип данных |
in_raster_or_constant1 | Первый вход для использования в операции Булев И. Если один из наборов входных данных – растр, а другой – скаляр, то создается выходной растр, для получения которого для каждой ячейки входного растра выполняется вычисление. | Raster Layer | Constant |
in_raster_or_constant2 | Второй вход для использования в операции Булев И. Если один из наборов входных данных – растр, а другой – скаляр, то создается выходной растр, для получения которого для каждой ячейки входного растра выполняется вычисление. | Raster Layer | Constant |
Доступно с лицензией Spatial Analyst.
Доступно с лицензией Image Analyst.
Краткая информация
Выполняет Булеву операцию И (And) для значений ячеек двух входных растров.
Иллюстрация
Обсуждение
Оператор & выполняет булеву операцию And-, когда одно или несколько входных значений (операндов) являются растрами. Если оба входных значения (операнда) & являются числами, оператор & выполняет побитовую операцию And. Дополнительную информацию о работе с операторами можно найти в разделе Работа с операторами.
Если в выражении используется несколько операторов, их необязательно выполнять слева направо. Оператор с наивысшим значением приоритета будет выполнен первым. Более подробно см. таблицу приоритета операторов в разделе Работа с операторами в Алгебре карт. Порядок выполнения операторов можно изменить с помощью скобок.
У булевых операторов (~, &, ^ и |) уровень приоритет более высокий, чем у операторов сравнения (<, <=, >, >=, == и !=). Поэтому если булевы операторы используются в выражении вместе с операторами сравнения, логические операторы будут выполняться первыми. Для изменения порядка выполнения операторов нужно использовать скобки.
Если в выражении последовательно используется несколько операторов сравнения и/или булевых операторов, в некоторых случаях оно может не выполниться. Чтобы избежать подобной проблемы, используйте в выражении соответствующие круглые скобки, чтобы явно задать порядок выполнения операторов. Более подробно изучите правила сложных выражений в разделе Построение сложных выражений.
Для выполнения Булевой операции необходимо наличие двух входных файлов.
Для этого оператора не важен порядок растров во входном списке.
При вводе значений с плавающей точкой они конвертируются в целочисленные посредством сокращения знаков перед выполнением булевой операции. Выходные значения всегда целочисленные.
Также булеву операцию And можно выполнять a &= b, что является альтернативным способом написания a = a & b.
Если оба входных растра являются одноканальными или на входе имеется константа, на выходе получится одноканальный растр.
Если оба входных растра являются многоканальными, оператор будет выполнен для каждого канала, а выходной растр будет многоканальным. Число каналов всех многоканальных растров должно быть одинаковым.
Если один из входных растров является многоканальным, а другие входные данные - константами, оператор выполнится с постоянным значением для каждого канала многоканального входного растра, а выходной растр будет многоканальным.
Если все входные данные являются многомерными растрами с одинаковым количеством переменных, оператор будет выполнен для всех срезов с одинаковым значением измерения, а на выходе будет получен многомерный растр. У переменных во входных данных должны быть одинаковые или общие размерности.
Если у обоих входных данных одна переменная, но разные имена, установите False для среды геообработки matchMultidimensionalVariable, чтобы выполнить операцию.
Если одними из входных данных является многомерный растр, а другие - константой, оператор будет выполнен для всех срезов для всех переменных с постоянным значением, и на выходе будет получен многомерный растр.
Параметры
Пример кода
В этом примере выполняется булева операция And на двух входных растрах.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outBooleanAnd = Raster("degs") & Raster("negs")
outBooleanAnd.save("C:/sapyexamples/output/outbooland.img")
В этом примере выполняется булева операция And на двух входных растрах.
# Name: Op_BooleanAnd_Ex_02.py
# Description: Performs a Boolean And operation on the cell values
# of two input rasters
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster1 = Raster("degs")
inRaster2 = Raster("negs")
# Execute BooleanAnd
outBooleanAnd = inRaster1 & inRaster2
# Save the output
outBooleanAnd.save("C:/sapyexamples/output/outbooland")