注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

naigeer的知识库

不断学习,用知识武装头脑,用头脑创造未来!

 
 
 

日志

 
 

[转载]Geodatabase讲义(一)  

2009-04-14 10:45:06|  分类: ArcGIS开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1Geodatabase

11 Geodatabase概述

www.liphy.cn

Geodatabase 概述

ArcGIS操作基于GIS文件格式和存储于geodatabases中的地理信息。Geodatabase是ArcGIS的本地数据结构,是用于编辑和数据管理的基本数据格式。

Geodatabase 能将空间数据存储在文件、MDB文件或者大型DBMS中。以上三种存储方式的区别在于可存储数据量的不同以及可支持的并发用户数量不同,能够实现从小数据量、单用户的文件数据库到大数据量、多用户并发编辑的企业级DBMS的不同层次的应用。

理解geodatabase

简介:geodatabase是大量不同类型的地理数据集的集合。在这一章节可以学习geodatabase的基础,这些概念能够为学习和有效使用geodatabase打下坚实的基础。

Geodatabase定义:geodatabase是大量不同类型的地理数据集的集合,这些地理数据集可以存储在普通的文件中、微软的Access数据库中或者多用户的关系数据库(比如Oracle, Microsoft SQL Server, 或者IBM DB2)。

Geodatabase中主要数据集:数据集是geodatabase中的一个重要概念。它是ArcGIS用来组织和运用地理信息的基本机制。Geodatabase包含三种主要的数据集类型:要素类、栅格数据集和表。

在创建Geodatabase时,首先生成不同的Dataset类型,然后添加或者扩展Geodatabase基本要素的能力,例如添加拓扑、网络、子类以实现GIS行为建模、维护数据完整性以及建立空间关系。

Geodatabase的存储

Geodatabase的存储不仅包括简单的空间坐标和属性数据的表格,还包括这些地理数据集的模式和规则。Geodatabase的三种基础数据集(要素类,属性表和栅格数据集)和其他的geodatabase元素都以表格的形式存储。在地理数据集中空间表示或者以矢量要素的形式存储,或者以栅格数据存储。几何对象和传统的属性字段一起存储在表的列中。

Geodatabase将地理要素以表格的形式存储,每行记录代表一个要素。下表是多边形要素,在Shape列为每个要素存储了多边形类型,值Polygon用于描述Shape列的几何坐标和几何形状,表示在每一行定义了一个polygon。


    Geodatabase的一个关键策略就是利用RDBMS来管理从简单要素集到海量数据集,多用户并发操作的GIS数据集。二维表为几何数据集提供了基本的存储机制。SQL语言具有强大的查询和操作表的功能,geodatabase正是基于想利用这些功能而设计的。

    空间数据在下列数据库中支持Sql访问空间信息:

可带或不带oracle spatial 和oracle locator的oracle

IBM DB2

IBM Informix

内在的SQL ApI 是基于 标准Sql Spatial和OGL 的简易特征SQL规范的,这一规范对空间向量类型以标准Sql 扩展。

用高级数据类型扩展要素类、栅格数据集和属性表

    大量的geodatabase元素用来扩展简单的表,要素类、栅格数据集,包括添加丰富的行为,数据完整性、数据管理等能力。Geodatabasse的模式包括定义、完整性规则和行为。

具体包括coordinate systems, coordinate resolution, feature classes, topologies, networks, raster catalogs, relationships, domains等等。模式信息存储在DBMS的geodatabase元数据表的集合中,这些表定义了数据的完整性和行为。

Geodatabase元素

不管ArcGIS用户使用何种操作系统,他们都操作三种的基本数据集类型。即一系列的要素类(如ESRI的shapefiles),或者大量的属性表(如dBase 文件、 Microsoft Access 表、Excel电子表格、DBMSs等等),还有大量的影像和栅格数据集。

 

原则上,所有的geodatabase都包含相同类型的内容,设计GIS数据库的第一步就是生成不同类型的数据集。

实际上,用户需要扩展他们的数据模型以支持特定的能力,geodatabase有大量数据元素和数据集类型用来扩展基本的数据集类型。

Geodatabase的事务处理和版本管理

ArcSDE geodatabases支持版本和长事务处理

Geodatabase支持丰富的数据类型,如annotation, topology, networks, terrains, and address locators等等,这些类型都可以应用于海量、高性能的数据库。Geodatabase同时还支持长事务框架,以支持多种数据管理工作流和操作。

大多数情况下需要多用户并发编辑

