ArcPy 字段批量计算:CalculateField 的常见用法和避坑
ArcPy 的 CalculateField 可以把属性表中的重复字段计算自动化。无论是统一编码、生成名称、更新面积,还是按条件分类,都可以通过脚本批量完成。它的关键是表达式写法和字段类型要匹配。
字符串拼接
import arcpy
fc = r"D:gisdata.gdbparcels"
arcpy.management.CalculateField(
fc,
"full_name",
"!town! + '-' + !village!",
"PYTHON3"
)
字段引用使用感叹号包裹。字符串字段如果可能为空,建议先处理空值,否则拼接时可能报错。
数值计算
arcpy.management.CalculateField(
fc,
"area_mu",
"!shape.area@SQUAREMETERS! / 666.6667",
"PYTHON3"
)
面积单位取决于数据坐标系。若图层是经纬度坐标,不建议直接计算面积,应先投影到合适的平面坐标系。
条件判断
code_block = """
def level(v):
if v is None:
return '未知'
elif v >= 80:
return '高'
elif v >= 50:
return '中'
return '低'
"""
arcpy.management.CalculateField(fc, "level", "level(!score!)", "PYTHON3", code_block)
批量处理建议
正式运行前先复制一份数据或在测试要素类上验证表达式。字段计算会直接改写属性,一旦覆盖原字段,恢复成本很高。对重要字段,建议先新增结果字段,再检查无误后决定是否替换。
相关文章
-
ArcPy 批量投影转换:用 Python 统一文件夹内 Shapefile 坐标系 2026-05-30 13:49:22
-
GeoPandas空间分析效率低?geoplot可视化进阶教程(附:实战代码包) 2026-03-23 08:30:02
-
GeoPandas处理空间数据总出错?一文解决几何计算与坐标系难题!(附:Shp文件实战代码) 2026-03-23 08:30:02
-
GeoPandas空间连接总出错?连环追问排查坐标系与字段匹配问题(附:实战代码) 2026-03-23 08:30:02
-
GeoPandas处理地质斜坡数据太慢?geoslope专业模型转换实战教程(附Python脚本) 2026-03-23 08:30:02
-
GeoPandas空间叠加分析太慢?一文搞懂geopandas overlay参数优化(附:实战代码) 2026-03-23 08:30:02
-
GeoPandas教程学不会?geopandas中文文档详解坐标转换与空间连接! 2026-03-23 08:30:01
-
GeoPandas绘图样式太丑怎么办?GIS地图出图优化技巧(附:配色方案) 2026-03-23 08:30:01
-
GeoPandas教程入门卡在geopandas安装?Windows避坑指南与环境配置全解(含:依赖库清单) 2026-03-23 08:30:01
-
ArcPy点要素批量处理怎么做?arcpy.point坐标转换实战技巧(附:代码详解) 2026-03-22 08:30:02
-
ArcPy批量合并数据太慢?arcpy.append_management效率优化指南(附:参数详解) 2026-03-22 08:30:02
-
ArcPy教程:arcpy.env环境设置总出错?坐标系与工作空间详解(附:常见报错对照表) 2026-03-22 08:30:02
-
arcpy怎么用?ArcPy教程从入门到批量处理(附:GIS数据自动化脚本) 2026-03-22 08:30:02
-
ArcPy批量处理数据太慢?arcpython自动化脚本优化方案(含:效率提升技巧) 2026-03-22 08:30:02
-
ArcPy自动化制图效率低?arcpy使用手册附批量出图脚本与参数详解 2026-03-22 08:30:02
-
ArcPy数据处理效率低?arcpy.getcount_management()实战技巧(附:批量统计脚本) 2026-03-22 08:30:02
-
GIS基础知识点太多学不完?进阶必备核心技能清单(含:实战案例) 2026-03-22 08:30:02
-
数据裁剪总是出错?GeoPandas教程详解clip函数核心参数(附:空间索引优化技巧) 2026-03-22 08:30:02
-
GeoPandas教程:空间连接sjoin怎么用?(附:空间索引优化技巧) 2026-03-22 08:30:02
-
ArcPy脚本运行时如何实时追踪进度?arcpy.AddMessage用法详解(附:效率提升脚本) 2026-03-21 08:30:02
热门标签
最新资讯
2026-05-30 13:49:29
2026-05-30 13:49:27
2026-05-30 13:49:25
2026-05-30 13:49:25
2026-05-30 13:49:24
2026-05-30 13:49:22
2026-05-30 13:49:22
2026-05-30 13:49:21
2026-05-30 13:49:20
2026-05-30 13:49:19