ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

在“地图代数”中使用运算符

需要 Spatial Analyst 许可。

  • 运算符规则
  • 运算符优先级

在“地图代数”中,运算符对输入栅格和数字应用数学运算。

通常将运算符放置到两个输入(操作数)之间以执行一项数学运算(例如,outVar = 3 + 7)。在“地图代数”中,操作数可以是栅格或者数字。要对栅格使用运算符,栅格必须是栅格对象。

下表提供了一份快速参考,指明了相对于 Python 运算符和之前 9.x 版本的“地图代数”运算符而言,如何实现最新的“地图代数”运算符。

操作Python 运算符地图代数运算符9.x 版本地图代数运算符 *Spatial Analyst GP 工具
算术

加

+

+

+

加

除

/

/

/, div

除

整除

//

//

N/A

N/A

模

%

%

求模

求模

乘法

*

*

*

乘

幂

**

**

N/A

幂

减

-

-

-

减

一元减号

-

-

-

取反

一元加号

+

+

N/A

N/A

布尔

布尔与

N/A

&

&, and

布尔与

布尔求反

N/A

~

^, not

布尔非

布尔异或

N/A

^

!, xor

布尔异或

布尔或

N/A

|

|, or

布尔或

关系

等于

==

==

==, eq

等于

大于

>

>

>, gt

大于

大于等于

>=

>=

>=, ge

大于等于

小于

<

<

<, lt

小于

小于等于

<=

<=

<=, le

小于等于

不等于

!=

!=

^=, <>, ne

不等于

按位

按位与

&

N/A

&&

按位与

按位补码

~

N/A

^^

按位非

按位异或

^

N/A

!!

按位异或

按位左移

<<

<<

<<

按位左移

按位或

|

N/A

||

按位或

按位右移

>>

>>

>>

按位右移

* 9.x 版本地图代数运算符是指在 9.x 以及更早的 ArcGIS 版本中的“单输出地图代数”工具或者 Spatial Analyst 工具条中的“栅格计算器”中使用的运算符符号。

运算符规则

  • 只对数字使用运算符时,结果将为数字。
    # outVar will be assigned 10
    outVar = 3 + 7
    
  • 对栅格使用运算符时,栅格必须是栅格对象。
    outRas = Raster("inraster1") + Raster("inraster2")
    
  • 使用栅格操作数时,结果为栅格对象。
    # In the following statement, 4 is added to each cell value in inraster1
    outRas = Raster("inraster1") + 4  
    outRas2 = Raster("inraster") + math.pi
    

    在以上语句中,使用的 pi 来自 Python 数学模块。数学模块还包括以 e 为底的自然对数,math.e,它也可以用于“地图代数”语句中。

  • 一些运算符可以放到栅格对象或者数字前。
    outRas = -Raster("inraster")
    
  • 当一个或者多个输入(操作数)是栅格时,布尔(~、&、^、|)运算符将执行布尔运算。如果两个输入(操作数)都是数字,则这些运算符将执行“按位”运算。

提示:

运算符之间可以不加空格,但是为了增加可读性,建议您加上空格。

工具和运算符可以嵌套以创建复杂的语句。

  • 了解有关构建复杂语句的详细信息

运算符优先级

优先级值确定运算符的执行顺序。首先处理优先级更高的运算符。如果两个运算符的优先级值相同,则按表达式中从左到右的顺序来处理它们。

可以使用括号限定优先级,不管指定的是什么运算符,总是首先处理最底层括号中的运算。

下表按优先级从低到高的顺序列出了所有“地图代数”运算符。同一行中的运算符具有相同的优先级。

地图代数运算符参考书目

<, <=, >, >=, ==, !=

小于、小于等于、大于、大于等于、相等和不相等

|

布尔或

^

布尔异或

&

布尔与

<<, >>

按位左移、按位右移

+, -

加、减

*, /, //, %

乘、除、整除和模

+, -, ~

一元加号、取反和布尔非

**

幂

相关主题

  • An overview of the rules for Map Algebra
  • 地图代数运算符概述
  • 构建复杂语句

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明