EESSRRII矢矢量量数数据据格格式式简简介介 ArcGIS 可以无缝地支持所有 ESRI 的数据格式:coverage、shapefile、geodatabase、grid
以及ArcIMS提供的数据,也支持三种最常用的 CAD文件格式(DXF、DWG 和 DGN)和众多常见
的影 像格式。下面将按照 ESRI 的发展历史,简要介绍 coverage、shapefile 和 geodatabase 这
三种矢量数 Coverage Coverage 是ArcInfo workstation 的原生数据格式。之所以称之为“基于文件夹的存储”,
是因为 在 windows资源管理器下,它的空间信息和属性信息是分别存放在两个文件夹里。例如,在我
的电 脑 E:/MyTest/example 文件夹中,有 3 个coverage,它们在 windows 资源管理器下的状态
如图 1 所示, 所有信息都以文件夹的形式来存储。空间信息以二进制文件的形式存储在独立的文件夹中,文
件夹 名称即为该 coverage 名称,属性信息和拓扑数据则以 INFO表的形式存储。Coverage将空间
信息与 属性信息结合起来,并存储要素间的拓扑关系。 然而,通过 ArcCatalog,我们能将存储空间
信息的文件夹中的 coverage二进制文件与存储属性信息的 INFO 文件夹中的 INFO表联合表达
为 coverage,当使用 ArcCatalog 对 coverage 进行创建、移动、删除或重命名等操作时,
ArcCatalog 将自动维 护他们的完整性,将 coverage和 INFO文件夹中的内容同步改变。所以对 coverage进行操作
,一定 要在 ArcCatalog 中进行。 coverage 是一个非常成功的早期地理数据模型,二十多年来深受用户欢迎,很多早期的数据
都 是 coverage 格式的。ESRI 不公开 coverage 的数据格式,但是提供了 coverage 格式转换
的一个交换 文件(interchange file,即 E00),并公开数据格式,这样就方便了 coverage 数据与其他
格式的数据 之间的转换。 Coverage 是一个集合,它可以包含一个或多个要素类。图 3 中简要介绍了一下常见的 coverage 类型及其要素类。 Shapefile Shapefile是ArcView GIS 3.x 的原生数据格式,属于简单要素类,用点、线、多边形存储要素 的形状,却不能存储拓扑关系,具有简单、快速显示的优点。一个 shapefile是由若干个文件组成的, 空间信息和属性信息分离存储,所以称之为“基于文件”。例如,在我的电脑 E:/MyTest/example文 件夹中,有一个名为 actc 的 shapefile多边形要素类,如图 4所示。 然而在 windows 资源管理器下,可以看见这个名为 actc 的 shapefile 是由 actc.shp、actc.shx、 actc.dbf三个文件组成。 shapefile的三个基本文件 每个 shapefile,都至少有这三个文件组成,其中: *.shp 存储的是几何要素的的空间信息,也就是 XY坐标 *.shx 存储的是有关*.shp 存储的索引信息。它记录了在*.shp 中,空间数据是如何存储的,XY 坐标的输入点在哪里,有多少 XY坐标对等信息 *.dbf 存储地理数据的属性信息的 dBase 表 这三个文件是一个 shapefile 的基本文件,shapefile还可以有其他一些文件,但所有这些文件都 与该 shapefile 同名,并且存储在同一路径下,如图 6 所示。下面简要介绍一下其他一些较为常见文 件: *.prj 如果 shapefile 定义了坐标系统,那么它的空间参考信息将会存储在*.prj 文件中 *.shp.xml 这是对 shapefile 进行元数据浏览后生成的 xml 元数据文件 *.sbn 和*.sbx 这两个存储的是 shapefile 的空间索引,它能加速空间数据的读取。这两个文件是 在对数据进行操作、浏览或连接后才产生的,也可以通过 ArcToolbox >Data Management Tools >Indexes >Add spatial Index 工具生成。 几种常见的shapefile文件 当使用ArcCatalog对shapefile进行创建、移动、删除或重命名等操作,或使用ArcMap对shapefile 进行编辑时,ArcCatalog将自动维护数据的完整性,将所有文件同步改变。所以需要使用 ArcCatalog 管理 shapefile。 虽然 Shapefile 无法存储拓扑关系,但它并不是普通用于显示的图形文件,作为地理数据,它自 身有拓扑的。比如一个多边形要素类,shapefile 会按顺时针方向为它的所有顶点排序,然后按顶点 顺序两两连接成的边线向量,在向量右侧的为多边形的内部,在向量左侧的是多边形的外部。 由于 1990 年代地理信息的迅速发展以及 ArcView GIS 3.x 软件在世界范围内的推广,shapefile 格式的数据使用非常广泛,数据来源也较多。很多软件都提供了向 shapefile 转换的 接口(eg:MapInfo、MapGIS 等)。ArcGIS 支持对 shapefile 的编辑操作,也支持 shapefile 向第三代数据模型 geodatabase的转换。 Geodatabase Geodatabase 作为 ArcGIS 的原生数据格式,体现了很多第三代地理数据模型的优势。随着 IT 技术的发展,普通的事务型数据的管理模式,早已从传统的基于文件的管理转向利用基于工业标准 建立的关系型数据库进行管理,这种基于数据库的管理方式的优点是不言而喻的。那么带有空间信 息的地理数据是否也可以利用这种非常成熟的数据库技术进行管理呢?于是 ESRI 推出了 geodatabase数据模型,利用数据库技术高效安全地管理我们的地理数据。 Geodatabase可以分为两种,一种是基于 Microsoft Access的personal geodatabase,另一种是基 于 oracle、SQL Server、Informix 或者DB2 的 enterprise geodatabase,由于它需要中间件 ArcSDE 进 行连接,所以 enterprise geodatabase又称为 ArcSDE geodatabase。由于 Microsoft Access自身容量的 限制,personal geodatabase的容量上限为 2GB,这显然不能满足企业级的海量地理数据的存储需求。 于是可以将 geodatabase 扩展为 ArcSDE geodatabase,底层数据库可以使用 oracle 这样的大型关系数 据库,能够存储近乎“无限”的海量数据(仅受硬盘大小的限制)。虽然底层使用的数据库各不相 同,但是 geodatabase 给用户提供的是一个一致的操作环境。
在 geodatabase 中,不仅可以存储类似 shapefile 的简单要素类 还可以存储类 似 coverage的要素集并且支持一系列的行为规则对其空间信息和属性信息进行验证表格、关
联类、栅格、注记和尺寸都可以作为 geodatabase 对象存储。这些在perasonal geodatabase和 ArcSDE geodatabase 中都是一样的(栅格的存储有点小差异,但对用户来说
都是一样的)。