python函数资料计算 如何用python计算函数的值( 二 )


通过字段列表计算每条记录的最大值 。
max([!field1!, !field2!, !field3!])
通过字段列表计算每条记录的总和 。
sum([!field1!, !field2!, !field3!]) 使用代码块
通过 Python 表达式和代码块参数可执行以下操作:
在表达式中应用任意 Python 函数 。
访问地理处理函数和对象 。
访问要素几何的属性 。
访问新的随机值运算符 。
使用 if-then-else 逻辑对值进行重分类 。
表达式类型
代码块
Python 3
支持 Python 功能 。使用 Python 函数 (def) 表示代码块 。在适当的情况下,几何属性将通过地理处理对象表示(如点对象) 。
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

推荐阅读