在 ArcGIS 字段计算器的应用中,对表达式进行了系统分类归纳。这些分类紧密围绕实际业务场景中的核心需求展开,具体涵盖字符串的精细化处理、数值的多样化运算、日期的灵活操作以及几何要素的精准计算等方面。为了便于使用者快速上手和深入理解,每个分类不仅提供了具体可用的代码示例,还针对不同编程语言在字段计算器中的差异进行了详细说明。
•Python:将 "省名" 和 "市名" 合并为 "省_市" 格式!
省名! + "_" + !市名!
•VBScript:合并字段并添加分隔符
(省名) & "-" & (市名)
•Python:提取 "CODE" 字段前 4 位
!CODE
•VBScript:从右侧取 3 位
Right((CODE), 3)
•Python:将 "NAME" 中的 "A" 替换为 "B"
!NAME!.replace('A', 'B')
•高级正则:从地址中提取城市(如 "123 St, City, State")

•Python:首字母大写
!NAME!.title()
•VBScript:全小写转大写
UCase((NAME))
•Python:计算 "FieldA" 与 "FieldB" 的差值
!FieldA! - !FieldB!
•VBScript:计算百分比并保留 2 位小数
Round(((FieldA)/(FieldB))*100, 2) & "%"
•Python:面积 > 1000 标记为 "大图斑"
"大图斑" if !SHAPE_Area! > 1000 else "小图斑"
•VBScript:多条件分类

•Python:字符串转浮点数(处理逗号分隔)
float(!TEXT_FIELD!.replace(",", ""))
•VBScript:数字转字符串
CStr((ID))
•Python:将日期转为 "YYYY 年 MM 月 DD 日"
!StartDate!.strftime("%Y年%m月%d日")
•VBScript:固定日期赋值
CDate("2023-10-01")
•Python:计算 30 天后的日期
!StartDate! + datetime.timedelta(days=30)
•VBScript:提取年份
Year((DateField))
•Python:平面面积(平方千米)
!shape.area! / 1000000
•测地线面积(地理坐标系)
!shape.geodesicArea!
•Python:获取中心点坐标
!shape.centroid.X!(经度)
!shape.centroid.Y!(纬度)
•VBScript:计算要素折点数
GetVertexCount((Shape))(需配合代码块)
•Python:自定义函数计算分类

•Python:生成 "Tx-001" 格式 ID

•Python:提取 "CODE" 字段前 4 位
!CODE
•VBScript:从右侧取 3 位
Right((CODE), 3)
•Python:填充默认值
!Status! if !Status! is not None else "Unknown"
•VBScript:判断空值
IIf(IsNull((Owner)), "Unknown", (Owner))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在 ArcGIS 软件进行数据处理时,字段计算器是一个极为重要的工具,下面为你详细介绍一些与之相关的实用技巧和注意事项。
在 ArcGIS Pro 软件中,存在一个十分便捷的功能——“计算字段(多个)”工具。借助这个工具,你可以同时对多个字段进行更新操作,无需逐个字段单独处理。这在处理大量数据且需要同时修改多个字段值的情况下,能够显著提高工作效率,节省时间和精力。
在编写字段计算器的表达式时,调试是一个必不可少的环节。如果你使用的是 Python 语言,那么可以利用 print()函数来输出中间结果。通过查看这些中间结果,你可以了解程序在运行过程中的状态,及时发现可能存在的问题并进行修正。而如果你使用的是 VBScript 语言,则可以通过消息框来调试程序。消息框能够直观地显示相关信息,帮助你判断程序是否按照预期运行,从而快速定位和解决错误。
当处理的数据集规模较大时,性能优化就显得尤为重要。在这种情况下,建议你优先使用 SQL 表达式(ArcGIS Pro 对此提供了支持)。SQL 表达式具有高效的特点,能够避免逐行计算带来的性能瓶颈,大大缩短数据处理的时间。相比之下,逐行计算在大规模数据集上会消耗大量的时间和系统资源,影响工作效率。
不同的 ArcGIS 版本在字段计算器的语言支持上存在一定差异。ArcMap 版本主要支持 VBScript 语言,而 ArcGIS Pro 则更推荐使用 Python 或 Arcade 语言。Python 是一种功能强大且易于学习的编程语言,在数据处理和分析领域有着广泛的应用;Arcade 则是一种专门为 ArcGIS 设计的脚本语言,具有简洁、易用的特点。因此,在选择使用哪种语言时,需要根据你所使用的 ArcGIS 版本进行合理选择。
上述介绍的这些表达式,基本上能够覆盖字段计算器在日常工作中 90%以上的需求。然而,在实际应用过程中,由于不同的业务场景和数据特点各不相同,你需要根据具体情况对这些表达式进行灵活调整和优化。特别是对于一些逻辑较为复杂的表达式,为了避免在大规模数据集上出现错误,建议你先在小规模数据集上进行测试验证。同时,你还可以参考 ArcGIS 官方文档中的属性规则示例,从中获取灵感和借鉴,以确保表达式的正确性和有效性。
北京智绘京畿科技有限公司
数绘山河 智创无界

