Arcade
支持 Arcade 功能 。
SQL
支持 SQL 表达式 。
执行 SQL 表达式可以更好地支持使用要素服务和企业级地理数据库的计算,尤其是在性能方面 。使用该表达式可以将单次请求设置为要素服务或数据库,而不必一次执行一个要素或一行的计算 。
旧版本:
在 ArcGIS Desktop 中,计算字段工具支持 VB、PYTHON 和 PYTHON_9.3 表达式类型 。VB 表达式类型,在某些产品中受支持,但在 64 位产品中不受支持 , 其中包括 ArcGIS Pro 。
出于相后兼容性考量,ArcGIS Pro 中仍然支持 PYTHON 和 PYTHON_9.3 关键字,但是不会作为选择列出 。使用这些关键字的 Python 脚本将可继续使用 。
Python 3 表达式类型与旧版 PYTHON_9.3 关键字的唯一区别在于 Python 3 会将日期字段中的值作为 Python datetime 对象返回 。
注:
Python 3 表达式类型与随 ArcGIS Pro 安装的 Python 版本无关 。这只是历史上的第三个 Python 相关关键字(继 PYTHON 和 PYTHON_9.3 之后 。
各 Python 函数可通过 def 关键字定义 , 关键字后为函数名称及函数的输入参数 。可编写 Python 函数,使 Python 函数能够接受任何数量的输入参数(也可以没有任何参数) 。函数将通过 return 语句返回值 。函数名称可由您自行选?。ú坏檬褂每崭?,也不得以数字开头) 。
注:
如果函数未通过 return 语句显式返回值,则函数将返回 None 。
注:
请牢记 , Python 强制要求将缩进作为语法的一部分 。请使用四个空格来定义每个逻辑级别 。将语句块的开头和结尾对齐并且保持一致 。
代码示例 - 数学
在使用以下数学示例时,请假设表达式类型为 Python 3 。
将字段的值四舍五入为保留两位小数 。
表达式:
round(!area!, 2)
通过 math 模块将米转换成英尺 。以转换值为底,以 2 为指数进行幂运算,然后再乘以 area 。
表达式:
MetersToFeet((float(!shape.area!)))
代码块:
import math
def MetersToFeet(area):
return math.pow(3.2808, 2) * area 通过 Python 逻辑计算字段
可以使用 if、else 和 elif 语句将逻辑模式包含在代码块中 。
按照字段值进行分类 。
表达式:
Reclass(!WELL_YIELD!)
代码块:
def Reclass(WellYield):
if (WellYield = 0 and WellYield = 10):
return 1
elif (WellYield10 and WellYield = 20):
return 2
elif (WellYield20 and WellYield = 30):
return 3
elif (WellYield30):
return 4 代码实例 - 几何
除以下代码示例外,请参阅下方的“几何单位转换”部分,以了解有关转换几何单位的详细信息 。
计算某要素的面积 。
表达式:
!shape.area!
计算某要素的最大 x 坐标 。
表达式:
!shape.extent.XMax!
计算某要素中的折点数 。
表达式:
MySub(!shape!)
代码块:
def MySub(feat):
partnum = 0
# Count the number of points in the current multipart feature
partcount = feat.partCount
pntcount = 0
# Enter while loop for each part in the feature (if a singlepart
# feature, this will occur only once)
while partnumpartcount:
part = feat.getPart(partnum)
pnt = part.next()
# Enter while loop for each vertex
while pnt:
pntcount += 1
pnt = part.next()
# If pnt is null, either the part is finished or there
# is an interior ring
if not pnt:
pnt = part.next()
partnum += 1
return pntcount
将点要素类中每个点的 x 坐标平移 100 。
表达式:
shiftXCoordinate(!SHAPE!)
代码块:
def shiftXCoordinate(shape):
shiftValue = https://www.04ip.com/post/100
推荐阅读
- 用于手机直播的工具,手机直播必备工具
- 包含日语推荐关注的公众号名字的词条
- 美国服务器上怎么建立proxy,美国服务器搭建ssr
- 为什么word转pdf会不清晰,为什么word转pdf后文件变大了
- vb.net隐藏文件名 vbs隐藏文件夹命令
- css悬浮在底部代码,css悬浮在底部代码怎么写
- 福建代理出口退税平台下载,福建出口退税综合服务平台
- 影视直播间素材,直播素材库
- go语言初步 go语言 cgo