0
点赞
收藏
分享

微信扫一扫

Python数据分析可视化之Pandas的使用

纽二 04-14 12:30 阅读 1

系列文章目录

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使用入门(三)图层右键工具——使用符号级别


文章目录


前言

本期开始介绍ArcGIS Desktop的一些进阶工具——ArcToolbox工具箱,后续会持续更新。
(ArcToolbox工具箱的添加方式均为ArcGIS Desktop软件界面顶部 红色工具箱 图标,鼠标点击后会激活工具箱窗口,找到相应的工具进行设置运行即可。)


一、本期工具:数据管理工具—属性域

工具名称:数据管理工具——属性域
工具样式:
1

综述:属性域,是地理数据库的一种行为规则,它可以限制表格、要素类或者子类型中某字段的合法取值,提高数据编辑的效率和准确性。

二、使用方法

下面介绍工具的一般使用方法,此外附上我的一些使用心得,如果不妥欢迎批评指正。

日常GIS工作中,在操作和修改地理信息数据库时,会要求记录一些修改过程,在要素的某个字段中重复填写一些固定单词或语句,不允许填写其他内容。如下图示例:
字段"修改说明"只能填写下列5种语句,字段"修改依据"只能填写下列3种语句。
2

此种情况非常常见,反复打字一些重复文字非常的影像心情,此时会想到能否借鉴Excel表格中的一些功能—数据序列。如下图所示:

3
还好,ArcGIS软件确实有类似的功能,就是本期介绍的工具"属性域",位置在工具箱—数据管理工具—属性域,可以实现在填写字段时使用下拉箭头进行选择,无需重复打字。

属性域工具有几种不同的使用方法,下面逐一介绍:

方法1:使用工具条建立属性域

此方法使用工具箱中的现有工具条,先后顺序一步一步进行操作,完成属性域的设置。

操作顺序:1创建属性域——2向属性域添加编码值——3指定字段的属性域。

(1) 创建属性域

使用属性域进行填写的是要素图层的某个字段,但是属性域要保存在地理数据库中的,所以要有mdb、gdb数据库。

4
1)输入工作空间,即保存属性域的地理信息数据库,mdb、gdb数据库。

2)属性域名称,要创建或要更新的属性域的名称,可以跟字段名称一致,方便对照。本文第一个属性域名称为 “修改说明”。

3)属性域描述(可选),对名称的详细描述,方便理解。

4)字段类型,要创建的属性域的类型。属性域是描述字段类型合法值的规则。指定的字段类型应与将属性域指定到的字段的数据类型相匹配。
特别注意,字段类型是属性域进行链接设置的关键,一般使用数字进行编码,数字格式有短整型、长整型、双精度等等,这里记住只要在后面建立链接字段时字段类型统一即可,否则类型不同无法匹配上。

5)属性域类型(可选),默认值 为 coded 编码值,字段填写文本值常用此项,数字编码对应属性值;
range 指定数值属性的有限取值范围,字段填写数值常用此项。

6)分割策略(可选),一般默认值即可,可选则default(默认值)两个所生成要素的属性使用给定要素类或子类型的默认属性值、
duplicate两个所生成要素的属性使用原始对象的属性值副本、
geometry ratio两个所生成要素的属性是原始要素值的比率。该比率取决于原始几何的分割比例。如果几何被分割成相等的两部分,则每个新要素的属性值将是原始对象属性值的一半。几何比策略仅适用于范围属性域。

7)合并策略 (可选),所创建属性域的合并策略,一般默认值即可。在将两个要素合并为一个要素时,合并策略控制着新要素的属性值。
可选项default(默认值)—所生成要素的属性使用给定要素类或子类型的默认属性值。这是唯一适用于非数字字段和编码值属性域的合并策略。
sum_values—所生成要素的属性使用原始要素属性值的总和。总和值策略仅适用于范围属性域。
area_weighted—所生成要素的属性使用原始要素属性值的加权平均值。此平均值取决于原始要素的几何。加权面积策略仅适用于范围属性域。

(2) 向属性域添加编码值

向属性域的编码值列表添加值。
5
1)输入工作空间,即保存属性域的地理信息数据库,mdb、gdb数据库。

2)属性域名称,上一步骤创建的 属性域名称。本文第一个属性域名称为 “修改说明”。

3)编码值 & 4)编码描述,即按照编码表,填写编码值数字及编码描述,如图片示例:编码值 1 表示 修改属性。可以事先编辑好编码值,此处复制粘贴即可。

提示:向属性域 追加 编码值及描述,可以使用此工具,但是要注意追加的 编码值数字不能与已有编码值重复。

(3) 指定字段的属性域

设置特定字段的属性域,也可设置子类型的属性域。如果未指定任何子类型,则仅为特定字段指定属性域。
需要注意的是,此字段不能有值,即应为空,所以最好新建1个辅助字段。

7

1)输入表,用于从中派生属性域值的数据库表。
这里指定的是 地理数据库内的,准备设置属性域字段的要素图层或者表的名称。载入工作空间的图层或表可以下列选择,未载入的需要通过路径指定。

2)字段名,要指定属性域的字段的名称。
特别注意:截图可以看到,我选择的字段名,并不是要素层中原始的字段名,而是标注了数字的字段名 “修改说明1”,这是专门为了链接属性域而新建的辅助字段,字段类型于 第一步骤 "创建属性域"的字段类型完全一致,上面是short短整型,这里新建字段类型也要是short短整型。
无法使用要素图层原始字段的原因是,原始字段的字段类型是text文本型,填写的是文本字符,不能与属性域进行链接。

