ArcGIS入门教程五: 属性表怎么改?字段计算咋做?

GIS基础理论
Dr.GIS
wowwwai GIS研习社 · 工具流程与项目排障

引言

《ArcGIS入门教程五: 属性表怎么改?字段计算咋做?》这一篇主要解决一个非常基础但高频的问题:在 ArcGIS 里打开属性表后,怎样正确修改字段值、怎样新增字段、怎样用字段计算器批量计算属性。

很多 GIS 初学者第一次接触矢量数据时,会把注意力放在地图显示上,但真正做数据整理、空间分析和制图出图时,属性表才是数据能不能用的关键。比如行政区名称是否规范、面积字段是否正确、分类编码是否统一,这些都需要在属性表中完成检查和处理。

ArcGIS属性表修改与ArcGIS字段计算器操作流程
ArcGIS 属性表编辑与字段计算的基本流程:打开属性表、开始编辑、新增或修改字段、使用字段计算器批量赋值。

背景

在 ArcGIS 中,常见的空间数据通常包含两部分:几何图形和属性信息。几何图形负责表示点、线、面的位置和形状,属性表负责记录每个要素的名称、编码、面积、长度、类别、备注等信息。

举个例子,一个乡镇边界面图层,地图上看到的是一个个面要素;属性表中可能有“乡镇名”“行政区代码”“人口”“面积”“类型”等字段。后续要做分级设色、统计汇总、标注显示、空间连接,都依赖这些字段。

ArcGIS 属性表修改通常会遇到几类需求:

  • 手动修改某个要素的名称、编号或备注。
  • 新增一个字段,用来保存面积、长度、分类结果或自定义编码。
  • 使用 ArcGIS 字段计算器批量给字段赋值。
  • 根据已有字段拼接新字段,例如把省、市、县名称合并成完整地址。
  • 检查字段类型错误,例如把数字字段误建成文本字段。

本文以 ArcMap 和 ArcGIS Pro 的常见操作逻辑为主说明。不同版本界面名称略有差异,但属性表编辑、字段管理和字段计算的核心思路是一致的。

原理

理解 ArcGIS 属性表之前,先记住一个原则:字段结构和字段值不是一回事。

字段结构指的是字段名称、字段类型、字段长度、小数位数等。例如“NAME”是文本字段,“AREA_M2”是双精度数字字段。

字段值指的是每一行要素在该字段里的具体内容。例如某个面要素的 NAME 值为“东湖街道”,AREA_M2 值为“2350000”。

因此,ArcGIS 修改属性表通常分成两类操作:

  • 修改字段结构:新增字段、删除字段、修改字段别名、设置字段类型。
  • 修改字段值:手动输入、批量替换、字段计算、按表达式赋值。

字段计算器的作用,是根据表达式批量更新某个字段的值。它可以用常量赋值,也可以引用已有字段,还可以写简单的 Python 表达式。例如把“面积平方米”换算成“面积平方公里”,或者把两个文本字段拼接成一个新字段。

注意:字段计算器会直接改写目标字段中的值。正式计算前,建议先备份数据,或先在新字段中测试表达式。

步骤

1. 打开属性表

  1. 在 ArcGIS 中加载一个矢量图层,例如 Shapefile、File Geodatabase 要素类或图层文件。
  2. 在内容列表中找到目标图层。
  3. 右键图层,选择“打开属性表”。
  4. 检查表格中是否有需要编辑的字段,以及字段类型是否符合后续计算需求。

如果属性表打不开,先检查图层数据源是否失效、文件是否被其他软件占用、数据是否有只读权限。

2. 开始编辑属性

在 ArcMap 中,通常需要先打开“编辑器”工具条,然后选择“开始编辑”。在 ArcGIS Pro 中,可以直接在属性表中编辑可编辑图层,或通过“编辑”选项卡进行编辑管理。

  1. 确认当前图层不是只读数据。
  2. 进入编辑状态。
  3. 在属性表中点击需要修改的单元格。
  4. 输入新的属性值。
  5. 保存编辑。
  6. 停止编辑或关闭编辑会话。

如果只是修改少量属性,手动编辑最直观。但如果要修改几十条、几百条记录,建议使用字段计算器,否则很容易出现漏改或误改。

3. 新增字段