以Check out 和 check in方式更新

多个复制品之间由共享只供改变更新的多个同步拷贝可以是DBMS 类型的任何数字(譬如Oracle 和SQL 服务器) 并且不需要被连接。

创建、管理和使用历史归档数据

12 表基础

表基础

Geodatabase中的属性存储在二维表中,建立在以下一系列简单但根本的关系数据概念:

表包含行。

表中所有的行含有相同的列。

每一列具有一个数据类型,如integer, decimal number, character, and date。

一系列的相关函数和操作符(如SQL)可以用于操作表和表的数据元素。

 

和在传统的数据库中的应用一样,表和关系在ARCGIS中同样扮演着重要的角色。表中的行可以用于存储地理对象的所有属性,包括在Shape列存储和管理要素的几何图形。

下表解释了两个表如何通过使用一个公共的字段使它们的记录相互关联。

 

Geodatabase支持的属性数据类型

在geodatabase中支持很多数据类型存储和管理属性列,包括很多数值类型、文本类型、日期类型、二进制大对象类型和全球唯一标识码(GUIDS)。

在Geodatabase的数据表支持的数据类型包括:

Number:包括short integers, long integers , single-precision floating-point numbers (通常称为单精度浮点类型)和 double-precision floating-point numbers (通常称为双精度浮点类型)。

Text:任何一定长度的文字数字式字符的集合。

Date:存储日期和时间数据。

BLOBs:二进制大对象用于存储和管理二进制信息,如符号和CAD几何图形。

Global Identifiers:GlobalID和GUID数据类型存储用波形括号括起来的由36个字符组成的registry style字符串。

XML列类型也可以通过程序接口支持 ,XML列可以包含任何格式化XML内容(如元数据XML)。

扩展表

在geodatabase中表为要素类、栅格数据集和传统的属性表提供了详细的信息描述,用户也可以实现对表的关系操作。

在geodatabase中有以下一些可选的功能用于扩展表的能力,它们包括以下几种:

 

13 要素类基础

要素类基础

要素类是具有相同几何类型和属性的要素的集合。在geodatabase中常用的要素类有四种:点、线、多边形和注记。

在下面的图示中,点、线、多边形和注记用于表示同一地区的四种数据集。(1)入孔井盖用点表示(2)下水道用线表示(3)地块用多边形表示(4)街道名称用注记表示。

 

在这个图示中,也许已经注意到一些潜在的对高级要素属性建模的要求。比如,下水道管线和入孔井盖组成了一个雨水管线网络。同时,相邻的地块共享了公共的边界,大多数地块用户通过使用topology来保持在数据集中共享要素的完整性。

Geodatabase中要素类的类型

矢量要素是最常用的表达地理数据的数据格式,它适合于表达离散的有明显边界且稳定存在的地理对象。如井、街道、河流、州和地块。一个要素是一个简单对象,它存储其几何图形,它可以是一个点、线或者面,作为这条记录中的一个属性或者字段。在ArcGIS中,要素类是具有相同空间参考和属性设置的相同要素的集合。例如,用一个线要素来表达道路中心线。

注意:当在geodatabase中创建一个要素类时,需要设置要素类型以定义要素类的类型(点、线、多边形等等)。

通常,要素类是点、线或多边形的集合,具体有7种要素类型。

1、点-用来表达那些很小且不能用线或多边形来表示的地理要素(如GPS观测站)。

2、线—用来表达那些长条形的,非常狭窄也不能用多边形表示的地理要素,如街道中心线和溪流。线也可以表达那些有长度却没有面积的要素,如轮廓线和边界。

3、多边形-是一个封闭的图形,用来表示均质要素的形状和位置,如州、县、土地、土壤类型或者土地利用类型区等。

4、注记-地图文本,包括文本如何组织的属性;例如,除了每个注记的文本字符串。还包括其他属性,如放置文字形状,字体,字体大小和其他显示属性。注记也可以是feature-linked,也可以包含子类。

  

5、维度—一种特殊的注记,它显示具体的长度或距离;例如,为了显示一个建筑物或一块地的一条边的长度,或者两个不同要素之间的距离。维度经常用于GIS设计、工程和工具应用中。

   

 

6、多点—由不止一个点组成的要素。Multipoints通常用于管理大量点集合的数组,如激光雷达点串,它们可以包含几十亿个点。使用一个单独的列表示这样的点几何是不可行的。聚类这些多点行可以使geodatabase处理大块点集合。

   

 

