完整版GIS中数据的存储方式Geodatabase数据模型的类型及数据组织创建PersonalGeodatabaseWord文件下载.docx
《完整版GIS中数据的存储方式Geodatabase数据模型的类型及数据组织创建PersonalGeodatabaseWord文件下载.docx》由会员分享,可在线阅读,更多相关《完整版GIS中数据的存储方式Geodatabase数据模型的类型及数据组织创建PersonalGeodatabaseWord文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
数据库方式
所有数据统一存贮在数据库中,可以是小型单用户数据库(如Access),也可以是企业级的多用户数据库(如Oracle、DB2、Informix、SQLServer等)。
–可以利用数据库强大的数据管理、数据安全、并发以及事务处理等功能。
–软件投资较大。
目前,主流的GIS软件都支持在标准的数据库管理系统表中存储和管理地理信息,当然,不同的软件具体方式有所不同。
在推出ArcGIS的同时,ESRI公司同时推出了一种新的数据库方式的空间数据存储模型——Geodatabase。
GIS中的数据GIS中数据的存储方式Geodatabase数据模型的类型及数据组织数据模型的类型及数据组织创建PersonalGeodatabase
1Geodatabase数据模型的类型
ArcGIS目前有两种Geodatabase:
–个人Geodatabase(PersonalGeodatabase)–多用户Geodatabase(MultiuserGeodatabase)。
个人Geodatabase使用微软的Access数据库来管理数据,它支持单用户编辑,不支持版本管理。
多用户Geodatabase通过ArcSDE连接企业级数据库平台,它能支持海量数据库、多用户的并发访问以及长事务和版本管理的工作流。
个人和多用户Geodatabase比较
GeodatabaseDBMS注释
个人Geodatabase个人
MicrosoftJetEngine(Access))
单用户编辑2GB大小限制大小限制不支持版本管理
多用户Geodatabase多用户
OracleIBMDB2IBMInformixMicrosoftSQLServer
需要需要ArcSDE多用户编辑基于版本管理的工作流数据库大小和用户数限制依赖于数据库
Geodatabase数据组织
可以把矢量地图(FeatureClass)、表格(Table)、栅格图像(RasterDataset)、地理数据的行为规则以及元数据文档、空间处理工具等存储在一个Geodatabase中。
在Geodatabase中,可以建立要素集(FeatureDataset),把具有相同空间参考的地图数据存放到同一要素集中。
在要素集中,可以定义集合中空间相关要素行为的完整性规则(拓扑)及要素连通性规则(几何网络)。
如对象之间存在的关联,则可建立关系类,用来控制创建、修改、删除对象的方式。
关系类可以在要素集内,也可以在要素集外。
在一个数据库中存储的各种类型数据
GIS中的数据GIS中数据的存储方式Geodatabase数据模型的类型及数据组织创建PersonalGeodatabase创建
基本过程
在ArcCatalog环境下,选择一个文件夹(或根目录),右击鼠标可以新建一个Geodatabase。
在Geodatabase下,可以新建要素类和表格,也可以新建一个要素集,把具有相同空间参照的要素类放在同一要素集中。
在新建要素集时,可以定义要素集的坐标系统以及X/Y、Z、M的域。
–坐标系统的定义有三种方式:
选择、输入和新建。
–X/Y的域包括X/Y坐标值的精度(Precision)及范围。
如Precision为1,则坐标值取整数,如Precision为100,则坐标值精确到小数点后面两位。
由于Geodatabase是以4个字节存储坐标值,小数位越多,能表示的X/Y范围就越小。
–Z和M分别是高程值和测量值,同样可以定义它们的域。
只要定义最小X/Y值和精度,就能自动计算出最大X/Y值。
对新建的要素类或表格,我们可以定义相应的字段(包括字段名及数据类型等)。
ArcGISdatatypestable
对每个字段,我们可以定义字段值显示的宽度(Precision)及小数位(Scale)。
当字段在数据库中产生时,字段类型可能会根据定义的字段宽度与小数位发生变化。
对要素类,需要定义Shape字段的类型(point、line、polygon、multipoint以及multipatch)。
Demo
–新建一个PersonalGeodatabase。
–在PersonalGeodatabase下,新建一个shanghai要素集,定义坐标系统为高斯投影,单位为米,精度为1。
–在shanghai要素集中,新建一个parcel要素类,Shape字段类型为polygon,新增字段parcel_name(文本型)、owner_name(文本型)。
–在PersonalGeodatabase下,新建一个owner表,新增字段name(文本型)、age(短整型)。
定义子类
子类(Subtype)是根据要素的某一字段对要素进行细分,如电线杆按照材质可以分成木质、铁质、水泥质等。
子类的定义有利于对对象进行管理,也有利于数据输入。
如要创建子类,子类字段必须是整型整型。
整型在要素类或表的属性表中,选择子类选项卡,然后输入每一个子类的代码和描述。
Demo:
–在shanghai要素集中新建pole要素类(点要素类),新增三个字段:
类型(短整型)、高度(短整型)和管理部门(文本型)。
–在pole要素类的属性表中,选择子类选项卡,根据type字段创建pole类型子类,包括Wood、Steel和Cement。
–在ArcMap环境下通过列表框选择对要素子类进行赋值。
根据类型定义两个子类
通过列表框选择对要素子类进行赋值
3
定义域
域(domain)是要素字段的有效取值与范围。
域的定义保证输入数据的有效性。
有两种类型的域:
范围域和编码值域。
范围域是定义数字字段的有效取值范围;
编码值域是定义有效字段值的集合。
如数据存在子类字段,则同一字段可按照子类选择不同的域。
编码值域
范围域
右击Geodatabase,点击properties,然后点击Domain选项卡,定义不同的域。
对每个域,需要定义域所对应的字段类型,在一个Geodatabase中,不同要素类或表可以共享相同字段类型的域。
如可以定义5分制、100分制、150制成绩(均为短整型)的范围域,语文成绩、数学成绩、体育成绩(短整型字段)等均可选用相应的域。
定义三个域,前两个为范围域,第三个为编码域
在新建要素类时,对新建的字段(或子类)可以选择Geodatabase中已有的域作为字段域。
对已建的要素类,通过打开要素类属性表,来定义子类以及子类域。
对一个字段(或子类)只能选择类型一致的域,如字段为长整型,只能选择同样是长整型的域。
选中某个子类,可以定义该子类各个字段值的域(从已有的域中选择)
在ArcMap环境下,对字段值进行编辑时,如果字段值有编码值域,只能在已定义的值中进行选择;
如果字段值有范围域,利用Editor工具栏下的Validation命令可以对选中的要素进行有效性检验(要素在编辑状态下),如用户输入的数据在数据域之外,该对象将被认为是一个无效(invalid)对象。
Demo(按子类定义pole要素类的域)
–打开Geodatabase的属性表,定义三个域:
Wood_pole高度域(短整型),20—30ftSteel_pole的高度域(短整型),30—50ftpole的管理部门域(文本),市管,区县管
–打开pole要素类属性表,定义高度和管理部门字段的域,其中,高度按子类定义。
–在ArcMap环境下,增加若干个pole点,对选中点进行属性编辑,其中管理部门只能在市管和区县管两个值中选择;
输入的高度值是否有效,可以通过Validation命令对选中的要素进行有效性检验。
4
创建关系
关系(relationship)是指对象之间存在的关联。
对象之间的关系包括简单关系(simple)和复合关系(composite)。
–简单关系(simple)是指对象的存在是独立的。
如一个铁路的道口有一个或多个信号灯,但它们的存在是独立的。
–复合关系(composite)是指一个对象的生命周期控制相关对象的生命周期,如电线杆与变压器之间的关系。
电线杆与变压器的关系
建立关系的意义:
–在查询一个对象的属性时,可以同时显示与之相关的对象及其属性,也可以以相关对象的属性进行专题制图;
–如对象之间的关系为复合关系,在对一个对象进行编辑时,可以通过关系使相关对象产生同步变化。
在Geodatabase中,相互关联的对象可以用关系类数据定义它们之间的关系。
空间对象之间、非空间对象之间以及空间对象和非空间对象之间都可以建立关系。
在一个关系类中,需要定义其中的一个对象为源(origin),另一对象为目标(destination)。
源和目标是相对的,不是绝对的。
对象之间有4种对应关系:
一对一、一对多、多对一和多对多。
其中,一对多和多对一是与源和目标的定义有关,如电线杆与变压器的关系,一个电线杆可以支持多个变压器,但是一个变压器只能在一个电线杆上,如定义电线杆为源,变压器为目标,则是一对多关系;
反之,变压器为源,电线杆为目标,则变成多对一。
在ArcGIS中,只提供3种对应关系(一对一、一对多和多对多),如是多对一关系,可以改变源和目标的定义变成一对多关系。
建立关系类后,在查询一个要素的信息时,可以显示与之相关的其它要素信息,它们之间的关系可以通过标注显示,其中源与目标的关系标注称为正向标注,目标与源的关系标注称为反向标注,如Owner为源,Parcel为目标,则正向标注通常是“own”,反向标注通常是“isownedby”
对多对多关系,需要建立一个属性表描述它们的关系。
Name张三张三李四ParcelABA
两个对象之间的关系通过属性值(字段值)保持。
在电线杆与变压器的例子中,安装变压器的电线杆编号包含在变压器对象的属性表中,这样我们能够知道一个变压器在哪一个电线杆上。
建立对象之间联系的字段称为keyfield,其中源表的keyfield称为primarykeyfield,目标表的keyfield称为foreignkeyfield。
对已建立的关系类,可打开其属性对话框来定义源要素类(或表)与目标要素类(或表)中对象之间的关联数。
选中源和目标对象,在OriginCardinality中定义一个目标要素能够关联的源要素数,如每个变压器必须且只能关联一个电线杆;
在DestinationCardinality中,定义一个源要素能够对应的目标要素数,如一个木质电线杆只能安装0—3个变压器。
定义关系规则
建立关系类步骤:
–––––––新建关系类(定义关系类名称)。
确定源表(或要素类)。
确定目标表(或要素类)。
选择关系类型。
输入向前路径标注和向后路径标注。
选择对应性。
在源表或要素类选择主关键字段(primarykeyfield);
在目标表或要素类选择外关键字段(foreignkeyfield)。
Demo(建立简单关系类)
–建立parcel和owner之间的简单关系类。
名称为Parcel_Owner,owner为源,parcel为目标,关系类型为Simplerelationship,向前路
径标注为own,向后路径标注为isownedby,选择对应性为1-M,主关键字段为Name,外关键字段为Owner_name。
Demo(建立复合关系类)
–建立pole和transform之间的复合关系类。
关
系类名称为pole_transform,pole为源,transform为目标,关系类型为复合关系类,向前路径标注为Carry,向后路径标注为iscarriedon,对应性为一对多,主关键字段为id,外关键字段为pole_id。
关系规则为
每个变压器必须且只能关联一个电线杆,一个木质电线杆只能安装0—3个变压器,一个钢质电线杆只能安装0—5个变压器。
5
定义拓扑
拓扑(topology)是定义空间相关要素行为的完整性规则,如多边形不能重叠;
点必须在多边形边界内等。
通过拓扑规则,可以检查数据的拓扑错误,确保数据质量。
拓扑规则可以为一个要素类中的要素定义,也可以为两个或两个以上要素类间的要素定义,同样能为要素类的子类定义。
目前,ArcGIS中包含25种拓扑规则,更多的规则类型将包含在后继版本中。
多边形规则
规则MustnotoverlapMustnothavegapsMustnotoverlaywithMustbecoveredbyfeatureclassof描述要素类中的多边形不能重叠,如行政区划图中的各个多边形。
要素类中的多边形形成一个连续表面,之间不能有空隙,如土地利用图。
不能与另一要素类的多边形叠置,即两个类型互相排斥,如土壤图中的水稻土与植被图中的林地不能相互叠置。
要素类中的一个多边形与另一要素类中的几个多边形必须重叠,如一个县级行政区与下属各个乡镇级行政区的范围必须重叠。
MustcovereachotherMustbecoveredbyBoundarymustbecoveredby
一个要素类的多边形与另一要素类多边形必须相互叠置,如相同评价单元、不同分类系统所得到的两个要素类。
一个要素的多边形必须是在另一要素类的多边形之中,如一个林地保护区必须是在林地分布范围内。
多边形要素的边界线必须与线要素重叠,如一个行政区划图既可以用多边形表示,又可以用线表示,但界线必须一致。
Areaboundary一个要素类中的多边形边界必须与另一要素类中mustbecoveredby多边形边界重叠,如一个行政区域有多个地块多boundaryof边形组成,它们的公共边界必须一致。
Containspoint至少包含一个点,如每个地块至少要有一个地址点。
线规则
规则MustnotoverlapMustnotintersectMustnothavedanglesMustnothavepseudo-nodesMustnotintersectortouchinterior描述同一要素类中的线不能有重叠,如河流,能够相交,但不能重叠。
同一要素类中的线不能重叠或相交,如等高线。
线要素不能有悬点,必须闭合,如行政界线。
不能有假节点,要求一条线的端点至少要和其它两条线相连,如路段。
同一要素类中的线只能在端点相连,如地块界线。
Mustnotoverlapwith
一个要素类中的线不能和另一要素类中的线叠置,如公路图中的公路和铁路图中的铁路。
Mustbecoveredbyfeatureclass一个要素类中的线必须被另一要素类中of的线覆盖,通常用于逻辑上不同但空间上一致的线要素,如公交线路与道路。
MustbecoveredbyboundaryofEndpointmustbecoveredbyMustnotselfoverlapMustnotselfintersectMustnotbesinglepart必须被多边形要素的边界线覆盖。
线要素中的端点必须被另一要素中的点要素覆盖,不能自叠置,如道路。
不能自相交,如等高线。
要求每个线记录只是由一个部分组成。
点规则
规则MustbecoveredbyboundaryofMustbepropertyinsidepolygonsMustbecoveredbyendpointofMustbecoveredbyline描述要求点落在多边形要素的边界线上,如界线桩点必须在边界线上。
要求点落在多边形要素中,如地址点与地块。
要求点被线要素的端点覆盖,如边界角点被边界线的端点覆盖。
要求一个要素类中的点被另一要素类中的线覆盖,如公路上的信号灯被公路覆盖。
建立拓扑步骤:
–在ArcCatalog环境中,选择一个数据集,在该数据集下新建拓扑,参与拓扑的要素类必须是在同一数据集中。
–选择参与拓扑的要素类,定义它们所要遵循的拓扑规则、位置容差(Tolerance)以及要素类的等级(Rank)。
–容差是定义顶点之间的最小距离。
当顶点之间的距离小于容差时,在拓扑验证时,将会合并在一起。
缺省的容差值取决于数据集的范围与精度。
考虑到不同要素类的精度不一样,我们可以对每一个要素类设置一个等级,精度低的要素类顶点向精度高的要素类顶点合并。
最高等级是1,最多可以设置50个等级。
属于同一等级的顶点将合并到它们的几何中心。
–新的要素类可以增加到已有的拓扑中。
选择参与拓扑的要素类
定义要素类的等级
定义拓扑规则
拓扑验证
–在ArcMap环境下,利用拓扑工具条中的拓扑验证工具可以检查是否存在拓扑错误(在Editor/MoreEditingTools/下选中Topology将显示拓扑工具条)。
–拓扑验证工具有三个,分别用于对选中要素、当前显示要素以及所有要素进行拓扑验证。
–检查以后,存在拓扑错误的区域在地图上以特定符号显示,在错误查看器(ErrorInspector)中可以看到详细的信息,包括不同类型的拓扑错误等。
错误查看器中的记录与地图上的要素是相关联的。
–对存在拓扑错误的区域,ArcGIS提供了FixTopologyError工具,该工具具有图形切割、图形合并、图形增加以及标记为特殊情况等功能。
–在一个数据集中有三个图层(Building、Department_place和Landuse),定义如下拓扑规则:
“Department_place”MustBeProperlyInside“Building”;
“Landuse”MustNotOverlap;
“Landuse”MustNotHaveGaps。
6
创建几何网络
现实世界中,人员的流动、货物的流通、信息的传递、能量的传输等,都是通过网络系统来进行的。
网络系统有两种表现形式:
几何网络和逻辑网络。
几何网络(geometricnetwork)反映网络要素实际的空间位置;
逻辑网络只反映网络要素的逻辑关系,不反映网络要素的空间特征。
几何网络和逻辑网络
在ArcGIS中,创建几何网络实际上是确定哪些要素参与网络,它们在网络中的角色,以及要素之间的连接关系等。
当创建几何网络后,就可以分析网络中要素的连接是否符合规则。
几何网络中的要素包括边网络要素(EdgeNetworkFeature)和连接点网络要素(JunctionNetworkFeature),边通过连接点相互连接。
边网络要素分为简单边要素和复杂边要素。
简单边要素只能和两个连接点要素相连接;
复杂边要素可以和多个连接点要素相连接。
有两种类型网络连接规则:
边—节点规则和边—边规则。
–边—节点规则建立每个类型的边可以和哪些类型的节点连接以及连接的数量;
–边—边规则建立每个类型的边可以通过什么节点与其它类型的边连接以及连接的数量。
几何网络中的任何边或连接点要素都可以设置是否可运行。
不可运行的要素称为障碍(Barrier),当网络被追踪时,追踪将在它遇到障碍的地方停止。
新建的几何网络要素将有一个Enabled字段,该字段有两个值:
True或False,默认状况是True。
网络中物质、能量、信息的流动是有方向的,网络中的方向是从源到汇(Sinks)。
当在网络中建立一个新的连接点要素类时,如选择可以设置为源或汇,将在要素类中增加一个称为AncillaryRole的字段,可以指定该要素是源或汇,或者两者都不是。
建立几何网络有两种途径:
一是从零开始建立一个全新的几何网络;
二是以已存在的简单要素类为基础建立几何网络。
从零开始建立一个几何网络,通常需要下列几个步骤:
–利用ArcCatalog建立要素集;
–在要素集中,建立一个空的几何网络;
–建立新的要素类(网络要素类),并定义每一个要素类在几何网络中的角色;
–为几何网络的元素建立连接规则;
–在ArcMap中把要素添加到几何网络中。
–通过Validation命令对选中的要素进行有效性检验。
新建一个边网络要素类后,在要素集中将自动产生一个连接点要素类,用于辅助维护网络连通,即数字化一条边网络要素后,在边的两端自动产生连接点要素。
在连接规则对话框中首先选择需要定义规则的网络要素类(或子类),然后确定可以和该要素类(或子类)连接的要素类(或子类)。
对边要素来说,需要定义:
–可以和该类型边连接的其他类型边以及连接点类型;
–可以和该类型边连接的连接点类型以及数量(边可