ArcGIS入门教程五: 属性表怎么改?字段计算咋做?
引言
《ArcGIS入门教程五: 属性表怎么改?字段计算咋做?》这一篇主要解决一个非常基础但高频的问题:在 ArcGIS 里打开属性表后,怎样正确修改字段值、怎样新增字段、怎样用字段计算器批量计算属性。
很多 GIS 初学者第一次接触矢量数据时,会把注意力放在地图显示上,但真正做数据整理、空间分析和制图出图时,属性表才是数据能不能用的关键。比如行政区名称是否规范、面积字段是否正确、分类编码是否统一,这些都需要在属性表中完成检查和处理。

背景
在 ArcGIS 中,常见的空间数据通常包含两部分:几何图形和属性信息。几何图形负责表示点、线、面的位置和形状,属性表负责记录每个要素的名称、编码、面积、长度、类别、备注等信息。
举个例子,一个乡镇边界面图层,地图上看到的是一个个面要素;属性表中可能有“乡镇名”“行政区代码”“人口”“面积”“类型”等字段。后续要做分级设色、统计汇总、标注显示、空间连接,都依赖这些字段。
ArcGIS 属性表修改通常会遇到几类需求:
- 手动修改某个要素的名称、编号或备注。
- 新增一个字段,用来保存面积、长度、分类结果或自定义编码。
- 使用 ArcGIS 字段计算器批量给字段赋值。
- 根据已有字段拼接新字段,例如把省、市、县名称合并成完整地址。
- 检查字段类型错误,例如把数字字段误建成文本字段。
本文以 ArcMap 和 ArcGIS Pro 的常见操作逻辑为主说明。不同版本界面名称略有差异,但属性表编辑、字段管理和字段计算的核心思路是一致的。
原理
理解 ArcGIS 属性表之前,先记住一个原则:字段结构和字段值不是一回事。
字段结构指的是字段名称、字段类型、字段长度、小数位数等。例如“NAME”是文本字段,“AREA_M2”是双精度数字字段。
字段值指的是每一行要素在该字段里的具体内容。例如某个面要素的 NAME 值为“东湖街道”,AREA_M2 值为“2350000”。
因此,ArcGIS 修改属性表通常分成两类操作:
- 修改字段结构:新增字段、删除字段、修改字段别名、设置字段类型。
- 修改字段值:手动输入、批量替换、字段计算、按表达式赋值。
字段计算器的作用,是根据表达式批量更新某个字段的值。它可以用常量赋值,也可以引用已有字段,还可以写简单的 Python 表达式。例如把“面积平方米”换算成“面积平方公里”,或者把两个文本字段拼接成一个新字段。
注意:字段计算器会直接改写目标字段中的值。正式计算前,建议先备份数据,或先在新字段中测试表达式。
步骤
1. 打开属性表
- 在 ArcGIS 中加载一个矢量图层,例如 Shapefile、File Geodatabase 要素类或图层文件。
- 在内容列表中找到目标图层。
- 右键图层,选择“打开属性表”。
- 检查表格中是否有需要编辑的字段,以及字段类型是否符合后续计算需求。
如果属性表打不开,先检查图层数据源是否失效、文件是否被其他软件占用、数据是否有只读权限。
2. 开始编辑属性
在 ArcMap 中,通常需要先打开“编辑器”工具条,然后选择“开始编辑”。在 ArcGIS Pro 中,可以直接在属性表中编辑可编辑图层,或通过“编辑”选项卡进行编辑管理。
- 确认当前图层不是只读数据。
- 进入编辑状态。
- 在属性表中点击需要修改的单元格。
- 输入新的属性值。
- 保存编辑。
- 停止编辑或关闭编辑会话。
如果只是修改少量属性,手动编辑最直观。但如果要修改几十条、几百条记录,建议使用字段计算器,否则很容易出现漏改或误改。
3. 新增字段
字段计算前,经常需要先新增一个字段保存结果。例如计算面积时,可以新增“AREA_KM2”;分类赋值时,可以新增“TYPE_NAME”。
- 打开属性表。
- 在表格菜单中选择“添加字段”。
- 输入字段名称,例如 AREA_KM2。
- 选择字段类型。
- 设置字段长度、小数位数等参数。
- 确认后刷新属性表。
常用字段类型可以这样选择:
| 需求 | 推荐字段类型 | 说明 |
|---|---|---|
| 保存名称、编码、备注 | 文本 | 适合行政区名称、分类名称、编号字符串 |
| 保存整数数量 | 短整型或长整型 | 适合人口数、点位数量、等级值 |
| 保存面积、长度、比例 | 浮点型或双精度 | 适合带小数的计算结果 |
| 保存日期 | 日期 | 适合采集时间、更新时间 |
字段名称建议使用英文、数字和下划线组合,不建议使用空格、特殊符号或过长中文字段名。尤其是 Shapefile 字段名长度有限,过长字段名可能会被截断。
4. 使用字段计算器批量赋值
ArcGIS 字段计算器适合批量生成或修改属性值。操作步骤如下:
- 打开属性表。
- 右键需要计算的目标字段。
- 选择“字段计算器”。
- 选择解析器,一般建议使用 Python。
- 输入表达式。
- 确认无误后执行计算。
- 检查结果是否符合预期。
常见字段计算表达式如下:
| 目标 | 表达式示例 | 说明 |
|---|---|---|
| 给文本字段统一赋值 | "建设用地" |
文本值需要加引号 |
| 给数字字段统一赋值 | 1 |
数字字段不需要引号 |
| 复制已有字段 | !NAME! |
Python 解析器中用感叹号引用字段 |
| 拼接两个文本字段 | !PROV! + !CITY! |
两个字段都应为文本类型 |
| 计算平方公里 | !AREA_M2! / 1000000 |
前提是 AREA_M2 单位为平方米 |
5. 只计算选中的记录
字段计算器会对当前参与计算的记录生效。如果属性表中存在选中记录,通常只会计算选中的要素;如果没有选中记录,则会计算全部记录。
实际操作时建议这样做:
- 先用“按属性选择”筛选目标记录。
- 确认属性表底部显示的选中数量。
- 再对目标字段运行字段计算器。
- 计算完成后清除选择,避免影响下一步操作。
例如只给“用地类型”为“住宅”的记录赋值,可以先按属性选择住宅用地,再对新字段计算分类编码。
6. 计算面积和长度字段
ArcGIS 中面积和长度计算要特别注意坐标系。如果数据是地理坐标系,经纬度单位是度,直接计算面积或长度往往不符合实际需求。
比较稳妥的流程是:
- 检查图层坐标系。
- 如果是经纬度坐标,先投影到合适的投影坐标系。
- 新增面积或长度字段。
- 使用“计算几何”或字段计算器计算面积、长度。
- 核对单位,例如平方米、平方公里、米、千米。
对于面图层,可以计算面积;对于线图层,可以计算长度;对于点图层,一般没有面积和长度概念,除非是计算坐标值。
7. 保存和验证结果
属性表修改完成后,不要只看一两行结果。建议进行基本验证:
- 随机检查几条记录,看字段值是否合理。
- 按字段排序,检查是否出现空值、异常值或极端值。
- 用唯一值符号化查看分类字段是否正确。
- 用统计功能检查面积、长度、数量字段是否异常。
- 保存编辑后关闭再重新打开,确认结果已经写入数据源。
常见坑
1. 字段计算后发现全部值都被改了
这是 ArcGIS 字段计算器最常见的问题。原因通常是计算前没有选择记录,导致字段计算作用于全部记录。
解决办法:
- 计算前先确认是否只需要处理部分记录。
- 使用“按属性选择”或“按位置选择”筛选目标要素。
- 执行字段计算前看清选中记录数量。
- 重要数据先备份。
2. 文本字段和数字字段混用
如果字段类型是文本,输入 100 会被当成字符串;如果字段类型是数字,输入 "100" 可能导致表达式错误或类型不匹配。
简单判断方法:
- 要参与加减乘除的字段,尽量使用数字类型。
- 行政区划代码、地块编号、邮政编码等虽然看起来像数字,但建议使用文本字段。
- 需要保留前导零的编码必须使用文本字段。
3. Shapefile 字段名被截断
Shapefile 对字段名长度有限制,字段名过长会被截断。例如“landuse_type_name”可能被截成较短的形式,后续表达式引用时容易找不到字段。
如果项目中字段较多、字段名较长,建议优先使用 File Geodatabase,而不是 Shapefile。
4. 中文字段名或中文路径导致问题
ArcGIS 对中文字段名和中文路径的支持在多数情况下可用,但在脚本、模型工具、老版本软件或跨平台处理时,中文和特殊字符可能增加出错概率。
更稳妥的习惯是:
- 字段名使用英文或拼音缩写。
- 字段别名可以使用中文。
- 工程路径尽量避免特殊符号和过深目录。
5. 面积计算结果不对
面积不对通常不是字段计算器本身的问题,而是坐标系和单位没有处理好。如果数据仍是经纬度坐标,直接计算面积往往不适合制图统计。
检查顺序如下:
- 查看图层坐标系是否为投影坐标系。
- 确认投影适合当前研究区域。
- 确认计算单位是平方米还是平方公里。
- 检查是否存在无效几何或重叠面。
方法比较
ArcGIS 修改属性表并不只有一种方式。不同任务适合不同方法。
| 方法 | 适合场景 | 优点 | 限制 |
|---|---|---|---|
| 手动编辑属性表 | 少量记录修改 | 直观、简单 | 不适合批量处理,容易漏改 |
| 字段计算器 | 批量赋值、字段复制、简单公式计算 | 效率高,适合入门和日常处理 | 表达式错误会批量影响数据 |
| 计算几何 | 面积、长度、坐标计算 | 操作明确,适合几何属性 | 依赖正确坐标系和单位 |
| 按属性选择后计算 | 只处理符合条件的记录 | 可控性强 | 需要确认选择集是否正确 |
| ArcPy 脚本 | 重复性强、数据量大、流程自动化 | 可批处理、可复用 | 需要 Python 和 ArcPy 基础 |
对于 GIS 初学者,建议先掌握“手动编辑 + 新增字段 + 字段计算器 + 选择记录后计算”这四个能力。等流程稳定后,再考虑用 ArcPy 自动化处理。
检查清单
每次进行 ArcGIS 属性表修改前,可以按下面的清单检查,能减少大部分误操作。
- 是否已经备份原始数据?
- 目标图层是否可编辑?
- 字段类型是否符合计算需求?
- 是否只需要计算选中记录?
- 字段计算表达式中的文本是否加了引号?
- 字段引用格式是否正确,例如 Python 解析器使用
!字段名!? - 面积和长度计算前是否确认了坐标系和单位?
- 计算完成后是否检查空值、异常值和分类结果?
- 编辑完成后是否保存编辑?
- 是否关闭并重新打开数据确认结果已写入?
FAQ
ArcGIS 属性表为什么不能编辑?
常见原因包括数据源只读、文件被其他软件占用、没有开始编辑、图层来自不可编辑服务、当前用户没有写入权限。可以先把数据复制到本地文件夹或 File Geodatabase,再尝试编辑。
ArcGIS 字段计算器在哪里?
打开属性表后,右键需要计算的字段名,通常可以看到“字段计算器”或“计算字段”选项。ArcMap 和 ArcGIS Pro 的界面位置略有不同,但都是从目标字段进入计算操作。
字段计算器能不能撤销?
在编辑会话中,部分操作可以撤销;但一旦保存编辑或对某些数据源直接写入,就不一定能恢复。实际工作中,字段计算前备份数据比依赖撤销更可靠。
为什么字段计算表达式报错?
常见原因包括字段名引用格式错误、文本没有加引号、字段类型不匹配、空值参与计算、中文符号混入表达式。建议先用少量记录测试,再对全部记录计算。
ArcGIS 修改属性表会不会改变地图图形?
单纯修改属性字段不会改变几何图形的位置和形状。但如果地图符号、标注或筛选条件依赖该字段,修改后地图显示效果可能会随之变化。
面积字段应该直接手动输入吗?
不建议手动输入面积。面积应基于正确投影坐标系,通过计算几何或字段计算方式生成。手动输入不仅效率低,也容易和实际几何不一致。
结论
ArcGIS 属性表修改的核心不是“会不会点按钮”,而是要理解字段结构、字段类型、编辑状态和字段计算作用范围。只要掌握打开属性表、新增字段、手动编辑、ArcGIS 字段计算器和结果验证这几个步骤,大多数入门级属性数据整理任务都可以顺利完成。
实际项目中,建议养成三个习惯:先备份,再计算;先选中,再批量修改;先检查坐标系,再计算面积和长度。这样可以避免字段值被误改、面积单位错误、数据无法追溯等常见问题。