自然

自然天地,自然而然,无为而至!

导航

Subtypes and attribute domains

 

Subtypes and attribute domains

NOTE:不能在ArcView® 授权模式下新建一个Subtypes;但是可以在ArcView 下读取classes with subtypes.

地理数据库(geodatabase)是以组件(objects)的方式储存每个地理数据。这些组件可能呈现的是真实世界的非空间性数据;也可以呈现这真实世界的空间数据,ex:水管的网络分布。每个组件又可以分成2种不同的形式储存于地理数据库中:

1.Feature classes:储存空间的数据。

2.Tables:储存非空间性的属性数据。

这些组件不管是在feature class 或是table 中被组织成subtypes ,而且彼此间都有一定的规则关联。ArcInfo™就是依据这些关联来帮助我们维护整个地理数据库获取到有用的组件。

Subtypes and validation rules (Limited in ArcView)

Tables 和 feature classes 都是储存同一个类型的objects,换句话说,objects 都具有相同的behavior 和属性( attributes )。举例来说:一个自来水管线的feature class 就是储存有关于自来水管相关类型的图,但是全部的有关自来水管的图都会具有相同的behavior以及属性数据(ReferenceID、深度、材料、地质、大小尺寸)

When to use subtypes (ArcInfo and ArcEditor only)

一个好的地理数据库设计决定在于是否我们有正确的再适当的地方使用subtypes 或着在适当的地方增加一个feature classes 。当我们想要尝试去区别objects 藉由其基本的值、attribute domains,、connectivity rules和 relationship rules,最好的办法是为每一个单独的feature class or table新增可以区隔的subtypes。当我们想要区隔 objects 根据不同的behaviors、attributes、access privileges,我们必须新增一个feature classes。

Attribute domains

Attribute domains 是用来限制(constrain) 在any particular attribute for a table, feature class, or subtype被允许的值(values)。任何一个feature class 或者table 都会具有一组attribute domains 用在不同的attributes 和(或者) subtypes。这些attribute domains 可以在地理数据库中不同的feature classes 和 tables中被分享。Attribute domains 没有权利去允许或者不允许在具有关系型的字段(associated field)有空的值(null values)。当我们再地理数据库中建立一个table 或着 feature class 的时候,就应该要决定是否要给予Null Value的权限。所以当我们遇到没有Null Value权限的字段时,我们就必许输入数据,因为Null Value将是为数据的一部分。

attribute domains有两种不同的类型:

lRange domains

range domain 是对于一个数值型属性(numeric attribute)给定一个范围(a valid range of values) 。

在自来水管的范例中,假如水管管线所能承受的压力在50到75磅之间,那我们在给定range domain时,就要遵照这个范围(50到75磅)之间来给定适当的值。

lCoded value domain

coded value domain 可以被应用在不同类型的属性里,ex:text、 numeric、 date…….等。

简单的来说就是「给定代码」,可能根据不同的属性特性,给定不同的代码来代表各个属性特性。

Ex:在土地利用的数据中,可能用1来代表农耕地;2代表建筑用地….等。

Splitting and merging features

当我们在编辑数据时,我们常常会将一个feature数据分割成两个feature,或着把两个feature数据做结合或成一个feature数据。

举例来说,在土地利用图中,我们可能依据不同的分区特性分割成两个或多个分区;同样地,我们也可以将两个或多个邻近相同的分区特性merge成一个。对属性里面的值而言,当我们在做Split动作时,是被一个Split policy所控制的;相对而言,当我们在做Merge的动作时,也是被一个Merge policy所控制。每一个 attribute domain 都会具有split policy 和merge policy。当我们对feature做split或着merge的动作时,就会依循着这些policies来决定哪些值应该分到某个特别的地方去(determine what values the resulting feature(s) have for a particular attribute)。

Split policies

在做Split动作时,不管对任何一个table、feature class或着subtype而言,都会具备以下三个policies的一个,来控制输出object的属性值。

 

Default value:    对产生出来的属性值给定一个默认值(default value )。

 

Duplicate:           对产生出来的属性值给定一个与原本相同的值(copy of the original object’s attribute value)。

 

Geometry ratio: 对产生出来的属性值依据某个比例来计算,给定一个值(a ratio of the original feature’s value )。这个比例是依据在分割时所给的比例而定的

                              ex:若我们以平分的方式分割,那么所出来的属性值                       就会评分原本的值。但是使用Geometry ratio的方式有一个限制,attribute domain必须是为数字型(numeric field types )。

Merge policies

当有两个features 要merge 成一个feature 时, merge policies 控制了新的feature里面的属性值(the value of attributes)。

Merge policies有以下三个:

Default value:对merge后的feature给定一个默认值。这是惟一一个对不是数字型态的字段(non-numeric fields)和 coded value domains的merge policy。

Sum values:对merge后feature的属性值,是为原本属性值的加总(the sum of the values from the original features’   attribute)。

Geometry weighted:对merge后feature的属性值,是衡量其权重大小来计算给定的值(the weighted average of the values of the attribute from the original features)。

Schema locking

当我们在对subtypes、default values 和 attribute domains作修改的动作时,如果别人同时在读取相同的数据,将会不能读取。

必须等到我们修改的动作完成后方才能读取数据。想要知道更多有关Schema locking 的信息,请参照Geodatabase items。



参考文献:Building a Geodatabase  

posted on 2006-08-07 21:43  愚者  阅读(538)  评论(0编辑  收藏  举报