7、Multipatches—一个3D几何图形用于表达要素的外部表面或者外形,这个要素占用一个离散的二维面积或者三维空间的体积。 Multipatches由平面的3D环和三角形组成。Multipatches可以被用于表达任何简单到复杂的对象,如球体和立方体到表面和建筑物。

 

要素的几何特征系统

要素类不仅包含每一要素的几何形状,还包含描述要素的属性。一个要素可以用点、线或多边形三种要素类型来定义,但是其他的地理属性也可以定义,如要素是单部件或多部件,可以有3D定点,可以有线性测量(称为m-值),可以曲线。这一部分对这些功能作了简单介绍。

单部件和多部件的线,多边形

Geodatadase中线和多边形要素可以有单部件或多部件组成。如,一个州可以包含多部件(夏威夷岛),但是通常认为它是一个单独的要素。

 

顶点、线段、高程值和测量值

要素几何图形主要是由坐标顶点组成的。线和多边形要素中的线段跨多个顶点。线段可以是直线边线或者是参数定义的曲线。要素中的顶点也可以包含表达高程值的Z值和表达沿着线要素的度量值的M值。

 

线段类型

线段和多边形可以由两个关键元素定义(1)定义线段或多边形的几何形状的一系列有序定点(2)连接每对定点之间的线段类型。因此,每一条线段或一个多边形可以认为是由一系列可以连接的有序定点形成的几何形状。还有一种表达线或多边形的方法是:每一条线段或一个多边形是一系列有序的可以连接的线段,每一线段可以是以下类型中的一种:直线段、圆弧、椭圆弧或Bezier曲线。

 

默认的线段类型是直线段,但是,当需要定义curves或parametric shapes时,可以有三种其他线段类型选择:圆弧、椭圆弧或Bezier曲线。这些几何形状常常用于表达建筑环境,如地块边界和车道线。

用Z值作垂直量度

要素的几何坐标可以包括x、y或x、y、z。Z值大多数情况下表示高程值,但它们也可以用来表示其他的属性,如降雨量等或空气质量值。

 

用m值作线性量度

线性要素的每一个顶点也可以指定一个M值或线性量度。一些GIS应用利用线性量度方法沿着线性要素内插距离,如道路、溪流和管线。可以给点、多点、折线或多边形的每一个点指定一个M值或线性量度。线性度量方法的一个典型例子就是公路或运河沿线的里程标志或码头。

 

含线性量度的顶点的坐标可以是(x,y,m)或者(x,y,z,m)。

支持这些数据类型通常称为线性参照(Linear Referencing)。沿着这些量度系统的发生的地理定位事件的过程称为动态分割(Dynamic Segmentation)。

在ArcGIS的线性参照的实现中,术语route引用任何线性要素,如一个城市街道、高速公路、河流或者管道,它具有唯一一个标识符和沿着每个线性要素的一个通用度量系统。用一个通用度量系统的routes集合建立在一个线性要素类上,如下所示:

 

要素容差

在各类ArcGIS操作中,使用一些关键的地理属性来处理和管理要素坐标。这些属性在每个要素类或者要素数据集创建的时候被定义。

X,y tolerance

当创建一个新的要素类时,将被提示设置x,y tolerance。x,y tolerance被用于在聚类操作中设置坐标之间的最小距离,如拓扑验证、缓冲区生成和多边形叠加等编辑操作。

要素处理操作是被x,y tolerance影响的,它决定了在这些操作中所有要素坐标的最小距离。通过定义,它也定义了在聚类操作中一个坐标在x或y方向(或者两者)可以移动的距离。

 

x,y tolerance是及其小的距离。它用于在聚类操作中解决坐标之间不精确的相交位置。当使用几何操作处理要素类时,如拓扑验证、多边形叠加、缓冲分析和裁剪等,坐标之间的x距离和y距离落在x、y tolerance内时,则被认为是一致的点。因此,聚类坐标被移动到一个公共的位置。通常,较低精确的坐标被移动到较高精度坐标的位置,或者一个新的位置在聚类的坐标之间作为一个加权平均值距离被计算。在这种情况下,加权平均值距离是基于聚类坐标的精度级别的。

聚类处理通过移动整个地图内的落入x、y tolerance的坐标来进行。ArcGIS使用这个运算法则发现、清除和管理要素之间的共享几何图形。这意味着这些坐标被认为是一致的。这是许多GIS操作和概念的根本。

在这些操作中一个坐标可以移动到新位置的最大距离是√2倍XYTolerance。

