系列文章目录
ArcGIS Desktop使用入门(一)软件初认识
ArcGIS Desktop使用入门(二)常用工具条——标准工具
ArcGIS Desktop使用入门(二)常用工具条——编辑器
ArcGIS Desktop使用入门(二)常用工具条——数据驱动页面
ArcGIS Desktop使用入门(二)常用工具条——基础工具
ArcGIS Desktop使用入门(二)常用工具条——布局工具
ArcGIS Desktop使用入门(二)常用工具条——绘图
ArcGIS Desktop使用入门(二)常用工具条——捕捉
ArcGIS Desktop使用入门(二)常用工具条——编辑折点
ArcGIS Desktop使用入门(二)常用工具条——高级编辑
ArcGIS Desktop使用入门(二)常用工具条——效果
ArcGIS Desktop使用入门(二)常用工具条——地理配准
ArcGIS Desktop使用入门(三)图层右键工具——使用符号级别
文章目录
- 系列文章目录
- 前言
- 一、本期工具:数据管理工具—属性域
- 二、使用方法
- 方法1:使用工具条建立属性域
- (1) 创建属性域
- (2) 向属性域添加编码值
- (3) 指定字段的属性域
- 方法2:使用表转属性域
- (1) 创建编码表格
- (2) 表转属性域
- (3) 指定字段的属性域
- 方法3:全手动添加属性域
- (1) 手动创建属性域
- (2) 手动指定字段的属性域
- 三、表连接赋值
- 1.工作空间加载编码表
- 2.表连接,计算字段
- 总结
前言
本期开始介绍ArcGIS Desktop的一些进阶工具——ArcToolbox工具箱,后续会持续更新。
(ArcToolbox工具箱的添加方式均为ArcGIS Desktop软件界面顶部 红色工具箱 图标,鼠标点击后会激活工具箱窗口,找到相应的工具进行设置运行即可。)
一、本期工具:数据管理工具—属性域
工具名称:数据管理工具——属性域
工具样式:
综述:属性域,是地理数据库的一种行为规则,它可以限制表格、要素类或者子类型中某字段的合法取值,提高数据编辑的效率和准确性。
二、使用方法
下面介绍工具的一般使用方法,此外附上我的一些使用心得,如果不妥欢迎批评指正。
日常GIS工作中,在操作和修改地理信息数据库时,会要求记录一些修改过程,在要素的某个字段中重复填写一些固定单词或语句,不允许填写其他内容。如下图示例:
字段"修改说明"只能填写下列5种语句,字段"修改依据"只能填写下列3种语句。
此种情况非常常见,反复打字一些重复文字非常的影像心情,此时会想到能否借鉴Excel表格中的一些功能—数据序列。如下图所示:
还好,ArcGIS软件确实有类似的功能,就是本期介绍的工具"属性域",位置在工具箱—数据管理工具—属性域,可以实现在填写字段时使用下拉箭头进行选择,无需重复打字。
属性域工具有几种不同的使用方法,下面逐一介绍:
方法1:使用工具条建立属性域
此方法使用工具箱中的现有工具条,先后顺序一步一步进行操作,完成属性域的设置。
操作顺序:1创建属性域——2向属性域添加编码值——3指定字段的属性域。
(1) 创建属性域
使用属性域进行填写的是要素图层的某个字段,但是属性域要保存在地理数据库中的,所以要有mdb、gdb数据库。
1)输入工作空间,即保存属性域的地理信息数据库,mdb、gdb数据库。
2)属性域名称,要创建或要更新的属性域的名称,可以跟字段名称一致,方便对照。本文第一个属性域名称为 “修改说明”。
3)属性域描述(可选),对名称的详细描述,方便理解。
4)字段类型,要创建的属性域的类型。属性域是描述字段类型合法值的规则。指定的字段类型应与将属性域指定到的字段的数据类型相匹配。
特别注意,字段类型是属性域进行链接设置的关键,一般使用数字进行编码,数字格式有短整型、长整型、双精度等等,这里记住只要在后面建立链接字段时字段类型统一即可,否则类型不同无法匹配上。
5)属性域类型(可选),默认值 为 coded 编码值,字段填写文本值常用此项,数字编码对应属性值;
range 指定数值属性的有限取值范围,字段填写数值常用此项。
6)分割策略(可选),一般默认值即可,可选则default(默认值)两个所生成要素的属性使用给定要素类或子类型的默认属性值、
duplicate两个所生成要素的属性使用原始对象的属性值副本、
geometry ratio两个所生成要素的属性是原始要素值的比率。该比率取决于原始几何的分割比例。如果几何被分割成相等的两部分,则每个新要素的属性值将是原始对象属性值的一半。几何比策略仅适用于范围属性域。
7)合并策略 (可选),所创建属性域的合并策略,一般默认值即可。在将两个要素合并为一个要素时,合并策略控制着新要素的属性值。
可选项default(默认值)—所生成要素的属性使用给定要素类或子类型的默认属性值。这是唯一适用于非数字字段和编码值属性域的合并策略。
sum_values—所生成要素的属性使用原始要素属性值的总和。总和值策略仅适用于范围属性域。
area_weighted—所生成要素的属性使用原始要素属性值的加权平均值。此平均值取决于原始要素的几何。加权面积策略仅适用于范围属性域。
(2) 向属性域添加编码值
向属性域的编码值列表添加值。
1)输入工作空间,即保存属性域的地理信息数据库,mdb、gdb数据库。
2)属性域名称,上一步骤创建的 属性域名称。本文第一个属性域名称为 “修改说明”。
3)编码值 & 4)编码描述,即按照编码表,填写编码值数字及编码描述,如图片示例:编码值 1 表示 修改属性。可以事先编辑好编码值,此处复制粘贴即可。
提示:向属性域 追加 编码值及描述,可以使用此工具,但是要注意追加的 编码值数字不能与已有编码值重复。
(3) 指定字段的属性域
设置特定字段的属性域,也可设置子类型的属性域。如果未指定任何子类型,则仅为特定字段指定属性域。
需要注意的是,此字段不能有值,即应为空,所以最好新建1个辅助字段。
1)输入表,用于从中派生属性域值的数据库表。
这里指定的是 地理数据库内的,准备设置属性域字段的要素图层或者表的名称。载入工作空间的图层或表可以下列选择,未载入的需要通过路径指定。
2)字段名,要指定属性域的字段的名称。
特别注意:截图可以看到,我选择的字段名,并不是要素层中原始的字段名,而是标注了数字的字段名 “修改说明1”,这是专门为了链接属性域而新建的辅助字段,字段类型于 第一步骤 "创建属性域"的字段类型完全一致,上面是short短整型,这里新建字段类型也要是short短整型。
无法使用要素图层原始字段的原因是,原始字段的字段类型是text文本型,填写的是文本字符,不能与属性域进行链接。
3)属性域名称,要指定给字段名的地理数据库属性域的名称。将自动加载可用的属性域。本文第一个属性域名称为 “修改说明”,第二个属性域名称为 “修改依据”。
至此,属性域的设置完成,使用效果演示见本文章后面动画。
方法2:使用表转属性域
此方法使用工具箱中的现有工具条,表转属性域。
操作顺序:1创建编码表格excel——2表转属性域——3指定字段的属性域。
(1) 创建编码表格
在表格中填写好编码值及编码含义,每组编码代表1个属性域,可以每个属性域创建1个表格,也可以多个属性域在一张表格中,这个表格后续会进行要素连接,根据个人习惯确定表格数量。能做到不混淆即可。
本文第一个属性域名称为 “修改说明”,第二个属性域名称为 “修改依据”。如下图:
(2) 表转属性域
通过提前创建好的表中的值,创建或更新编码值属性域。
注意:每次创建一个属性域,多个属性域重复本步骤即可。
1)输入表,用于从中派生属性域值的数据库表,即上一步创建的编码表格excel。
2)编码字段,用于从中派生域编码值的数据库表中的字段。
第一个属性域"修改说明"的编码值在表格 A列 "编码1"列;
3)描述字段,用于从中派生属性域描述值的数据库表中的字段。
第一个属性域"修改说明"的编码值描述在表格 B列" 修改说明"列;
4)输入工作空间,即保存属性域的地理信息数据库,mdb、gdb数据库。
5)属性域名称,要创建或要更新的属性域的名称。可以跟字段名称一致,方便对照。
6)属性域描述(可选),对名称的详细描述,方便理解。
不会更新现有属性域的属性域描述。
7)更新选项(可选),如果是新建属性域,此框为空;
如果属性域已经存在,请指定如何更新属性域。
append—从数据库表追加到属性域值。
replace—用数据库表中的值替换属性域中的值。
特别提示 :导入表格生成的属性域,字段类型默认均为 双精度 数值型,所以在对要素层或表新建链接字段时,需要特别注意字段类型。
查看属性域的方法:找到添加了属性域的地理信息数据库,鼠标右键——属性,弹出的窗口即可看见属性域,可以查看属性域的名称及描述,属性域的字段类型,属性域的编码及描述。
(3) 指定字段的属性域
这次不使用工具箱,而是手动进行属性域链接。
方法:使用 ArcCatalog 目录,找到设置属性域的地理信息数据库,再找到准备设置属性域的要素图层或表,鼠标右键——属性,打开要素类属性窗口,如下图所示:
此方法,同时添加了辅助字段,并对新字段设置了属性域。
至此,属性域的设置完成,使用效果演示见本文章后面动画。
方法3:全手动添加属性域
此方法不使用工具箱,全程手动方法添加属性域。
操作顺序:1手动创建属性域——2指定字段的属性域。
(1) 手动创建属性域
使用 ArcCatalog 目录,找到设置属性域的地理信息数据库,鼠标右键属性,打开数据库属性窗口,找到"属性域",手动设置属性域,如下图所示:
(2) 手动指定字段的属性域
方法同上面方法2的第三步骤,注意 字段类型的匹配。
需要注意的是,设置属性域的字段不能有值,即该字段应为空,否则会报错,如下图:
这也是为什么新建辅助字段的好处,新字段专门为属性域服务,使用结束后删除即可,不影响要素层的原始结构。
至此,属性域的设置完成,如何使用,看下面动画的演示,特别提醒,注意看动画最后的计算字段操作。
属性域的使用演示动画:
发现问题了吗?我们最终想要的结果是 给要素层的原始字段"修改说明"赋值为文本,但是现在确是数字(实际上是编码值),那如何达到我们的目的呢?下面来解决这个问题。
三、表连接赋值
这一步也非常简单,只要真正理解了属性域的含义就好操作了。
我们新建的属性域辅助字段 “修改说明1” 和 “修改依据1”,真实存储的内容是属性域的 编码值,也就是1、2、3、4这些数值,只不过因为属性域的存在,显示的是文本内容。
我们使用编码表格excel与要素层进行表连接,根据 编码值 匹配即可,然后 进行字段计算,要素 . “修改说明” = 表格 . “修改说明“(即表格中编码值的描述)。
1.工作空间加载编码表
把编码表excel加载到工作空间中,多个属性域就添加多个表格,注意表格名称别混淆。
我的2个属性域编码在一个表格中,所以我加载的是 “d:\修改说明.xlsx\Sheet1”
2.表连接,计算字段
通过 编码值 进行匹配,然后 对原始字段进行 计算赋值。
操作如下图:
正常应该加载多个编码表进行多次的表连接赋值,以防止在操作中出现混淆,导致错误。因为我只有2个属性域,数量较少。但还是提倡标准操作,避免无谓的错误发生。
到此,我们想要的结果终于实现了。
这一步在属性域使用结束以后,准备提交最终成果的时候才能操作,否则辛苦建立的属性域,就被你删除了。
关于表连接功能,非常强大,也是经常使用的一种操作,有机会详细介绍。
总结
使用"属性域",可以提高字段填写内容的准确性,避免重复打字造成的输入错误。尤其使用 range 指定数值属性的有限取值范围,防止字段填写数值超范围异常。