Доступно с лицензией Spatial Analyst.
Краткая информация
Выполняет булеву операцию Исключающее "Or" над значениями ячеек двух исходных растров.
Рисунок
Обсуждение
Оператор ^ выполняет булеву операцию исключающее ИЛИ, когда одно или несколько входных значений являются растрами. Если оба входных значения являются числами, ^ оператор выполняет побитовую булеву операцию исключающее ИЛИ. Дополнительную информацию о работе с операторами можно найти в разделе Работа с операторами.
Если в выражении используется несколько операторов, они не обязательно выполняются слева направо. Оператор с высшим значением приоритета будет выполнен первым. Более подробно о приоритете операторов см. в таблице приоритета операторов. Порядок выполнения можно изменить с помощью скобок.
Уровень приоритета Булевых операторов (~, &, ^, |) выше, чем у реляционных операторов (<, <=, >, >=, ==, !=). Поэтому, если в одном выражении используются Булевы и реляционные операторы, в первую очередь выполняются булевы операторы. Чтобы изменить порядок выполнения, используйте скобки.
Если Булевы и/или реляционные операторы последовательно используются в одном выражении, в некоторых случаях его выполнение может завершиться неудачей. Во избежание потенциальных проблем, используйте соответствующие скобки в выражении, чтобы четко определить порядок выполнения операторов. Для получения более подробной информации см. Правила комплексного оператора.
Для выполнения Булевой операции необходимо наличие двух входных значений.
Для этого оператора не важен порядок входных данных.
Если входными данными служат значения с плавающей точкой, они преобразуются в целые числа путем усечения до выполнения Булевой операции. Выходные значения всегда целочисленные.
Также булеву операцию исключающее ИЛИ можно выполнять a ^= b, что является альтернативным способом написания a = a ^ b.
Синтаксис
in_raster_or_constant1 ^ in_raster_or_constant2
Операнд | Объяснение | Тип данных |
in_raster_or_constant1 | Первое входное значение булевой операции исключающее ИЛИ. Если одно из входных значений растровое, а другое — скалярное, создается выходной растр с оценкой, выполняемой для каждой ячейки во входном растре. | Raster Layer | Constant |
in_raster_or_constant2 | Второе входное значение для булевой операции исключающее ИЛИ. Если одно из входных значений растровое, а другое — скалярное, создается выходной растр с оценкой, выполняемой для каждой ячейки во входном растре. | Raster Layer | Constant |
Возвращено значение
Имя | Объяснение | Тип данных |
out_raster | Объект выходного растра. Выходное значение должно быть 0 или 1. | Raster |
Пример кода
^ (Булево исключающее ИЛИ), пример 1 (окно Python)
В этом примере выполняется булева операция исключающее ИЛИ на двух входных растрах.
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")
^ (Булево исключающее ИЛИ), пример 2 (отдельный скрипт)
В этом примере выполняется булева операция XOr на двух входных растрах.
# Name: Op_BooleanXOr_Ex_02.py
# Description: Performs a Boolean Exclusive 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")
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute BooleanXOr
outBooleanXOr = inRaster1 ^ inRaster2
# Save the output
outBooleanXOr.save("C:/sapyexamples/output/outboolxor")