1第1章Geodatabase1、1Geodatabase概述Geodatabase概述ArcGIS操作基于GIS文件格式和存储于geodatabases中的地理信息。Geodatabase是ArcGIS的本地数据结构,是用于编辑和数据管理的基本数据格式。Geodatabase能将空间数据存储在文件、MDB文件或者大型DBMS中。以上三种存储方式的区别在于可存储数据量的不同以及可支持的并发用户数量不同,能够实现从小数据量、单用户的文件数据库到大数据量、多用户并发编辑的企业级DBMS的不同层次的应用。理解geodatabase简介:geodatabase是大量不同类型的地理数据集的集合。在这一章节可以学习geodatabase的基础,这些概念能够为学习和有效使用geodatabase打下坚实的基础。Geodatabase定义:geodatabase是大量不同类型的地理数据集的集合,这些地理数据集可以存储在普通的文件中、微软的Access数据库中或者多用户的关系数据库(比如Oracle,MicrosoftSQLServer,或者IBMDB2)。Geodatabase中主要数据集:数据集是geodatabase中的一个重要概念。它是ArcGIS用来组织和运用地理信息的基本机制。Geodatabase包含三种主要的数据集类型:要素类、栅格数据集和表。在创建Geodatabase时,首先生成不同的Dataset类型,然后添加或者扩展Geodatabase基本要素的能力,例如添加拓扑、网络、子类以实现GIS行为建模、维护数据完整性以及建立空间关系。Geodatabase的存储Geodatabase的存储不仅包括简单的空间坐标和属性数据的表格,还包括这些地理数据集的模式和规则。Geodatabase的三种基础数据集(要素类,属性表和栅格数据集)和其他的geodatabase元素都以表格的形式存储。在地理数据集中空间表示或者以矢量要素的形式存储,或者以栅格数据存储。几何对象和传统的属性字段一起存储在表的列中。Geodatabase将地理要素以表格的形式存储,每行记录代表一个要素。下表是多边形要素,在Shape列为每个要素存储了多边形类型,值Polygon用于描述Shape列的几何坐标和几何形状,表示在每一行定义了一个polygon。Geodatabase的一个关键策略就是利用RDBMS来管理从简单要素集到海量数据集,多用户并发操作的GIS数据集。二维表为几何数据集提供了基本的存储机制。SQL语言具有强大的查询和操作表的功能,geodatabase正是基于想利用这些功能而设计的。空间数据在下列数据库中支持Sql访问空间信息:可带或不带oraclespatial和oraclelocator的oracleIBMDB2IBMInformix内在的SQLApI是基于标准SqlSpatial和OGL的简易特征SQL规范的,这一规范对空间向量类型以标准Sql扩展。用高级数据类型扩展要素类、栅格数据集和属性表大量的geodatabase元素用来扩展简单的表,要素类、栅格数据集,包括添加丰富的行为,数据完整性、数据管理等能力。Geodatabasse的模式包括定义、完整性规则和行为。具体包括coordinatesystems,coordinateresolution,featureclasses,topologies,networks,rastercatalogs,relationships,domains等等。模式信息存储在DBMS的geodatabase元数据表的集合2中,这些表定义了数据的完整性和行为。Geodatabase元素不管ArcGIS用户使用何种操作系统,他们都操作三种的基本数据集类型。即一系列的要素类(如ESRI的shapefiles),或者大量的属性表(如dBase文件、MicrosoftAccess表、Excel电子表格、DBMSs等等),还有大量的影像和栅格数据集。原则上,所有的geodatabase都包含相同类型的内容,设计GIS数据库的第一步就是生成不同类型的数据集。实际上,用户需要扩展他们的数据模型以支持特定的能力,geodatabase有大量数据元素和数据集类型用来扩展基本的数据集类型。Geodatabase的事务处理和版本管理ArcSDEgeodatabases支持版本和长事务处理Geodatabase支持丰富的数据类型,如annotation,topology,networks,terrains,andaddresslocators等等,这些类型都可以应用于海量、高性能的数据库。Geodatabase同时还支持长事务框架,以支持多种数据管理工作流和操作。大多数情况下需要多用户并发编辑以Checkout和checkin方式更新多个复制品之间由共享只供改变更新的多个同步拷贝可以是DBMS类型的任何数字(譬如Oracle和SQL服务器)并且不需要被连接。创建、管理和使用历史归档数据1、2表基础表基础Geodatabase中的属性存储在二维表中,建立在以下一系列简单但根本的关系数据概念:表包含行。表中所有的行含有相同的列。每一列具有一个数据类型,如integer,decimalnumber,character,anddate。一系列的相关函数和操作符(如SQL)可以用于操作表和表的数据元素。和在传统的数据库中的应用一样,表和关系在ARCGIS中同样扮演着重要的角色。表中的行可以用于存储地理对象的所有属性,包括在Shape列存储和管理要素的几何图形。下表解释了两个表如何通过使用一个公共的字段使它们的记录相互关联。Geodatabase支持的属性数据类型在geodatabase中支持很多数据类型存储和管理属性列,包括很多数值类型、文本类型、日期类型、二进制大对象类型和全球唯一标识码(GUIDS)。在Geodatabase的数据表支持的数据类型包括:Number:包括shortintegers,longintegers,single-precisionfloating-pointnumbers(通常称为单精度浮点类型)和double-precisionfloating-pointnumbers(通常称为双精度浮点类型)。Text:任何一定长度的文字数字式字符的集合。Date:存储日期和时间数据。BLOBs:二进制大对象用于存储和管理二进制信息,如符号和CAD几何图形。GlobalIdentifiers:GlobalID和GUID数据类型存储用波形括号括起来的由36个字符组成的registrystyle字符串。3XML列类型也可以通过程序接口支持,XML列可以包含任何格式化XML内容(如元数据XML)。扩展表在geodatabase中表为要素类、栅格数据集和传统的属性表提供了详细的信息描述,用户也可以实现对表的关系操作。在geodatabase中有以下一些可选的功能用于扩展表的能力,它们包括以下几种:1、3要素类基础要素类基础要素类是具有相同几何类型和属性的要素的集合。在geodatabase中常用的要素类有四种:点、线、多边形和注记。在下面的图示中,点、线、多边形和注记用于表示同一地区的四种数据集。(1)入孔井盖用点表示(2)下水道用线表示(3)地块用多边形表示(4)街道名称用注记表示。在这个图示中,也许已经注意到一些潜在的对高级要素属性建模的要求。比如,下水道管线和入孔井盖组成了一个雨水管线网络。同时,相邻的地块共享了公共的边界,大多数地块用户通过使用topology来保持在数据集中共享要素的完整性。Geodatabase中要素类的类型矢量要素是最常用的表达地理数据的数据格式,它适合于表达离散的有明显边界且稳定存在的地理对象。如井、街道、河流、州和地块。一个要素是一个简单对象,它存储其几何图形,它可以是一个点、线或者面,作为这条记录中的一个属性或者字段。在ArcGIS中,要素类是具有相同空间参考和属性设置的相同要素的集合。例如,用一个线要素来表达道路中心线。注意:当在geodatabase中创建一个要素类时,需要设置要素类型以定义要素类的类型(点、线、多边形等等)。通常,要素类是点、线或多边形的集合,具体有7种要素类型。1、点-用来表达那些很小且不能用线或多边形来表示的地理要素(如GPS观测站)。2、线—用来表达那些长条形的,非常狭窄也不能用多边形表示的地理要素,如街道中心线和溪流。线也可以表达那些有长度却没有面积的要素,如轮廓线和边界。3、多边形-是一个封闭的图形,用来表示均质要素的形状和位置,如州、县、土地、土壤类型或者土地利用类型区等。4、注记-地图文本,包括文本如何组织的属性;例如,除了每个注记的文本字符串。还包括其他属性,如放置文字形状,字体,字体大小和其他显示属性。注记也可以是feature-linked,也可以包含子类。45、维度—一种特殊的注记,它显示具体的长度或距离;例如,为了显示一个建筑物或一块地的一条边的长度,或者两个不同要素之间的距离。维度经常用于GIS设计、工程和工具应用中。6、多点—由不止一个点组成的要素。Multipoints通常用于管理大量点集合的数组,如激光雷达点串,它们可以包含几十亿个点。使用一个单独的列表示这样的点几何是不可行的。聚类这些多点行可以使geodatabase处理大块点集合。7、Multipatches—一个3D几何图形用于表达要素的外部表面或者外形,这个要素占用一个离散的二维面积或者三维空间的体积。Multipatches由平面的3D环和三角形组成。Multipatches可以被用于表达任何简单到复杂的对象,如球体和立方体到表面和建筑物。要素的几何特征系统要素类不仅包含每一要素的几何形状,还包含描述要素的属性。一个要素可以用点、线或多边形三种要素类型来定义,但是其他的地理属性也可以定义,如要素是单部件或多部件,可以有3D定点,可以有线性测量(称为m-值),可以曲线。这一部分对这些功能作了简单介绍。单部件和多部件的线,多边形Geodatadase中线和多边形要素可以有单部件或多部件组成。如,一个州可以包含多部件(夏威夷岛),但是通常认为它是一个单独的要素。顶点、线段、高程值和测量值要素几何图形主要是由坐标顶点组成的。线和多边形要素中的线段跨多个顶点。线段可以是直线边线或者是参数定义的曲线。要素中的顶点也可以包含表达高程值的Z值和表达沿着线要素的度量值的M值。线段类型线段和多边形可以由两个关键元素定义(1)定义线段或多边形的几何形状的一系列有序定点(2)连接每对定点之间的线段类型。因此,每一条线段或一个多边形可以认为是由一系列可以连接的有序定点形成的几何形状。还有一种表达线或多边形的方法是:每一条线段或一个多边形是一系列有序的可以连接的线段,每一线段可以是以下类型中的一种:直线5段、圆弧、椭圆弧或Bezier曲线。默认的线段类型是直线段,但是,当需要定义curves或parametricshapes时,可以有三种其他线段类型选择:圆弧、椭圆弧或Bezier曲线。这些几何形状常常用于表达建筑环境,如地块边界和车道线。用Z值作垂直量度要素的几何坐标可以包括x、y或x、y、z。Z值大多数情况下表示高程值,但它们也可以用来表示其他的属性,如降雨量等或空气质量值。用m值作线性量度线性要素的每一个顶点也可以指定一个M值或线性量度。一些GIS应用利用线性量度方法沿着线性要素内插距离,如道路、溪流和管线。可以给点、多点、折线或多边形的每一个点指定一个M值或线性量度。线性度量方法的一个典型例子就是公路或运河沿线的里程标志或码头。含线性量度的顶点的坐标可以是(x,y,m)或者(x,y,z,m)。支持这些数据类型通常称为线性参照(LinearReferencing)。沿着这些量度系统的发生的地理定位事件的过程称为动态分割(DynamicSegmentation)。在ArcGIS的线性参照的实现中,术语route引用任何线性要素,如一个城市街道、高6速公路、河流或者管道,它具有唯一一个标识符和沿