以下是10个ArcGIS Pro字段计算器中Python代码的实用案例,涵盖常见数据处理场景:
案例1:计算字符串长度
len(!field_name!)
应用场景:统计文本字段(如地址、备注)的字符数量。
案例2:合并两个字段
!field1! + "_" + !field2!
应用场景:将「姓名」和「ID」字段合并为新字段(如张三_001)。
案例3:提取子字符串
!field![0:3] # 提取前3个字符
应用场景:从行政区划代码中提取前几位表示省/市。
案例4:条件赋值(if-else逻辑)
def classify(value):
if value > 100:
return "High"
elif 50 <= value <= 100:
return "Medium"
else:
return "Low"
调用方法:classify(!population!)
应用场景:根据数值字段(如人口、温度)分类为高/中/低等级。
案例5:计算日期差值
from datetime import datetime
def day_diff(start_date, end_date):
start = datetime.strptime(start_date, "%Y/%m/%d")
end = datetime.strptime(end_date, "%Y/%m/%d")
return (end - start).days
调用方法:day_diff(!start!, !end!)
应用场景:计算两个日期字段之间的天数差(如项目周期)。
案例6:计算面积百分比
total = 0
def calc_percent(area):
global total
if total == 0:
#ZDMJ根据情况修改
with arcpy.da.SearchCursor("JSYDZYZCZD", ["ZDMJ"]) as cursor:
for row in cursor:
total =total+ row[0]
return (area / total) * 100
调用:calc_percent(!ZDMJ!)
应用场景:统计每个面要素面积占总面积的百分比。
案例7:生成随机数
import random
def rrr():
return random.randint(1, 100)
调用:rrr()
应用场景:为抽样调查数据分配随机编号。
案例8:处理空值(Null)
def fill_null(value):
return value if value is not None else 0
fill_null(!sales!)
应用场景:将空值替换为默认值(如0或"N/A")。
案例9:几何计算(线要素长度)
python!shape.length@kilometers! # 计算线要素长度(单位:千米)
应用场景:计算道路、河流的几何长度。
案例10:提取几何中心点坐标
python
"X: {0}, Y: {1}".format(!shape.centroid.X!, !shape.centroid.Y!)
应用场景:将面要素的中心点坐标写入文本字段。
使用技巧:
字段引用:使用!包裹字段名(如!population!)。
代码块:复杂逻辑需在「代码块」中定义函数,表达式部分调用。
数据类型:确保返回类型与字段类型匹配(如文本、数值)。
调试:先在小样本数据上测试,避免直接修改原始数据。
建议操作前备份数据,避免误操作导致数据丢失。
更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!