~ (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")

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