~ (Boolean Not) operator

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

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

Сводка

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

Иллюстрация

Иллюстрация булева оператора Not
OutRas = ~ Raster("InRas1")

Описание

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

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

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

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

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

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

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

Синтаксис

~ in_raster_or_constant
ОперандОбъяснениеТип данных
in_raster_or_constant

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

Raster Layer | Constant

Значение отраженного сигнала

NameОбъяснениеТип данных
out_raster

Объект выходного растра.

Выходное значение должно быть 0 или 1.

Raster

Пример кода

~ Булев оператор 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 (Boolean 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")

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