关于在编辑时保持属性完整性
ArcGIS 提供了用于帮助您保持属性数据质量的工具。地理数据库属性域、子类型、默认值、关系类和验证法可帮助您保持地理数据库中要素属性的实际值。
使用属性域
属性域是描述字段类型允许值的规则,用于约束表、要素类或子类型的任何特定属性的允许值。每个要素类或表都可具有一组应用于不同属性的属性域。地理数据库中的不同要素类和表可以共用给定的属性域。如果要素类具有子类型,每个子类型均可具有一个与给定属性相关联的不同属性域。例如,给水干管要素类和给水支管要素类可以将同一个属性域用于地表类型字段。
编辑具有编码值属性域的字段时,将显示一个包含所有属性域值的下拉列表。例如,在水网数据库中,某个要素类可能存储输水干管。编码值属性域规定输水干管直径只能为 10、24 或 30 英寸。
值域范围用于指定数值属性的有效值范围。例如,给水干管可以具有三个子类型:输水、配水和旁路。每个子类型的有效压力范围可以不同。配水干管的压力可以介于 50 到 75 psi 之间。要使一个配水干管对象有效,其压力值必须介于 50 到 75 psi 之间。值域范围用于指定该取值范围。
编辑具有编码值属性域的字段时,可以只从所有属性域值的列表中选择值,这样便可给字段分配有效的值。编辑具有值域范围的字段时,需要在输入它们后检查属性是否有效,以确保输入值在取值范围内。
分割和合并要素后属性域的结果
在编辑数据时,经常需要将一个要素分割成两个要素,或将两个单独的要素组合(或合并)为一个要素。例如,在 landbase 数据库中,一个地块可能由于再分区而被分割成两个单独的地块。类似的分区变更可能需要将两个相邻的地块合并为一个地块。
分割要素时,属性值的行为受控于其分割策略,而合并要素时,属性值受控于其合并策略。每个属性域都有分割策略和合并策略。对要素进行分割或合并时,ArcGIS 会参照这些策略来确定,对于某个特殊属性,最终所得的要素具有哪些值。
编辑子类型
子类型是对地理数据库中的某种要素类或表的细分。它们可用于根据数据的唯一特征或行为对要素进行分组。此特征或行为由表中某一字段的值表示。例如,对水文表而言,不同类型的水道(如小溪、溪流、河道、运河和河流)都可以拥有子类型。对于每个子类型,可以应用不同的拓扑规则、连通性规则、默认值以及关系规则。
子类型作为编码值来实现,其中每个整数值代表子类型中的一个要素。例如,在水网数据库中,可能有配水网络接头要素类。不用分别为各种接头生成不同的要素类,只需为封头、管接头、管塞、三通管等创建一个具有不同子类型的要素类。每种子类型可以具有各自的默认值和属性域。
默认属性值
要素模板允许将默认属性值分配给使用该模板创建的新要素。创建要素模板时,模板使用已在地理数据库中指定的所有默认值。如果要素类具有地理数据库默认值,这些值将自动填充为要素模板的默认值。例如,处理输水干管时,如果要创建的多数水管的直径为 24",则可以将 24" 设置为 DIAMETER 字段的默认值。这样,创建的所有新要素的 DIAMETER 属性都将变为 24"。然而,要素模板字段值可能与其地理数据库默认值不同,这时要素模板字段值将覆盖地理数据库默认值。
也可在编辑现有要素时使用地理数据库默认值来分配默认属性值。例如,在分割线要素时,地理数据库默认值将提供给分割要素。
关系类
如果已在地理数据库中创建要素类和表间的关系类,则可通过 ArcMap 编辑工具来使用关系。使用 ArcMap 编辑工具可查找与特定对象相关的所有对象并对它们进行编辑。例如,可以选择某块宗地并查找该宗地的所有者,然后编辑该所有者的某些属性,而不必将存储所有者的表添加到 ArcMap 会话中。
您还可以使用 ArcMap 编辑工具在对象间建立新关系或终止对象间的现有关系。例如,如果宗地改变了所有权,则可删除宗地与其先前所有者间的关系,然后与新所有者建立新关系。
关系还可与要素关联的注记一起使用。编辑要素将影响其关联的注记,这是因为二者之间存在复合关系。如果移动或旋转了源要素,关联注记也会随之移动或旋转。如果从地理数据库中删除了某个源要素,同样也会删除关联的注记要素。更改注记文本所关联的要素的属性时,注记也会相应地更新。创建新要素时,可以自动创建新注记。
验证要素
编辑属性后,验证编辑内容。“编辑器”菜单上的“验证要素”命令用于检查有效子类型和属性域以及其他完整性规则(例如,几何网络和关系)。如果存在任何无效要素,则可在必要的时候修复它们。
除拓扑外,地理数据库还支持三大类型的验证规则:属性验证规则、几何网络连通性规则和关系规则。了解有时可以违反这些验证规则这一点很重要;在某些情况下,地理数据库允许无效对象存储到数据库中。
例如,如果某个属性规则规定水网中配水干管的有效压力范围在 50 到 75 psi 之间,则地理数据库不会禁止您存储超出该范围的值。但是,水压超过该范围的配水干管在地理数据库中将为无效对象。ArcMap 提供了许多帮助您识别无效要素的编辑工具,以便您可以修正它们。
但边-边连通性规则、边-交汇点连通性规则和编码值属性规则除外。在这些情况下,编辑与这些规则相关联的要素时,ArcMap 将发挥更为积极的作用。
验证要素的常规方法是验证过程不应导致有效要素被标记为无效(漏报);但是允许将无效要素报告为有效(误报)。如果地理数据库不强制执行任何验证,实际上每个要素都将为有效。对特定要素执行验证时,分五步执行验证:
- 验证子类型。
- 验证属性规则。
- 验证网络连通性规则(如果存在网络要素)。
- 验证关系规则。
- 执行自定义验证(使用可选的类扩展)。
此策略意味着先执行成本最低的验证。一旦发现要素无效,验证过程会立即停止。例如,如果在执行检查 1 时要素没有通过验证测试,那么将不再执行检查 2、3、4 和 5。
检查连通性规则和关系规则时,所有关联的规则必须有效。使用网络连通性规则时,如果指定其中某个规则,则必须指定所有这些规则。因此,如果某种连通性没有相关联的连通性规则,那么便会将网络要素视为无效。