| (Boolean Or) operator

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

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

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

Выполняет Булеву операцию ИЛИ (OR) для значений ячеек двух входных растров.

Иллюстрация

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

Обсуждение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

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

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

Raster Layer | Constant
in_raster_or_constant2

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

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

Raster Layer | Constant

Пример кода

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

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

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

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

# Name: Op_BooleanOr_Ex_02.py
# Description: Performs a Boolean 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 BooleanOr
outBooleanOr = inRaster1 | inRaster2

# Save the output 
outBooleanOr.save("C:/iapyexamples/output/outboolor")

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