32 ArcToolBox学习系列之数据管理工具箱——属性域(Domains)的两种创建及使用方式
属性域分为两类,一种是范围域,一种是编码的值,下面将两个一起介绍,其中涉及到的编码,名称,只是试验,并非真实情况。
一、首先新建一个文件型地理数据库,将数据导入或者是新建要素类都可以
二、打开ArcToolBox,找到工具集Domains,位置如下:ArcToolbox--Data Management Tools--Domains
新建属性域,使用工具 Create Domain
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/create-domain.htm
在新建的gdb上右键,属性,打开到Domains选项卡,结果如下
向属性域添加编码值,使用工具Add Coded Value To Domain
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/add-coded-value-to-domain.htm
同样在新建的gdb上右键,属性,打开到Domains选项卡,结果如下
在此窗口上直接编码添加编码值适合于少量数据,gp工具适用于python脚本使用,效果相同
新建一个范围域,使用工具 Create Domain,其中字段类型为SHORT,Domain Type才能为Range
接下来给范围域添加数值,使用工具Set Value For Range Domain,
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/set-value-for-range-domain.htm
所有属性域设置完毕,效果如下
然后为需要的字段指定属性域,需要注意的是,字段类型要与属性域设置的相同才可以用,使用工具Assign Domain To Field
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/assign-domain-to-field.htm
其中【dlmc】对应的是【地类名称分类】,【dlbm】对应的是【范围值】
同样,在要素类上右键--属性,也可以执行此操作,效果如下
接下来就可以开始编辑,见证属性域的作用啦
有时候在创建编码的时候,并不是按照顺序创建的,出于工作便利考虑,需要对编码值进行排序,可使用Sort Coded Value Domain工具,
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/sort-coded-value-domain.htm
因小编在建立的时候是按照从小到大的顺序排的,为了看出效果,我们使用DESCENDING方式
效果如下
还可将设置的属性域导出成表的形式,使用工具Domain To Table
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/domain-to-table.htm
同理,也可以将表转为属性域,可以减少重复新建属性域的工作,提高效率,使用工具:Table To Domain
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/table-to-domain.htm
如果需要删除属性域中已不需要的编码值,可以使用工具Delete Coded Value From Domain
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/delete-coded-value-from-domain.htm
选择要删除的编码值即可
如果该gdb不想使用属性域了,也可以删除属性域
首先,需要将与字段【关联】的属性域移除,使用工具Remove Domain From Field
工具介绍:http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/data-management-toolbox/remove-domain-from-field.htm
将所有与字段关联的属性域移除之后,就可以彻底删除属性域了