2.4 空间数据的格式
不同的GIS软件在记录空间数据时,往往会采用不同的数据格式。即使同一种软件,在其不同的发展阶段或基于不同的目的,也可能会有不同的空间数据格式。
认识和了解空间数据格式,有助于空间数据的采集、处理和分析。
2.4.1 与ArcGIS相关的几种主要格式
2.4.1.1 Shapefile格式
Shapefile:ArcViewGIS软件的格式。属于简单要素类,用点、线、多边形存储要素的形状,却不能存储拓扑关系,具有简单、快速显示的优点。
它采用基于文件的方式来存储空间数据的不同信息。一个Shapefile数据至少包括*.shp、*.shx、*.dbf三个必须的文件。其中*.shp是主文件,用于存储要素的几何数据;*.shx是索引文件,用于存储要素的几何索引;*.dbf是属性表文件,用于存储要素的属性信息。
投影文件*.prj;元数据文件*.shp.xml;锁定文件*.lock。此外,还可能会有*.sbn和*.sbx、*.fbn和*.fbx、*.ain和*.aih、*.atx、*.ixs、*.mxs、*.cpg等文件。
组成Shapefile 的每个文件均不能超过2GB。

图2.44 Shapefile格式的数据在ArcCatalog与Windows资源管理器中的体现
2.4.1.2 Coverage格式
Coverage:Arc/Info的一种原生矢量数据格式。它是一个集合,可以包含一个或多个要素类,每个要素类存储一组点、线(弧)、多边形或注记(文本)。
Coverage采用“基于文件夹”的方式来存储,空间信息和属性信息分别存放在两个文件夹里。

图2.45 Coverage数据在ArcCatalog和Windows资源管理器中的体现
不同于Shapefile的非拓扑性,Coverage是一种拓扑数据格式,它支持连通性、区域定义和邻接性等三种基本的拓扑关系。但Coverage数据也存在很大的不足,它的要素聚集在类似点、线、面的集合中,不具有特殊的要素行为。
从ArcGIS8.3版本开始,屏蔽了对Coverage的编辑功能。需编辑时应转换为其他可编辑的数据格式。
2.4.1.3 Geodatabase格式
Geodatabase为地理数据库,是ArcGIS的原生数据格式。它利用基于工业标准建立的关系型数据库技术,可以高效安全地管理地理数据。可以认为,Geodatabase是一个用于存放大量不同类型地理数据集的“容器”或“集合”,它按照层次性的数据对象来组织地理数据,不仅可以存储类似Shapefile的简单要素类,还可以存储类似Coverage的要素集;不仅可以存储矢量数据,还可以存储栅格数据,并且支持一系列的行为规则。Geodatabase由系统表格及用户数据组成,用户数据可以存储下列形式的数据集:(1)要素类(Featureclass);(2)要素数据集(Featuredataset);(3)镶嵌数据集(Mosaicdataset);(4)栅格目录(Rastercatalog);(5)栅格数据集(Rasterdataset);(6)逻辑示意图数据集(Schematicdataset);(7)表格(Table)(非空间数据);(8)工具箱(Toolboxes)。
要素数据集中不仅可以包括要素类,还可以包括以下数据:(1)附件(Attachments);(2)要素链接注记(Feature-linkedannotation);(3)几何网络(Geometricnetworks);(4)网络数据集(Networkdatasets);(5)宗地结构(Parcelfabrics);(6)关系类(Relationshipclasses);(7)地形(Terrains);(8)拓扑(Topologies)。
对于常用的要素类(featureclass)来说,它既可以直接存放于Geodatabase之中,又可以存放于Geodatabase的要素数据集之中。例如,你可以将铁路、公路等作为要素类放在Geodatabase内,也将以将铁路、公路、水运、航空等要素类整合为一个“交通”数据集存放在Geodatabase中。有时为了某些特殊目的,如拓扑查错、建立几何网络等,则必须将要素放入数据集中。
目前ArcGIS中有以下三大类Geodatabase(图2.46):

