计算字段
功能概述
计算字段工具用于对要素数据集的属性列进行批量逻辑与数学运算。你既可以自己写表达式,也可以先用 AI 按自然语言生成公式,再根据结果做微调。对于面积换算、密度计算、等级划分、字段清洗这类日常工作,这个功能能明显减少反复试错的时间。
应用场景
- 指标派生:基于人口与面积字段计算“人口密度”。
- 几何属性提取:自动提取面要素的测地线面积或线要素的起点坐标。
- 数据分级:利用
where函数根据数值大小生成“评价等级”字段。 - 字段清洗:进行单位换算、字符串拼接或异常值批量替换。
AI 编写公式
如果你知道想得到什么字段,但不确定公式怎么落地,或者担心括号、函数名、字段名写错,可以先让 AI 帮你起草。
适合使用 AI 的情况
- 想根据一个或多个字段生成新字段
- 需要按多个条件分级赋值
- 想基于
AREA、LENGTH、AREA_GEODESIC这类几何关键字计算空间指标 - 已经有一版思路,想让 AI 改成更规范、更容易检查的多行公式
- 想一次生成多个字段,例如“先算密度,再算等级”
操作步骤
- 启动工具:打开【计算工具箱】工具箱 → 导航至【矢量工具】 > 【字段】 → 启动【计算字段】工具窗格。
- 选择输入要素:先确定当前目标图层。AI 只会围绕当前图层已有字段和可用几何关键字生成公式。
- 打开 AI 编写公式功能:在公式编辑区域输入你的自然语言需求。
- 尽量描述清楚:建议说明目标字段名、参与运算的字段、分级规则、是否保留空值、是否需要多个输出字段。
- 检查返回公式:重点确认字段名是否正确、几何关键字是否适用于当前图层类型、边界条件是否符合业务含义。
- 再执行计算:正式计算前,建议先对少量记录抽查结果。
AI 能帮你处理什么
- 生成单字段公式,例如人口密度、长度换算、金额汇总
- 一次生成多条赋值语句,例如先算中间指标,再生成等级字段
- 把“中文业务规则”转成
where(...)条件表达式 - 按当前图层类型使用合适的几何关键字
人工核对重点
- 字段名是否与图层属性表完全一致
- 新字段名是否符合你的命名习惯
- 点、线、面图层是否使用了正确的几何关键字
- 面积、长度结果的单位是否与你当前坐标系一致
- 是否需要保留空值、排除异常值、或先做字段清洗
提示
如果你的需求比较复杂,建议直接告诉 AI “请拆成多行公式,并保留中间变量名”。这样后续排查会轻松很多。
公式编写规范
1. 字段与几何引用
- 字段引用:直接使用字段名。若字段名含特殊字符,建议先通过【字段编辑】工具重命名。
- 几何引用:
geometry:用于计算当前坐标系下的投影几何指标。geometry_geodesic:用于计算 WGS 84 椭球体下的测地线指标(如AREA_GEODESIC)。
2. 逻辑与条件
- 逻辑运算符:必须使用逐要素逻辑运算符
&(与),|(或),~(非),并配合括号使用。 - 条件函数:使用
where(condition, x, y)。 - 多行赋值:
tmp = Population / Area
Density = where(tmp > 100, 'High', 'Low')
3. AI 提示词怎么写更有效
- 写清楚要用哪些字段,例如“用
Population和AREA算人口密度”。 - 直接说目标字段名,例如“新字段叫
density”。 - 分级规则要写完整,例如“0-100 为低,100-300 为中,300 以上为高”。
- 如果空值要特殊处理,请明确说明,例如“
Population为空时输出空值”。
几何函数参考
| 关键字 | 含义 | 适用类型 |
|---|---|---|
| AREA | 投影面积 | 面要素 (Polygon) |
| AREA_GEODESIC | 测地线面积 | 面要素 (WGS84 椭球) |
| LENGTH | 投影长度 | 线要素 (LineString) |
| LENGTH_GEODESIC | 测地线长度 | 线要素 (WGS84 椭球) |
| CENTROID_X / Y | 质心坐标 | 所有类型 |
| PART_COUNT | 部件数量 | 多部件 (Multi*) 要素 |
参数介绍
| 参数名称 | 参数描述 | 补充说明 |
|---|---|---|
| 输入要素 | 需要进行字段计算的数据集。 | 支持点、线、面。 |
| 计算公式 | 包含赋值逻辑的多行表达式。 | 最后一行赋值决定输出字段。 |
| 保存中间结果 | 是否在输出中保留中间变量。 | 默认:否。 |
| 输出要素数据集 | 计算后的结果。 | 支持常见矢量格式。 |
操作步骤
- 启动工具:打开【计算工具箱】工具箱 → 导航至【矢量工具】 > 【字段】 → 启动【计算字段】工具窗格。
- 设置输入:选择【输入要素】。
- 配置参数:在【计算公式】文本框中直接编写公式,或使用 AI 编写公式功能生成草稿;按需勾选【保存中间结果】。
- 配置输出:设置输出路径与文件名。
- 执行生成:点击“运行”并查看结果。
AI 提示词示例
示例 1:生成人口密度字段
新增一个 density 字段,计算人口密度,方法为人口 除以面积
可能得到:
density = 人口 / AREA_GEODESIC
注:对于经纬度/大地坐标系的矢量数据,应该使用测地线面积函数 AREA_GEODESIC 计算每个多边形的测地线面积,此时单位为平方米)

示例 2:一次生成两个字段
density= 人口 / 面积,单位为人/平千米,再新增 density_level 字段:小于等于 1000 为 '低',1000 到 3000 为 '中',大于 3000 为 '高'。
可能得到:
density = 人口 * 1000000 / AREA_GEODESIC
density_level = where(density <= 1000, '低', where(density <= 3000, '中', '高'))
这种多步逻辑特别适合 AI,因为它会自动帮你拆成可读性更强的多行。

示例 3:按长度换算公里数
新增 length_km 字段,计算长度,单位为千米。
可能得到:
length_km = PERIMETER_LENGTH_GEODESIC / 1000

使用建议
- 对 AI 说需求时,尽量把字段名写成属性表中的真实名字,避免同义词理解偏差。
- 如果你希望保留中间变量用于排查,记得勾选【保存中间结果】。
- 当图层是经纬度坐标系时,优先确认应该使用投影量还是测地线量,不要默认把
AREA和AREA_GEODESIC混用。 - 如果 AI 第一次生成得不理想,最有效的修正方式通常不是重问一遍,而是明确指出“字段名改成 xxx”“空值不要转 0”“等级边界改成包含 100”。
注意事项
- 几何函数(如
AREA)的结果单位由输入数据的坐标系决定(米或度)。 - 表达式语法极其严格,确保所有括号成对出现。
- 大数据量计算时,建议先通过少量记录验证公式正确性。复杂计算前先执行【修复几何体】会更稳妥。
- AI 生成的是公式草稿,不建议不检查就直接用于正式生产数据。