字段计算前,经常需要先新增一个字段保存结果。例如计算面积时,可以新增“AREA_KM2”;分类赋值时,可以新增“TYPE_NAME”。

  1. 打开属性表。
  2. 在表格菜单中选择“添加字段”。
  3. 输入字段名称,例如 AREA_KM2。
  4. 选择字段类型。
  5. 设置字段长度、小数位数等参数。
  6. 确认后刷新属性表。

常用字段类型可以这样选择:

需求 推荐字段类型 说明
保存名称、编码、备注 文本 适合行政区名称、分类名称、编号字符串
保存整数数量 短整型或长整型 适合人口数、点位数量、等级值
保存面积、长度、比例 浮点型或双精度 适合带小数的计算结果
保存日期 日期 适合采集时间、更新时间

字段名称建议使用英文、数字和下划线组合,不建议使用空格、特殊符号或过长中文字段名。尤其是 Shapefile 字段名长度有限,过长字段名可能会被截断。

4. 使用字段计算器批量赋值

ArcGIS 字段计算器适合批量生成或修改属性值。操作步骤如下:

  1. 打开属性表。
  2. 右键需要计算的目标字段。
  3. 选择“字段计算器”。
  4. 选择解析器,一般建议使用 Python。
  5. 输入表达式。
  6. 确认无误后执行计算。
  7. 检查结果是否符合预期。

常见字段计算表达式如下:

目标 表达式示例 说明
给文本字段统一赋值 "建设用地" 文本值需要加引号
给数字字段统一赋值 1 数字字段不需要引号
复制已有字段 !NAME! Python 解析器中用感叹号引用字段
拼接两个文本字段 !PROV! + !CITY! 两个字段都应为文本类型
计算平方公里 !AREA_M2! / 1000000 前提是 AREA_M2 单位为平方米

5. 只计算选中的记录

字段计算器会对当前参与计算的记录生效。如果属性表中存在选中记录,通常只会计算选中的要素;如果没有选中记录,则会计算全部记录。

实际操作时建议这样做:

  1. 先用“按属性选择”筛选目标记录。
  2. 确认属性表底部显示的选中数量。
  3. 再对目标字段运行字段计算器。
  4. 计算完成后清除选择,避免影响下一步操作。

例如只给“用地类型”为“住宅”的记录赋值,可以先按属性选择住宅用地,再对新字段计算分类编码。

6. 计算面积和长度字段

ArcGIS 中面积和长度计算要特别注意坐标系。如果数据是地理坐标系,经纬度单位是度,直接计算面积或长度往往不符合实际需求。

比较稳妥的流程是:

  1. 检查图层坐标系。
  2. 如果是经纬度坐标,先投影到合适的投影坐标系。
  3. 新增面积或长度字段。
  4. 使用“计算几何”或字段计算器计算面积、长度。
  5. 核对单位,例如平方米、平方公里、米、千米。

对于面图层,可以计算面积;对于线图层,可以计算长度;对于点图层,一般没有面积和长度概念,除非是计算坐标值。

7. 保存和验证结果

属性表修改完成后,不要只看一两行结果。建议进行基本验证:

  • 随机检查几条记录,看字段值是否合理。
  • 按字段排序,检查是否出现空值、异常值或极端值。
  • 用唯一值符号化查看分类字段是否正确。
  • 用统计功能检查面积、长度、数量字段是否异常。
  • 保存编辑后关闭再重新打开,确认结果已经写入数据源。

常见坑

1. 字段计算后发现全部值都被改了

这是 ArcGIS 字段计算器最常见的问题。原因通常是计算前没有选择记录,导致字段计算作用于全部记录。

解决办法:

  • 计算前先确认是否只需要处理部分记录。
  • 使用“按属性选择”或“按位置选择”筛选目标要素。
  • 执行字段计算前看清选中记录数量。
  • 重要数据先备份。

2. 文本字段和数字字段混用

如果字段类型是文本,输入 100 会被当成字符串;如果字段类型是数字,输入 "100" 可能导致表达式错误或类型不匹配。

简单判断方法:

  • 要参与加减乘除的字段,尽量使用数字类型。
  • 行政区划代码、地块编号、邮政编码等虽然看起来像数字,但建议使用文本字段。
  • 需要保留前导零的编码必须使用文本字段。

3. Shapefile 字段名被截断

Shapefile 对字段名长度有限制,字段名过长会被截断。例如“landuse_type_name”可能被截成较短的形式,后续表达式引用时容易找不到字段。

