GIS五花八门的数据格式

技术文章3年前 (2021-05-13)4344

初学者往往会被格式五花八门的 GIS 数据文件,弄得一头雾水,每个软件(ArcGIS、SuperMap、MapGIS等等)也都喜欢自己整一套数据格式,更想让自己开发的数据结构成为标准,这些厂商为了达到商业目的各自为阵,给我们这些学习和使用者带来了很多麻烦,增加了学习成本,数据互操作困难,这个软件编辑的数据,那个软件打不开。

有意思的是这种格式间的壁垒,却让有心之人嗅到了商机,从而很多格式转换工具被开发出来,比如著名的 FME(Feature Manipulate Engine),支持100多种不同 GIS 空间数据格式之间的转换,自然正版价格不便宜。

透过现象看本质,数据模型决定数据结构,数据格式又是根据数据结构设计的。就矢量数据模型来说,需要描述的无非是几何实体(点、线、面)、空间关系、空间索引、空间参考、一般属性等内容,所以无论是什么数据格式的文件,基本都是在和上面这些信息打交道,有的格式可能注重于读写效率、有的可能没有保存拓扑关系、有的可能注重数据压缩。

栅格数据是将空间分割成有规律的网格,每一个网格称为一个单元(像素),并在各单元上赋予相应的属性值来表示实体的一种数据形式,它的数据结构较于矢量数据更加简单了。各种数据格式的差异主要体现在压缩方式、读写效率、元数据等方面。


下面就着重介绍一下几种常见的格式:

1.矢量数据[1]

矢量数据格式,如文章开头的导图所示,种类繁多,这里只介绍几种常见、常用的格式,这几个格式中大部分都和 GIS 第一大厂 ESRI 脱不开关系。

1.1.Shapefile

shapefile 可能是大多学 GIS 接触最多也是接触最早的数据格式之一,它是ESRI 提出的一种矢量数据格式,也是最被广泛使用的矢量数据格式。目前,它已经是地理信息软件界开放标准格式,也是一种重要的交换格式,能够在ESRI与其他公司的产品之间进行数据互操作,如果一个 GIS 软件不支持 shp,肯定会贻笑大方。需要注意的是 shapefile 不能存储拓扑关系

一个 shapefile 文件至少有三个文件:

  • *.shp:主文件用于存储地理要素的几何图形

  • *.shx:索引文件用于存储图形要素和属性信息索引

  • *.dbf:dBase 表文件用于存储要素的一般属性信息

除此之外,还有一些可选文件:

  • *.prj:存储空间参考信息

  • *.sbn/sbx:存储几何实体的空间索引信息

  • *.fbn/fbx:存储只读集合实体的空间索引信息

每个 shapefile 文件只能存储一种几何类型(或点、或线、或面)的数据,在 ArcCatalog 中浏览 shp 数据文件夹可以看到,文件名左侧图标清晰的标识出该 shp 所存几何实体的文件类型。

1.2. File GeoDatabase

Esri 创建的一种采用标准关系数据库技术来表现地理信息的数据模型。其具有结构和性能上的优势:快速的性能、多样的数据关系、兼容存储栅格数据、优化空间索引以及数据压缩等。下图可以看到,在ArcGIS 中创建数据库时有三种选项:

File Geodatabse 不同于 Personal Geodatabase,File GeoDatabase 在存储能力、平台支持、读写速度、压缩率等方面全面强于 Personal Geodatabse, 具体差异不在此赘述。Database Connection 连接的就是ArcSDE GeoDatabase,它通过 ArcSDE 使用大型数据库 Oracle,SqlServer,DB2 等存储空间数据,可以实现并发操作,不过需要单独的用户许可。

1.3. Coverage

Coverage 也是 ESRI 提出的一种地理空间数据格式,现在已经很少使用,但毕竟是大厂出品,这里还是说一下。它没有扩展名,只是一组文件夹。Coverage使用要素类来存储点、弧、多边形或注释。tic是地理控制点,有助于确定覆盖范围。

1.4. E00

后缀为E00的文件是Esri的一种通用交换格式文件。这种文件通过明码的方式表达了几乎所有的矢量格式以及属性信息,广泛应用于与其他软件之间进行数据交换。

1.5. GeoJSON

GeoJSON 是一种基于JSON的开源标准格式,其和 JSON 一样数据结构简单,可读性强,前后端兼容性好,也特别适合在 Web 中使用。GeoJSON 的点数据结构说明如下,详情请点击「阅读原文」了解。

由于 GeoJSON 结构简单、使用灵活,许多轻量的前端地图展现都采用 GeoJSON,比如前端图表组件 EChart 中地图显示就是采用 GeoJSON 作为数据源。

在 web 地图中,常常有这样的需求:点击或搜索某块区域时,让这块区域能够高亮显示,来改善用户体验,这里的高亮效果就可以通过 GeoJSON 来处理,后面会写几篇文章介绍如何制作、使用GeoJSON。

1.6. KML/KMZ

KML是标记语言(Keyhole Markup Language)的缩写,最初由 Google 旗下 Keyhole 公司开发,是一种基于XML 语法与格式的、用于描述和保存地理信息(如点、线、图像、多边形和模型等)的编码规范。KMZ 是一个经过ZIP格式压缩过的 KML 文件,其文件自身可以包含图标,影像和模型等。KMZ/KML 可以被 Google Earth、Google Map 和 ArcGIS Earth 等识别并显示。

你可以通过 ArcGIS ToolBox 中「Layer to KML」工具将 *.lyr 文件转为 kml 格式,然后打开google earth 添加查看:

1.7. AutoCAD(.dxf)

