~ (Boolean Not) operator

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

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

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

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

Иллюстрация

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

Обсуждение

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

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

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

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

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

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

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

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

Параметры

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

Входные данные, которые будут использоваться в операции Булев Не.

Raster Layer | Constant

Пример кода

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

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outBooleanNot = ~ Raster("degs")
outBooleanNot.save("C:/sapyexamples/output/outboolnot.tif")
~ (Булев Not), пример 2 (автономный скрипт)

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

# Name: Op_BooleanNot_Ex_02.py
# Description: Performs a Boolean complement (NOT) operation on the
#              cell values of an input raster
# 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
inRaster = Raster("degs")

# Execute BooleanNot
outBooleanNot = ~ inRaster

# Save the output 
outBooleanNot.save("C:/sapyexamples/output/outboolnot")

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