跳到主要内容

计算字段

功能概述

计算字段工具用于对要素数据集的属性列进行批量逻辑与数学运算。你既可以自己写表达式,也可以先用 AI 按自然语言生成公式,再根据结果做微调。对于面积换算、密度计算、等级划分、字段清洗这类日常工作,这个功能能明显减少反复试错的时间。

应用场景

  • 指标派生:基于人口与面积字段计算“人口密度”。
  • 几何属性提取:自动提取面要素的测地线面积或线要素的起点坐标。
  • 数据分级:利用 where 函数根据数值大小生成“评价等级”字段。
  • 字段清洗:进行单位换算、字符串拼接或异常值批量替换。

AI 编写公式

如果你知道想得到什么字段,但不确定公式怎么落地,或者担心括号、函数名、字段名写错,可以先让 AI 帮你起草。

适合使用 AI 的情况

  • 想根据一个或多个字段生成新字段
  • 需要按多个条件分级赋值
  • 想基于 AREALENGTHAREA_GEODESIC 这类几何关键字计算空间指标
  • 已经有一版思路,想让 AI 改成更规范、更容易检查的多行公式
  • 想一次生成多个字段,例如“先算密度,再算等级”

操作步骤

  1. 启动工具:打开【计算工具箱】工具箱 → 导航至【矢量工具】 > 【字段】 → 启动【计算字段】工具窗格。
  2. 选择输入要素:先确定当前目标图层。AI 只会围绕当前图层已有字段和可用几何关键字生成公式。
  3. 打开 AI 编写公式功能:在公式编辑区域输入你的自然语言需求。
  4. 尽量描述清楚:建议说明目标字段名、参与运算的字段、分级规则、是否保留空值、是否需要多个输出字段。
  5. 检查返回公式:重点确认字段名是否正确、几何关键字是否适用于当前图层类型、边界条件是否符合业务含义。
  6. 再执行计算:正式计算前,建议先对少量记录抽查结果。

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 提示词怎么写更有效

  • 写清楚要用哪些字段,例如“用 PopulationAREA 算人口密度”。
  • 直接说目标字段名,例如“新字段叫 density”。
  • 分级规则要写完整,例如“0-100 为低,100-300 为中,300 以上为高”。
  • 如果空值要特殊处理,请明确说明,例如“Population 为空时输出空值”。

几何函数参考

关键字含义适用类型
AREA投影面积面要素 (Polygon)
AREA_GEODESIC测地线面积面要素 (WGS84 椭球)
LENGTH投影长度线要素 (LineString)
LENGTH_GEODESIC测地线长度线要素 (WGS84 椭球)
CENTROID_X / Y质心坐标所有类型
PART_COUNT部件数量多部件 (Multi*) 要素

参数介绍

参数名称参数描述补充说明
输入要素需要进行字段计算的数据集。支持点、线、面。
计算公式包含赋值逻辑的多行表达式。最后一行赋值决定输出字段。
保存中间结果是否在输出中保留中间变量。默认:否。
输出要素数据集计算后的结果。支持常见矢量格式。

操作步骤

  1. 启动工具:打开【计算工具箱】工具箱 → 导航至【矢量工具】 > 【字段】 → 启动【计算字段】工具窗格。
  2. 设置输入:选择【输入要素】。
  3. 配置参数:在【计算公式】文本框中直接编写公式,或使用 AI 编写公式功能生成草稿;按需勾选【保存中间结果】。
  4. 配置输出:设置输出路径与文件名。
  5. 执行生成:点击“运行”并查看结果。

AI 提示词示例

示例 1:生成人口密度字段

新增一个 density 字段,计算人口密度,方法为人口 除以面积 

可能得到:

density = 人口 / AREA_GEODESIC

注:对于经纬度/大地坐标系的矢量数据,应该使用测地线面积函数 AREA_GEODESIC 计算每个多边形的测地线面积,此时单位为平方米)

image-20260424182849264

示例 2:一次生成两个字段

density= 人口 / 面积,单位为人/平千米,再新增 density_level 字段:小于等于 1000 为 '低',1000 到 3000 为 '中',大于 3000 为 '高'。

可能得到:

density = 人口 * 1000000 / AREA_GEODESIC
density_level = where(density <= 1000, '低', where(density <= 3000, '中', '高'))

这种多步逻辑特别适合 AI,因为它会自动帮你拆成可读性更强的多行。

image-20260426163510234

示例 3:按长度换算公里数

新增 length_km 字段,计算长度,单位为千米。

可能得到:

length_km = PERIMETER_LENGTH_GEODESIC / 1000

image-20260426164254062

使用建议

  • 对 AI 说需求时,尽量把字段名写成属性表中的真实名字,避免同义词理解偏差。
  • 如果你希望保留中间变量用于排查,记得勾选【保存中间结果】。
  • 当图层是经纬度坐标系时,优先确认应该使用投影量还是测地线量,不要默认把 AREAAREA_GEODESIC 混用。
  • 如果 AI 第一次生成得不理想,最有效的修正方式通常不是重问一遍,而是明确指出“字段名改成 xxx”“空值不要转 0”“等级边界改成包含 100”。

注意事项

  • 几何函数(如 AREA)的结果单位由输入数据的坐标系决定(米或度)。
  • 表达式语法极其严格,确保所有括号成对出现。
  • 大数据量计算时,建议先通过少量记录验证公式正确性。复杂计算前先执行【修复几何体】会更稳妥。
  • AI 生成的是公式草稿,不建议不检查就直接用于正式生产数据。