Операнд | Описание | Тип данных |
in_raster_or_constant1 | Первый входной растр для выполнения операции Булев XOr. Если один из наборов входных данных – растр, а другой – скаляр, то создается выходной растр, для получения которого для каждой ячейки входного растра выполняется вычисление. | Raster Layer | Constant |
in_raster_or_constant2 | Второй входной растр для выполнения операции Булев XOr. Если один из наборов входных данных – растр, а другой – скаляр, то создается выходной растр, для получения которого для каждой ячейки входного растра выполняется вычисление. | Raster Layer | Constant |
Доступно с лицензией Spatial Analyst.
Доступно с лицензией Image Analyst.
Краткая информация
Выполняет логическую операцию Исключающее ИЛИ над значениями ячеек двух исходных растров.
Иллюстрация
Обсуждение
Оператор ^ выполняет булеву операцию XOr, когда одно или несколько входных значений являются растрами. Если оба входных значения являются числами, оператор ^ выполняет побитовую булеву операцию XOr. Дополнительную информацию о работе с операторами можно найти в разделе Работа с операторами.
Если в выражении используется несколько операторов, их необязательно выполнять слева направо. Оператор с наивысшим значением приоритета будет выполнен первым. Более подробно см. таблицу приоритета операторов в разделе Работа с операторами в Алгебре карт. Порядок выполнения операторов можно изменить с помощью скобок.
У булевых операторов (~, &, ^ и |) уровень приоритет более высокий, чем у операторов сравнения (<, <=, >, >=, == и !=). Поэтому если булевы операторы используются в выражении вместе с операторами сравнения, логические операторы будут выполняться первыми. Для изменения порядка выполнения операторов нужно использовать скобки.
Если в выражении последовательно используется несколько операторов сравнения и/или булевых операторов, в некоторых случаях оно может не выполниться. Чтобы избежать подобной проблемы, используйте в выражении соответствующие круглые скобки, чтобы явно задать порядок выполнения операторов. Более подробно изучите правила сложных выражений в разделе Построение сложных выражений.
Для выполнения Булевой операции необходимо наличие двух входных файлов.
Для этого оператора не важен порядок растров во входном списке.
При вводе значений с плавающей точкой они конвертируются в целочисленные посредством сокращения знаков перед выполнением булевой операции. Выходные значения всегда целочисленные.
Также булеву операцию XOr можно выполнять a ^= b, что является альтернативным способом написания a = a ^ b.
Если оба входных растра являются одноканальными или на входе имеется константа, на выходе получится одноканальный растр.
Если оба входных растра являются многоканальными, оператор будет выполнен для каждого канала, а выходной растр будет многоканальным. Число каналов всех многоканальных растров должно быть одинаковым.
Если один из входных растров является многоканальным, а другие входные данные - константами, оператор выполнится с постоянным значением для каждого канала многоканального входного растра, а выходной растр будет многоканальным.
Если все входные данные являются многомерными растрами с одинаковым количеством переменных, оператор будет выполнен для всех срезов с одинаковым значением измерения, а на выходе будет получен многомерный растр. У переменных во входных данных должны быть одинаковые или общие размерности.
Если у обоих входных данных одна переменная, но разные имена, установите False для среды геообработки matchMultidimensionalVariable, чтобы выполнить операцию.
Если одними из входных данных является многомерный растр, а другие - константой, оператор будет выполнен для всех срезов для всех переменных с постоянным значением, и на выходе будет получен многомерный растр.
Параметры
Пример кода
В этом примере выполняется булева операция XOr на двух входных растрах.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outBooleanXOr = Raster("degs") ^ Raster("negs")
outBooleanXOr.save("C:/sapyexamples/output/outboolxor.tif")
В этом примере выполняется булева операция XOr на двух входных растрах.
# Name: Op_BooleanOr_Ex_02.py
# Description: Performs a Boolean Or 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 BooleanOr
outBooleanOr = inRaster1 | inRaster2
# Save the output
outBooleanOr.save("C:/sapyexamples/output/outboolor")