图2.46 多种格式的数据在ArcCatalog与Windows资源管理器中的体现
(1)Personal Geodatabase(PGDB):Microsoft Access的mdb文件中。容量限制为2GB
(2)File Geodatabase(FGDB):新型Geodatabase,可跨平台。采用独立的文件夹来存储其所有的数据。存储容量可达到TB级。
(3)ArcSDE Geodatabase(ArcSDE GDB):是一种基于Oracle、Microsoft SQL Server、IBM Informix、IBM DB2、PostgreSQL等多种DBMS存储模型的关系数据库。需要ArcSDE的支持才能使用,能够存储近乎“无限”的海量数据(仅受DBMS的限制),可在多个操作平台上使用,支持多用户同时读写。ArcSDE GDB支持版本(versioning)和长事务(long transaction)处理。
2.4.1.4 E00格式
ArcInfo Workstation的一种交换文件,它以“e00”为文件的扩展名,主要用于ArcInfo软件内部或者与其他软件进行数据的交换。由于E00文件是ASCII明码格式(文本)的,因此早期许多其他GIS软件都把E00文件作为与ESRI系列软件的数据接口。
E00格式文件是ESRI早期最完整最复杂的文件之一。标准的E00文件记录了空间要素的空间坐标、所有的属性信息以及空间拓扑关系信息。E00数据文件包含两大组分:ARC和INFO。
2.4.1.5 Grid格式
ESRI栅格数据的原生数据格式。Grid通常包括整形和浮点型两种类型的栅格。整形栅格多用于表示离散数据,浮点型栅格多用于表示连续数据。整型栅格的属性存储在它的值属性表(VAT)中,栅格中的每个唯一值对应于属性表中的一条记录,存储特定值(VALUE)和它所表示的栅格像元数量(COUNT)。

图2.47 整形栅格数据及属性表
2.4.2 其他GIS软件中的主要格式
除ArcGIS外,其他GIS软件,如MapInfo、SuperMap、MapGIS、GoogleEarth、AutoCAD等,都有自己的空间数据格式。在空间分析中,往往需要使用多源的数据,不同来源的数据之间也经常需要进行格式转换,因此,认识不同软件的数据格式是很有必要的。
2.4.2.1 MapInfo的数据格式
1.TAB格式
2.MIF(MID)格式
2.4.2.2 SuperMap的数据格式
SuperMap提供了多种空间数据存储格式,不同的数据存储方式由不同的空间数据引擎负责维护。这些引擎包括:SDB、DGN、DWG、MDB、SDX和SDXPlus等。
2.4.2.3 MapGIS的数据格式
MapGIS 6的数据文件主要有以下几种:(1)工程文件(.MPJ文件);(2)点文件(.WT);(3)线文件(.WL);(4)区(面)文件(.WP);(5)网文件(.WN);(6)表文件(.WB),无空间实体,仅有表格记录。
MapGIS的K9版本中,地图编辑器的工程文件扩展名为*.MAP,数据库工程文件扩展名为*.HDF。K9版本里的单文件不能单独保存在盘里,必须存在数据库(*.HDF)里。同时K9版本也支持6.7以前版本的WP、WL、WT等文件。
2.4.2.4 Google Earth的数据格式
谷歌地球(GoogleEarth,GE)有两种类型的地标文件,一种是KML文件,一种是KMZ文件。KMZ是经过ZIP格式压缩过的KML文件,不仅能包含KML文本,也能包含其他类型的文件,如影像等,是GoogleEarth默认的地标存储与交换格式。
2.4.2.5 AutoCAD的数据格式
AutoCAD的DXF和DWG。
DXF:AutoCAD的图形交换文件,用于AutoCAD与其它软件之间进行CAD数据交换。
DWG:AutoCAD的图形文件,是AutoCAD的标准格式,文件结构与DXF基本相同。采用二进制格式的文件形式,一方面可以节省文件占用的空间,另一方面也可以提高读写文件的效率。
2.4.3 空间数据格式的转换
1.利用GIS软件中的数据格式转换工具。一般的GIS平台软件,都提供了数据格式转换工具,可以利用这些转换工具实现数据格式转换。
2.编写程序实现数据格式转化。编程读取源数据文件中的图形数据和属性数据,按照目标文件数据格式写入目标文件,实现数据格式转换。
3.利用第三方商业工具软件进行数据格式转换。如FME、Map2Shp/Shp2Map等。
不管采用以上哪种方式,转换中都有可能造成包括空间位置、属性数据、拓扑关系、元数据等方面的信息丢失。因此在实际使用中,一方面要尽量避免不必要的数据转换,另一方面需要在数据转换后,对数据进行及时检查,了解信息丢失情况,做出合理的评估及补救方案。