如果项目中字段较多、字段名较长,建议优先使用 File Geodatabase,而不是 Shapefile。

4. 中文字段名或中文路径导致问题

ArcGIS 对中文字段名和中文路径的支持在多数情况下可用,但在脚本、模型工具、老版本软件或跨平台处理时,中文和特殊字符可能增加出错概率。

更稳妥的习惯是:

  • 字段名使用英文或拼音缩写。
  • 字段别名可以使用中文。
  • 工程路径尽量避免特殊符号和过深目录。

5. 面积计算结果不对

面积不对通常不是字段计算器本身的问题,而是坐标系和单位没有处理好。如果数据仍是经纬度坐标,直接计算面积往往不适合制图统计。

检查顺序如下:

  1. 查看图层坐标系是否为投影坐标系。
  2. 确认投影适合当前研究区域。
  3. 确认计算单位是平方米还是平方公里。
  4. 检查是否存在无效几何或重叠面。

方法比较

ArcGIS 修改属性表并不只有一种方式。不同任务适合不同方法。

方法 适合场景 优点 限制
手动编辑属性表 少量记录修改 直观、简单 不适合批量处理,容易漏改
字段计算器 批量赋值、字段复制、简单公式计算 效率高,适合入门和日常处理 表达式错误会批量影响数据
计算几何 面积、长度、坐标计算 操作明确,适合几何属性 依赖正确坐标系和单位
按属性选择后计算 只处理符合条件的记录 可控性强 需要确认选择集是否正确
ArcPy 脚本 重复性强、数据量大、流程自动化 可批处理、可复用 需要 Python 和 ArcPy 基础

对于 GIS 初学者,建议先掌握“手动编辑 + 新增字段 + 字段计算器 + 选择记录后计算”这四个能力。等流程稳定后,再考虑用 ArcPy 自动化处理。

检查清单

每次进行 ArcGIS 属性表修改前,可以按下面的清单检查,能减少大部分误操作。

  • 是否已经备份原始数据?
  • 目标图层是否可编辑?
  • 字段类型是否符合计算需求?
  • 是否只需要计算选中记录?
  • 字段计算表达式中的文本是否加了引号?
  • 字段引用格式是否正确,例如 Python 解析器使用 !字段名!
  • 面积和长度计算前是否确认了坐标系和单位?
  • 计算完成后是否检查空值、异常值和分类结果?
  • 编辑完成后是否保存编辑?
  • 是否关闭并重新打开数据确认结果已写入?

FAQ

ArcGIS 属性表为什么不能编辑?

常见原因包括数据源只读、文件被其他软件占用、没有开始编辑、图层来自不可编辑服务、当前用户没有写入权限。可以先把数据复制到本地文件夹或 File Geodatabase,再尝试编辑。

ArcGIS 字段计算器在哪里?

打开属性表后,右键需要计算的字段名,通常可以看到“字段计算器”或“计算字段”选项。ArcMap 和 ArcGIS Pro 的界面位置略有不同,但都是从目标字段进入计算操作。

字段计算器能不能撤销?

在编辑会话中,部分操作可以撤销;但一旦保存编辑或对某些数据源直接写入,就不一定能恢复。实际工作中,字段计算前备份数据比依赖撤销更可靠。

为什么字段计算表达式报错?

常见原因包括字段名引用格式错误、文本没有加引号、字段类型不匹配、空值参与计算、中文符号混入表达式。建议先用少量记录测试,再对全部记录计算。

ArcGIS 修改属性表会不会改变地图图形?

单纯修改属性字段不会改变几何图形的位置和形状。但如果地图符号、标注或筛选条件依赖该字段,修改后地图显示效果可能会随之变化。

面积字段应该直接手动输入吗?

不建议手动输入面积。面积应基于正确投影坐标系,通过计算几何或字段计算方式生成。手动输入不仅效率低,也容易和实际几何不一致。

结论

ArcGIS 属性表修改的核心不是“会不会点按钮”,而是要理解字段结构、字段类型、编辑状态和字段计算作用范围。只要掌握打开属性表、新增字段、手动编辑、ArcGIS 字段计算器和结果验证这几个步骤,大多数入门级属性数据整理任务都可以顺利完成。

实际项目中,建议养成三个习惯:先备份,再计算;先选中,再批量修改;先检查坐标系,再计算面积和长度。这样可以避免字段值被误改、面积单位错误、数据无法追溯等常见问题。