DXF 是 AutoCAD 与其它软件之间进行 CAD 数据交换的开放矢量数据文件格式,可以分为两类:ASCII 格式和二进制格式;ASCII 具有可读性好的特点,但占用的空间较大;二进制格式则占用的空间小、读取速度快。由于 AutoCAD 现在是最流行的 CAD 系统,DXF 也被广泛使用,成为事实上的标准。绝大多数 CAD 系统都能读入或输出 DXF 文件。

8. MapGIS

MapGIS 现在大多使用于国土、市政相关领域,应用范围也挺广,毕竟是国产软件还是要支持一下的。

其数据文件主要包括工程文件文件和工程内各工作区的文件。工作区是MAPGIS提出的一个概念,简单地说,工作区就是一个数据池,存放实体的空间数据、拓扑数据、图形数据和属性数据,每个工作区都对应于一个MAPGIS数据文件。数据文件主要有以下几种:

  • 工作区(.MPJ文件):工程文件,存放工程中所有的工作区文件

  • 点工作区(.WT文件):点(PNT)

  • 线工作区(.WL文件):线(LIN)、结点(NOD)

  • 区工作区(.WP文件):线(LIN)、结点(NOD)、区(REG)

  • 网工作区(.WN文件:线(LIN)、结点(NOD)、网(NET)

  • 表工作区(.WB文件):无空间实体,仅有表格记录

2.栅格数据

2.1. GeoTIFF (.tiff)

GeoTIFF 已经成为 GIS 和卫星遥感应用的行业图像标准文件。几乎所有的GIS和图像处理软件包都具有 GeoTIFF 兼容性。GeoTIFF 包含的其他文件有:

  • TFW:渲染栅格地理位置所需的文件

  • XML:可选,元数据文件

  • AUX:输出辅助文件,存储投影等信息

2.2. Erdas Imagine(.img)

Erdas Imagine是美国 ERDAS 公司开发的遥感图像处理系统(ERDAS IMAGINE)使用的遥感影像格式。这种格式广泛应用于遥感数据处理,因为它提供了一个用于整合来自多源传感器数据的框架。该框架支持地理参考、地理编码元数据、多波段、不同数据类型的数据的存储,同时该格式基于瓦片的方式进行数据的存取,这样加快了数据显示和重采样的速度。

2.3. ENVI (.hdr)

ENVI 使用的是通用栅格数据格式,包含一个简单的二进制文件和一个相关的ASCII(文本)的头文件。这也保证了单个 ENVI 栅格文件没有大小上限。ENVI 栅格文件必须包含这两个文件,其中头文件的后缀名为 .hdr,数据文件的后缀随意,甚至可以不带后缀名。这两个文件是通过文件名来关联,即数据文件和头文件名称一致。

2.4. HDF (Hierarchical Data Format)

HDF 格式是一种不必转换格式就可以在不同平台间传递的数据格式,由美国国家高级计算应用中心(NCSA)研制,已经应用于 MODIS、MISR 等数据中。当前流行的版本是 HDF5。HDF 有6种主要数据类型:栅格图像数据、调色板(图像色谱)、科学数据集、HDF 注释(信息说明数据)、Vdata(数据表)、Vgroup(相关数据组合)。HDF 采用分层式数据管理结构,并可以直接从嵌套的文件中获得各种信息。因此,打开一个HDF文件,在读取图像数据的同时可以方便的查取到其地理定位、轨道参数、图像属性、图像噪声等各种信息参数。

到这里常用的 GIS 常用的数据格式介绍完了,这里给了矢量数据更多的篇幅,因为矢量数据结构更加复杂,在 GIS 中使用场景也更丰富灵活;而栅格数据就数据本身来说结构相对简单许多,但其背后却是一门遥感学科,牵扯到的关于影像的一系列知识,可绝不是作者随便说几句就能掰扯清楚的,咱们来日方长~~~


相关文章

MapGIS中如何输入分数和带有上下标格式的注释

MapGIS中如何输入分数和带有上下标格式的注释

1.MAPGIS中输入上下标格式字符串。输入立方米: M# 3 //上标输入二氧化碳: CO#-2 //下标输入上下标混合: CO#-2# 3#=SO#-4 //上下标混合使用 2.MAPG...

关于ArcGIS Engine符号库的讨论

关于ArcGIS Engine符号库的讨论

符号化是GIS应用开发中重要的功能或者是处理,由于程序中每次调入一个图层的图层的符号都是随机的,动态变化的,所以不利于图层的美观。还有一点就是符号有增加电子地图可读性的功能。符号的来源有以下几种:1、...

在ArcGIS 10.3标注中竖排文字

在ArcGIS 10.3标注中竖排文字

ArcGIS 10.3中文字默认“从左至右”排列,而实际的标注比如“XX路、XX街”有些文字是竖直排列的。接着就涉及到“标注样式”的问题。如果是整体竖排,点击图层的Properties...(属性),...

ArcGIS实用制图技巧——如何制作“光照”效果的水体多边形

ArcGIS实用制图技巧——如何制作“光照”效果的水体多边形

通过对地图中的水体要素添加光照效果,能够使地图更具真实感。这里,就来介绍一下如何使用ArcMap来实现为水体表面添加光照效果。         &nb...

ArcGIS地图通用线符号的制作

ArcGIS地图通用线符号的制作

ArcGIS地图中有一些线性数据,如交通网络,应用的领域非常广泛,其符号表达已逐渐被大众所认识和熟知。这类线符号的制作,虽没达到约定俗成的程度,但已具有一定的通用性,值得制图员去学习和掌握。所以本文将...

ArcGIS地质填充符号的制作

ArcGIS地质填充符号的制作

地质制图中,面符号的制作复杂度最高,存在规则和不规则的样式,通常由底色和图案组成,表示岩性和年代,是极具代表性的符号种类。ArcGIS提供了3种实现地质面符号的方法:基于矢量、基于图片和基于制图表达技...