默认的x、y tolerance是0.001 meters(地理坐标系统)。例如,如果是在state plane feet坐标系统中,默认的x、y tolerance是0.0003281 feet (0.003937 inches)。如果是latitude-longitude坐标系统,默认的x、y tolerance是0.000000008982995 degrees。

x、y tolerance的默认值是10倍的默认x,y resolution,这是在大多数情况下推荐使用的。

注意:x、y tolerance不是打算用于生成几何形状。相反,它是用于在拓扑操作中集成线和边界的。这意味着集成彼此落入非常小距离的坐标。

有用的提示:

一般地,使用10倍x,y resolution的一个x,y tolerance;

为了保持较小的移动,保持x,y tolerance很小。但是,一个太小的x,y tolerance可能不能准确地集成一致性边界的线元素和坐标;

相反,如果x,y tolerance太大,要素坐标可能相互覆盖。这可能降低要素边界表达的准确性;

x,y tolerance应该永远不要接近data capture resolution;

在拓扑中,可以设置每个要素类的coordinate rank。

X,y resolution

要素类或者要素数据集的x,y resolution是用于存储x、y坐标值的数值精度。精度对准确的要素表达、分析和制图是很重要的。

x,y resolution定义了小数点后可以保留的小数位数,或者存储要素坐标的有效数。坐标值在ArcGIS以integers被精确存储和操作。

默认的要素类的x,y resolution在ArcGIS9.2中是0.0001 meter(地理坐标)。如果要素是被存储在State Plane feet中,默认的x,y resolution是0.0003281 feet (0.003937 inches)。如果是latitude-longitude坐标系统,则默认的x,y resolution是0.000000001 degrees。

以下是一个关于x,y resolution的概念视图的图表。

 

如果必要,可以不用管默认的x,y resolution值,设置要素类或者要素数据集的另一个x,y resolution值。设置一个较小的x,y resolution值,相比一个较大的x,y resolution值,可能潜在地增加了数据存储和处理的时间。

设置X,y tolerance和X,y resolution

当在ArcCatalog中建立一个新的要素类,将被询问设置新要素类的x,y tolerance。数据集坐标系统的默认x,y tolerance值如下面板所示:

 

在大多数情况下,默认的x,y tolerance是最好的选择。

在这个面板上,也可以选择接受默认的x,y resolution,它是0.0001 meters或者与坐标系统单位相等的量。默认的x,y resolution在大多数情况下,是合适的,除非需要比测量和土木工程更好的精度存储坐标值。

为了设置自己的x,y resolution,取消选择上面面板中的Accept default resolution复选框,到下一个面板中设置需要的x,y resolution值。

Z-resolution, z-tolerance和垂直坐标系统

Z-coordinates主要用于包含高程的GIS要素中。但是,Z-coordinates也可以被用于其他垂直度量,如空气污染观察数据、温度和其他度量值。

当建立一个新要素类时,需要包含Z-coordinates,可以选择Coordinates include z values复选框:

 

当建立了一个含Z-coordinates的要素类,将随意设置一个垂直坐标系统(VCS):

 

指定一个垂直坐标系统的主要目标是数据集文档化,在VCS中定义的z-units将被用于ArcGIS的3D处理操作。

大多数z-units值以x,y 坐标相同单位来度量海平面以上或者以下的高度,但是,还有一些其他的z度量,它可能需要一个不同的z-tolerance和z-resolution值。

Z-tolerance和 z-resolution

z-tolerance定义了处理过程中聚类z-values。默认的z-tolerance是0.001 meters或者定义的VCS的单位的相等的量。

如果坐标是一致的,它们的z-values落入了z-tolerance,它们的z-values将被设置为相同。

当建立一个新的要素类时,可以接受默认的z-tolerance的值,或者选择设置自己的值。

 

在大多数情况下,默认的z-tolerance能很好工作,除非z-coordinate units与x,y coordinates

有很大的不同。

在与上面相同的一个面板上,可以选择接受默认的z-resolution值。如果选择修改x,y resolution、z-resolution或者两者,取消选择Accept default resolution and domain extent复选框,将出现一个面板,在其中可以看到默认的z-resolution和z-values的最大和最小值。

 

对于z-tolerance,在大多数情况下,接受默认的z-resolution和z-range将能很好地工作。

Z-resolution定义了z-values的resolution。默认的z-resolution是默认的z-tolerance1/10倍。

线性参照的M-resolution和m-tolerance

