^ (Boolean XOr) operator

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

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

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

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

Иллюстрация

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

Обсуждение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

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

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

Raster Layer | Constant
in_raster_or_constant2

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

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

Raster Layer | Constant

Пример кода

^ (Булев XOr), пример 1 (окно Python)

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

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

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

# Name: Op_BooleanXOr_Ex_02.py
# Description: Performs a Boolean Exclusive Or 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 BooleanXOr
outBooleanXOr = inRaster1 ^ inRaster2

# Save the output 
outBooleanXOr.save("C:/iapyexamples/output/outboolxor")

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