Операнд | Описание | Тип данных |
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.
Если оба входных растра одноканальные либо входные данные - одноканальный растр и константа, выходной растр будет одноканальным.
Если оба набора входных данных являются многоканальными растрами, то оператор выполнит операцию для каждого канала из одного набора входных данных, а результатом будет многоканальный растр. Количество каналов в каждом входном многоканальном растре должно быть одинаковым.
Если один из входных растров многоканальный, а другие входные данные - константа, оператор выполнит операцию с постоянным значением для каждого канала многоканального растра, а результатом будет многоканальный растр.
Если оба набора входных данных являются многоканальными растрами с одинаковым количеством переменных, то оператор выполнит операцию для всех срезов с одинаковым значением измерения, а результат будет многоканальным растром. Переменные во входных данных должны иметь одинаковую размерность или общую размерность, но никаких нетипичных измерений.
Если в обоих входных наборах данных есть одна переменная, но разные названия, задайте переменную геообработки matchMultidimensionalVariable как False, чтобы выполнить операцию.
Если один из входных данных является многомерным растром, а другой входной параметр является константой, оператор выполнит операцию для всех срезов для всех переменных с постоянным значением, и на выходе будет многомерный растр.
Параметры
Пример кода
В этом примере выполняется булева операция 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")