~ (布尔非) (arcpy.sa)

摘要

对此输入栅格的各像元值执行“布尔求反”(非)运算。

插图

Boolean Not illustration
OutRas = ~ Raster("InRas1")

讨论

输入(操作数)是栅格时,~ 运算符将执行“布尔非”运算。如果输入(操作数)是数值,则 ~ 运算符将执行“按位非”运算。有关如何使用运算符的详细信息,请参阅使用运算符

当表达式中使用多个运算符时,其不一定按照从左到右的顺序执行。具有最高优先值的运算符将首先执行。有关运算符优先级的详细信息,请参阅运算符优先级表。您可使用括号来控制执行顺序。

布尔型 (~, &, ^, |) 运算符具有比关系 (<, <=, >, >=, ==, !=) 运算符更高的优先级。因此,当布尔型运算符在相同表达式中用作关系运算符时,布尔型运算符将被首先执行。要改变执行顺序,请使用括号。

当在单个表达式中连续使用多个关系运算符和/或布尔运算符时,在某些情况下它可能无法执行。要避免此潜在问题,请在表达式中使用适当的括号,以便明确地定义运算符的执行顺序。有关详细信息,请参阅复杂语句规则

要进行此布尔运算,仅需单个输入。

如果输入值为浮点型,则值会在执行布尔运算前通过截断转换为整型值。输出值始终是整数。

语法

~ in_raster_or_constant
操作数说明数据类型
in_raster_or_constant

“布尔非”运算中所使用的输入。

Raster Layer | Constant

返回值

名称说明数据类型
out_raster

输出栅格对象。

输出值为 0 或 1。

Raster

代码实例

~(布尔非)示例 1(Python 窗口)

本例对输入栅格执行“布尔非”(求反)运算。

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")
~(布尔非)示例 2(独立脚本)

本例对输入栅格执行“布尔非”(求反)运算。

# 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")

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute BooleanNot
outBooleanNot = ~ inRaster

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

环境

相关主题

5/10/2014