3)属性域名称,要指定给字段名的地理数据库属性域的名称。将自动加载可用的属性域。本文第一个属性域名称为 “修改说明”,第二个属性域名称为 “修改依据”。

至此,属性域的设置完成,使用效果演示见本文章后面动画。

方法2:使用表转属性域

此方法使用工具箱中的现有工具条,表转属性域。

操作顺序:1创建编码表格excel——2表转属性域——3指定字段的属性域。

(1) 创建编码表格

在表格中填写好编码值及编码含义,每组编码代表1个属性域,可以每个属性域创建1个表格,也可以多个属性域在一张表格中,这个表格后续会进行要素连接,根据个人习惯确定表格数量。能做到不混淆即可。

本文第一个属性域名称为 “修改说明”,第二个属性域名称为 “修改依据”。如下图:
6

(2) 表转属性域

通过提前创建好的表中的值,创建或更新编码值属性域。

注意:每次创建一个属性域,多个属性域重复本步骤即可。

8

1)输入表,用于从中派生属性域值的数据库表,即上一步创建的编码表格excel。

2)编码字段,用于从中派生域编码值的数据库表中的字段。
第一个属性域"修改说明"的编码值在表格 A列 "编码1"列;

3)描述字段,用于从中派生属性域描述值的数据库表中的字段。
第一个属性域"修改说明"的编码值描述在表格 B列" 修改说明"列;

4)输入工作空间,即保存属性域的地理信息数据库,mdb、gdb数据库。

5)属性域名称,要创建或要更新的属性域的名称。可以跟字段名称一致,方便对照。

6)属性域描述(可选),对名称的详细描述,方便理解。
不会更新现有属性域的属性域描述。

7)更新选项(可选),如果是新建属性域,此框为空;
如果属性域已经存在,请指定如何更新属性域。
append—从数据库表追加到属性域值。
replace—用数据库表中的值替换属性域中的值。

特别提示 :导入表格生成的属性域,字段类型默认均为 双精度 数值型,所以在对要素层或表新建链接字段时,需要特别注意字段类型。

查看属性域的方法:找到添加了属性域的地理信息数据库,鼠标右键——属性,弹出的窗口即可看见属性域,可以查看属性域的名称及描述,属性域的字段类型,属性域的编码及描述。

9

(3) 指定字段的属性域

这次不使用工具箱,而是手动进行属性域链接。
方法:使用 ArcCatalog 目录,找到设置属性域的地理信息数据库,再找到准备设置属性域的要素图层或表,鼠标右键——属性,打开要素类属性窗口,如下图所示:
10
此方法,同时添加了辅助字段,并对新字段设置了属性域。

至此,属性域的设置完成,使用效果演示见本文章后面动画。

方法3:全手动添加属性域

此方法不使用工具箱,全程手动方法添加属性域。

操作顺序:1手动创建属性域——2指定字段的属性域。

(1) 手动创建属性域

使用 ArcCatalog 目录,找到设置属性域的地理信息数据库,鼠标右键属性,打开数据库属性窗口,找到"属性域",手动设置属性域,如下图所示:
请添加图片描述

(2) 手动指定字段的属性域

方法同上面方法2的第三步骤,注意 字段类型的匹配。
需要注意的是,设置属性域的字段不能有值,即该字段应为空,否则会报错,如下图:
请添加图片描述
这也是为什么新建辅助字段的好处,新字段专门为属性域服务,使用结束后删除即可,不影响要素层的原始结构。

至此,属性域的设置完成,如何使用,看下面动画的演示,特别提醒,注意看动画最后的计算字段操作。

属性域的使用演示动画:

请添加图片描述

发现问题了吗?我们最终想要的结果是 给要素层的原始字段"修改说明"赋值为文本,但是现在确是数字(实际上是编码值),那如何达到我们的目的呢?下面来解决这个问题。

三、表连接赋值

这一步也非常简单,只要真正理解了属性域的含义就好操作了。

我们新建的属性域辅助字段 “修改说明1” 和 “修改依据1”,真实存储的内容是属性域的 编码值,也就是1、2、3、4这些数值,只不过因为属性域的存在,显示的是文本内容。

我们使用编码表格excel与要素层进行表连接,根据 编码值 匹配即可,然后 进行字段计算,要素 . “修改说明” = 表格 . “修改说明“(即表格中编码值的描述)。

1.工作空间加载编码表

把编码表excel加载到工作空间中,多个属性域就添加多个表格,注意表格名称别混淆。
我的2个属性域编码在一个表格中,所以我加载的是 “d:\修改说明.xlsx\Sheet1”

2.表连接,计算字段

通过 编码值 进行匹配,然后 对原始字段进行 计算赋值。

操作如下图:
请添加图片描述
正常应该加载多个编码表进行多次的表连接赋值,以防止在操作中出现混淆,导致错误。因为我只有2个属性域,数量较少。但还是提倡标准操作,避免无谓的错误发生。

到此,我们想要的结果终于实现了。
这一步在属性域使用结束以后,准备提交最终成果的时候才能操作,否则辛苦建立的属性域,就被你删除了。

关于表连接功能,非常强大,也是经常使用的一种操作,有机会详细介绍。

总结

使用"属性域",可以提高字段填写内容的准确性,避免重复打字造成的输入错误。尤其使用 range 指定数值属性的有限取值范围,防止字段填写数值超范围异常。

举报

相关推荐

0 条评论