1序
![](http://upload-images.jianshu.io/upload_images/4991652-aa5e4b4bcd9a3c36.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
1963年,加拿大测量学家罗杰·汤姆林森(Roger Tomlinson)首先提出了GIS这一术语,并建成世界上第一个GIS(加拿大地理信息系统CGIS),用于自然资源的管理和规划。汤姆林森提倡使用计算机进行空间分析的先见之明以及他在建立CGIS过程中的领导角色,为他赢得了“GIS之父”的光荣称号。
到如今,GIS经历了50多年的发展历程,这个期间计算机也有了革命性的变化,CPU、显卡、存储的革新促使一大堆GIS软件的诞生,如:ArcGIS、GoogleEarth、SuperMap、LocaSpace等 不同的GIS产品和平台对数据的支持也各有不同,在此期间逐渐形成了一些规范化的标准,有了更多的通用格式,这里就简单介绍一下。
以下整理主要来自于网络,如果错误以及不当之处请及时指出,会第一时间处理。
1.1什么是GIS
地理信息系统(Geographic Information System或 Geo-Information system,GIS)有时又称为“地学信息系统”。它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统
简单来说GIS就是一堆坐标相关的数据的组织和渲染展示。
2常见GIS数据格式
2.0 GIS基本数据元素
•一切都从地球(Globe)说起
•用Globe来模拟一个地球
•用图层(Layer)来抽象表达地物的集合
–图层是某一类地物的集合,例如道路图层,河流图层,房屋图层。
•用要素(Feature)来表达地物,例如一个公交站用一个点标注来表示
•用符号(style)来标识地物分类
要素:
•GSOFeature代表一个要素(地物)
•每个Feature都包含一个Geometry对象
•可以是点、线、面、模型等对象
要素的本身:是地理坐标(经度、纬度、高度),与属性(颜色、样式、描述、体积、长度、面积等)的综合体。
具体体现形式可以是
txt
excel
csv
json
xml
sql字段
kml、shpfile、gpx等
看一个展现形式:
线:
![](http://upload-images.jianshu.io/upload_images/4991652-7b75b02ad2f6fc63.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-2e01422478d69d36.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-2a7e1435922ecfc5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-c749b876e31383b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-90730c589d75dfbd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/416/format/webp)
样式:
•符号样式类
•每一个Geometry对象都有一个GSOStyle,来设置对象的表现方式,例如,点的图标,字体。线面的宽度、颜色。三维模型的颜色等等。
feature(元素)符号化(可视化)的详情,参考:
【https://blog.csdn.net/baidu_39476236/article/details/80045970】
【https://www.jianshu.com/p/e7d3080894de】
2.1矢量数据格式
2.1.1 ShapeFile
参考地址:【http://www.cppblog.com/alantop/archive/2008/08/14/58880.html】
Shapefile文件是美国环境系统研究所(ESRI)所研制的GIS文件系统格式文件,是工业标准的矢量数据文件。 Shapefile将空间特征表中的非拓扑几何对象和属性信息存储在数据集中,特征表中的几何对象存为以坐标点集表示的图形文件—SHP文件,Shapefile文件并不含拓扑(Topological)数据结构。一个Shape文件包括三个文件:一个主文件(*.shp),一个索引文件(*.shx),和一个dBASE(*.dbf)表。主文件是一个直接存取,变长度记录的文件,其中每个记录描述构成一个地理特征(Feature)的所有vertices坐标值。在索引文件中,每条记录包含对应主文件记录距离主文件头开始的偏移量,dBASE表包含SHP文件中每一个Feature的特征属性,表中几何记录和属性数据之间的一一对应关系是基于记录数目的ID。在dBASE文件中的属性记录必须和主文件中的记录顺序是相同的。图形数据和属性数据通过索引号建立一一对应的关系。
Shapefile中坐标文件(.shp)由固定长度的文件头和接着的变长度空间数据记录组成。文件头由100字节的说明信息组成的(附表 1),主要说明文件的长度、Shape类型、整个Shape图层的范围等等,这些信息构成了空间数据的元数据。在导入空间数据时首先要读入文件头获取Shape文件的基本信息,并以此信息为基础建立相应的元数据表。而变长度空间数据记录是由固定长度的记录头和变长度记录内容组成,其记录结构基本类似,每条记录都有记录头和记录内容组成(空间坐标对)。记录头的内容包括记录号(Record Number)和坐标记录长度(Content Length)两个记录项,Shapefile文件中的记录号都是从1开始的,坐标记录长度是按16位字来衡量的。记录内容包括目标的几何类型(ShapeType)和具体的坐标记录(X,Y),记录内容因要素几何类型的不同,其具体的内容和格式都有所不同。对于具体的记录主要包括空Shape记录,点记录,线记录和多边形记录,具体的记录结构如附表 2所示。
属性文件(.dbf)用于记录属性信息。它是一个标准的DBF文件,也是由头文件和实体信息两部分构成。其中文件头部分的长度是不定长的,它主要对DBF文件作了一些总体说明(附表 3),其中最主要的是对这个DBF文件的记录项的信息进行了详细的描述(附表 4),比如对每个记录项的名称,数据类型,长度等信息都有具体的说明。属性文件的实体信息部分就是一条条属性记录,每条记录都是由若干个记录项构成,因此只要依次循环读取每条记录就可以了。
索引文件(.shx)主要包含坐标文件的索引信息,文件中每个记录包含对应的坐标文件记录距离坐标文件的文件头的偏移量。通过索引文件可以很方便地在坐标文件中定位到指定目标地坐标信息。索引文件也是由文件头和实体信息两部分构成的,其中文件头部分是一个长度固定(100 bytes)的记录段,其内容与坐标文件的文件头基本一致。它的实体信息以记录为基本单位,每一条记录包括偏移量(Offset)和记录段长度(Content Length)两个记录项。附表 5给出了具体的描述。
个人理解:shp作为GIS当中十分常用的一种格式,有必要了解一下它的一些特性:
1.shp文件只能存储点、线、面中的一种类型,要么里面存储的全是点,要不全是线、要么全是面,不存在混合存在的状态
2.shp可以设置很多字段属性,比如一个管线文件,你可以定义管径、颜色、埋深、归属、修建时间等等。。。
3.shp可以设置不同的投影信息,投影是很多人比较头疼的问题经常搞不明白是怎么回事,经常出现拿两个不同投影,不同坐标系统的数据相互叠加发现不能叠加成功,而任何一个数据都没有错误,这方面的问题可以参考【地理坐标系与投影坐标系的区别】
2.1.2 KML/KMZ
-参考百度百科
KML 是由开放地理空间联盟(Open Geospatial Consortium, Inc.,简称 OGC)维护的国际标准。
KML,是标记语言(Keyhole Markup Language)的缩写,最初由Keyhole公司开发,是一种基于XML 语法与格式的、用于描述和保存地理信息(如点、线、图像、多边形和模型等)的编码规范,可以被 Google Earth 和 Google Maps 识别并显示。Google Earth 和 Google Maps 处理 KML 文件的方式与网页浏览器处理 HTML 和 XML 文件的方式类似。像 HTML 一样,KML 使用包含名称、属性的标签(tag)来确定显示方式。因此,您可将 GoogleEarth和 Google Maps 视为 KML文件浏览器。2008年4月微软的OOXML成为国际标准后,Google公司宣布放弃对KML的控制权,由开放地理信息联盟(OGC)接管KML语言,并将“Google Earth”及“Google Maps”中使用的KML语言变成为一个国际标准。
KMZ文件是压缩过的KML文件。由于 KMZ 是压缩包,因此,它不仅能包含 KML文本,也能包含其他类型的文件。如果您的地标描述中链接了本地图片等其他文件,建议您在保存地标时,保存类型选 KMZ 而不选 KML,Google Earth 会把您链接的图片等文件复制一份夹 KMZ 压缩包中。这样,您就可以将包含丰富信息的地标文件发给朋友,一起分享了。
个人理解:KML作为GIS当中十分常用的一种格式,有必要了解一下它的一些特性:
1.kml是xml文本,本身没有什么特殊性可言
2.支持点、线、面等要素,并可以设置属性信息。
3.支持文件夹结构,可以通过内建文件夹来管理大量的数据
下图是LocaSpaceViewer加载kml的效果图
![](http://upload-images.jianshu.io/upload_images/4991652-70d4989e41b9e24e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
2.1.3 DXF/DWG
有时客户需要提供dxf的文件格式,不知道dxf文件与dwg文件有什么区别各有什么特点?
拿着自己的dxf文件不知道该怎么打开?更不知道如何在GIS当中使用?
dxf和dwg的区别这里引用一篇文章里的内容来做介绍【http://www.civilcn.com/autocad/cadaz/1342667542163919.html】
dwg文件:*.dwg是AutoCAD的图形文件,是二维或三维图形档案。其与dxf文件是可以互相转化的。
dxf文件:*.dxf是Autodesk公司开发的用于AutoCAD与其它软件之间进行CAD数据交换的CAD数据文件格式。DXF是一种开放的矢量数据格式,可以分为两类:ASCII格式和二进制格式;ASCII具有可读性好,但占有空间较大;二进制格式占有空间小、读取速度快。由于Autocad现在是最流行的cad系统,DXF也被广泛使用,成为事实上的标准。绝大多数CAD系统都能读入或输出DXF文件。 DXF文件可以用记事本直接打开,编辑相应的图元数据.换句话说,如果你对DXF文件格式有足够了解的话,甚至可以在记事本里直接画图。DWG的来绘图更直观(DXF图纸中线条的相交处都会有个小圆),而用于数控加工的图纸则必须是DXF文件(操机者必须把DWG转换成DXF后才可加工)如快走丝。dxf是工业标准格式的一种。所以这也是它们用途的区别。
autocad是一个非常优秀的绘图软件,已经融入到大学的课堂里,同时工业制造和很多设计行业都使用cad进行图纸的绘制,范围的广泛性就不做说明了。
dxf和投影的关系
对于文件本身的介绍上述应该就够了,这里补充一点dxf和投影的一些关系,即dxf在gis当中的使用
参考内容【AutoCAD DXF 图形的批量无损投影转换方法】
原理:在CAD当中任何图形均由点、线、面图元组成,如CAD的直线、射线、多义线、Spline曲线、多边形、面域、填充面等,由线性组成的图元在DXF文件记录中表现为以点或线的拐点、或曲线的控制点、拟合点坐标记录形式[2],读取、处理这些图元坐标数据无需特别处理,只要读取坐标数据转换即可。
常规:因此很多和规划以及地图相关的CAD文件,CAD的图框上大多相关的地理和投影坐标信息,一般在左下角会有投影坐标信息,比如北京1954坐标,图框的格网线附近还会有相应的分带,带号信息,找到这些信息以后,就可以进行投影定义了。对于投影的定义,推荐使用.prj文件。如何确定prj文件当中所需的投影信息,如何确定EPSG号,等更多关于CAD当中配置prj文件的详情参考【使用LocaSpaceViewer编辑规划用的CAD文件,配置CAD文件投影信息】
如果以上信息都没有,那就只能是硬加载然后进行平移操作了。这个过程当中如果最终结果和gis数据无法套和或者差距甚远,大多是转换过程当中出了错误。
2.1.4 GPX
参考【http://www.51bike.com/thread-73964-1-1.html】【http://blog.csdn.net/gdp12315_gu/article/details/51823486】
![](http://upload-images.jianshu.io/upload_images/4991652-c7750232926f3a77.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/945/format/webp)
GPX是比较标准的GPS信息交互文件,当然其他公司还有自己的格式。GPX采用XML语言,所以显得稍微有点臃肿,压缩后就很小了。
GPX, 或称 GPS exchange 格式, 是一种用于存储坐标数据的 XML 文件格式。它可以储存在一条路上的路点,轨迹,路线,且易于处理和转换到其他格式。OpenStreetMap 使用的所有 GPS 数据要转换为 GPX 格式才能上传。
GPX包含 带有正确时间戳的轨迹点。创建GPX文件,使用有效的schema. 如果包括编码标签,可以是’UTF-8’, 而不能是’utf8’。
2.1.5 lgd/ldl
对于lgd文件,很多人可能会比较陌生,很多人可能用了,但也并不知其所以然,这里也稍加解释。
lgd文件和ldl文件是配套的,是一个矢量数据存储交换格式。
数据格式发明者:苏州中科图新网络科技有限公司
文件特性:
a.支持点、线、面、圆形、矩形、椭圆、军标、水面、粒子特效等矢量数据。
b.二进制流文件,体积小,压缩比高,可适用于pc、移动端等,在pc和移动端做数据交互。
c.有自己的内置索引文件,查询、检索效率极高。且可用于服务器数据发布(和LocaServer配套使用)
文件缺点:不支持文件夹结构。
汇总:上述文件格式各有各的优势,这么多的矢量数据格式基本都是可以相互转换的。
2.2 影像数据格式
关于影像数据的一些说明
2.2.1 tif
标签图像文件格式(Tagged Image File Format,简写为TIFF) 是一种主要用来存储包括照片和艺术图在内的图像的文件格式。它最初由 Aldus公司与微软公司一起为PostScript打印开发。
TIFF与JPEG和PNG一起成为流行的高位彩色图像格式。TIFF格式在业界得到了广泛的支持,如Adobe公司的Photoshop、The GIMP Team的GIMP、Ulead PhotoImpact和Paint Shop Pro等图像处理应用、QuarkXPress和Adobe InDesign这样的桌面印刷和页面排版应用,扫描、传真、文字处理、光学字符识别和其它一些应用等都支持这种格式。从Aldus获得了PageMaker印刷应用程序的Adobe公司现在控制着TIFF规范。
tif可以有8位,24位等深度,一般真彩色是24位,而地形数据只有一个高度值,采用8位。
目前很多卫星影像数据的存储格式都是tif。包括目前流行的倾斜摄影生成的正射影像一般也以tif格式存储。
2.2.2 img
参考【http://d.wanfangdata.com.cn/Periodical/kjf201224062】【百度百科】
IMG文件格式是一种可存储多种类型数据、应用广泛的图像数据格式.IMG文件采用HFA结构组织数据,HFA是一种树状结构,各种数据(图像教据、统计数据、投影信息、地理数据等)占据“树”的各个节点.本文详细介绍了Img文件格式的结构,Img存储信息的重要特点是分块存储,并且提供了对Img文件读取的方法,此方法读取效率高,可以根据需要分块读取,只读取需要的块信息,大大的提高了读取速度.
IMG是一种文件压缩格式(archive format),主要是为了创建软盘的镜像文件(disk image),它可以用来压缩整个软盘(通常指软软盘,Floppy Disk或Diskette)或整片光盘的内容,使用".IMG"这个扩展名的文件就是利用这种文件格式来创建的。
提示:一般spot卫星的影像是img格式
2.2.3 lrp
lrp格式,影像、地形数据存储格式。很多使用过LocaSpaceViewer的人,应该已经见识过他的好处了。
数据格式发明者:苏州中科图新网络科技有限公司
文件特性:
a.支持地形、影像。
b.二进制流文件,根据不同的数据类型使用不同的压缩算法,体积小。
c.自带分级(LOD)有自己的内置索引文件,查询、检索效率极高。且可用于服务器数据发布(和LocaServer配套使用)
2.3 地形数据格式
2.3.1 tif
同影像
2.3.2 img
同影像
2.3.3 lrp
同影像
2.3.4 grd
.grd是纯文本的Arc/Info Grid数据的交换文件.
对于存储地形的grd文件可以使用 LocaSpaceViewer、GlobalMapper、或者在arc/info中使用asciigrid命令可以把它转成grid,用grid模块或arcview显示
这里使用LocaSpaceViewer的提取高程功能生成一个grd文件如下:
![](http://upload-images.jianshu.io/upload_images/4991652-db80f6374fb19dbc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/944/format/webp)
1.DSAA是Surface的标准
2.8 11代表横向(纬度方向)有8个点,纵向(经度方向)有11个点
3.102.6605598899 102.7420948899代表最小经度,最大经度
4.25.0562111272 25.1499849210代表最小纬度和最大纬度
5.1891.8906134325 2239.4623230170代表范围内的最小高程值和最大高程值
6.横向(纬度方向)上的第一列所有点值,一共8个点
7.以此类推。。。
2.3.5 .dem
参考:【http://www.360doc.com/content/14/0316/23/7669533_361161590.shtml】
*.dem有两种格式,NSDTF和USGS。
SGS-DEM(USGS是美国地质调查局(U.S.GeologicalSurvey)的英文缩写,是一种公开格式的DEM数据格式标准,使用范围较广格式的。
NSDTF-DEM是中华人民共和国国家标准地球空间数据交换格式,是属于格网数据交换格式,一般的GIS软件都不支持这种格式。
这里介绍如何使用LocaSpaceViewer打开NSDTF-DEM格式的grd数据
![](http://upload-images.jianshu.io/upload_images/4991652-106fe84d5fed0ff9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/492/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-c9140a45e6d311a7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/662/format/webp)
如果我们将上面的NSDTF格式的头文件改为Grid的头文件格式,其中高程值不变,就完全可以在LocaSpaceViewer中查看这个*.dem。(最好将后缀名改为*.grd。改了头文件之后,该文件已经变成grid文件)。这样通过修改这个*dem的头文件就可以直接将它转换为grd文件。
2.4 倾斜摄影数据:
--------------一次内部分享的记录。
![](http://upload-images.jianshu.io/upload_images/4991652-e29cfe6f9c3575d9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/843/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-9130c28d68f2a98d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/846/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-7edf41fb2ee1f0f8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/850/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-049cad8fd0fdede4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/847/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-3e33f387352f4015.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/846/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-86d0026b0d95772a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/843/format/webp)
![](http://upload-images.jianshu.io/upload_images/4991652-0f2483e7bd57bd97.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/842/format/webp)
关于地形数据的一些说明:
数据精度
数据级别
3.ArcGis相关数据格式
ArcGIS、超图、SkyLine等作为GIS里面的巨头,也都形成了很多自己的数据格式,部分开放规则,部分不开放。
有关coverage(aux、rrd、adf、dat、nit、dir)的数据格式说明,可以参考:coverage的理解
未完待续...(后续会继续增加:.dem,.adf,.idr,.sid,.ecw,.ers,hdr,.gft,.mif,.vec等等)