当建立含m-measures的要素类,可以设置m-measures值的两个属性:

在ArcCatalog的New Feature Class对话框上,通过选择Coordinates include M values复选框指定含m-measures的要素类。

 

在接下来的面板中,可以设置m-tolerance或者接受默认值。m-tolerance定义了处理过程中m-values的tolerance。它默认值是0.001 units。如果坐标的x和y一致,它们的m-values落入m-tolerance,那么它们的m-values将被设置为相等。

 

大多数情况下,接受默认的m-tolerance能满足工作。但是,如果m-measure值相当小,需要保证m-measure不聚类,可以指定自己的m-tolerance。

在同一个面板中也可以选择修改默认的m-resolution:取消选择Accept default resolution and domain extent复选框。如下所示:

在接下来的面板中可以设置一些其他的m-coordinate的属性:

 

在此,M-resolution定义了自己m-values的resolution。它的默认值是0.0001 units。

通过设置m-values最小值(Min)和最大值(Max)来设置m-values的范围

geodatabase中的要素类存储

在geodatabase中,每个要素类在一个单独的表中被管理。每行中的Shape列用于存储每个要素的geometry 或shape。

 

在要素类表中:

每个要素类是一个表;

单独的要素被存储为行;

Shpelie存储每个要素的geometry (point, line, polygon);

Object ID列存储每个要素的唯一标识符。

在ArcSDE geodatabases中,关系数据库存储每个要素类为一个表。有三种DBMSs(Oracle, DB2, 和Informix)提供了SQL访问geodatabase中的要素的geometry。

扩展要素类

Geodatabase中的每个要素类是具有相同几何形状、相同属性和相同空间参考的地理要素的集合。要素类可以根据需要被扩展。以下是一些用于要素类扩展的方法:

 

14 栅格基础

栅格基础

栅格数据集是采用规则的格网来表示地理要素的,每个规则格网单元用于表达这个位置的一些属性。

 

栅格数据集通常用于表示和管理影像、数字高程模型和大量其他的现象。通常栅格作为一个表达点、线和多边形要素的方法而使用。在下面的例子中,可以看到一系列多边形被表达为一个栅格数据集。

 

栅格被感兴趣是基于两个原因:一,它们可以被用于表达所有的地理信息(要素、影像和表面),二,它们具有一套丰富的分析处理运算符。因此,栅格作为一种通用的在GIS中存储影像的数据类型,也被用于表达用于基于栅格模型和分析的要素。

Geodatabase中的栅格

    一个栅格就是按行和列分布的一组格网单元,是被经常用于GIS的一种数据集。用户通常使用大量栅格文件,但是许多用户需要在一个DBMS中同时管理地理信息和栅格数据。Geodatabase提供了一个非常有效的方法在file和ArcSDE geodatabase中管理栅格数据。

栅格数据集管理策略

两种栅格数据集管理策略是重要的:

Raster provisioning。

Rasters in the geodatabase。

栅格数据的地理属性

通常有四个地理属性为栅格数据集存储。这些属性在地理参考和帮助解释栅格数据文件如何结构化方面很有用的。

栅格数据集用一个特殊的方法定义地理位置。一旦格网单元或者象素可以被精确引用,然后获得一个栅格中所有格网单元值的一个顺序列表是容易的。这意味着每个栅格数据集通常有一个header record存储它的地理属性,数据的主要部分是格网单元值的一个顺序列表。

一个栅格的地理属性通常包括:

坐标系统;

参考坐标系统或者x,y位置(通常指左上角或者左下角);

一个格网的大小;

行和列的数量。

这个信息可以被用于找到任何具体的格网单元的位置。获得这个信息后,栅格数据结构容易地列出所有的格网单元值,从左上角开始,沿着每一行,然后到最右下角。如下图所示:

 

Geodatabase中的raster block table

栅格数据通常在大小上比要素要大很多,需要一个side table存储。例如,一个正常的正射影像有6700行*7600列。

为了取得这些大栅格数据集的高性能,一个geodatabase栅格被分割为较小的片(称为blocks),通常为128行*128列或者256行*256列。这些较小的blocks然后存储在side table中。如下图所示:

 

 

扩展栅格数据

栅格数据集被日益广泛地用于GIS应用。Geodatabase可以管理栅格为:一个单独的数据集、数据记得逻辑集合和表中的图片属性。

大量geodatabase功能允许用户扩展如何管理这些栅格信息,如下表所示:

  评论这张
 
阅读(354)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017