1. 开篇

刚开始接触 GIS 时,老师说过这样一句话“做我们这一行的,数据就是命,没有数据,什么都干不了”。现在我们需要做一个 webgis 的小项目,体会到了这句阐述的精髓。数据再 GIS 行业的地位举足轻重,而且它的格式多样,为了对数据格式进行详细了解,查阅了相关资料并且做了如下的总结。

本篇文章主要对以下数据格式进行总结:

(1)shp

(2)Coverage

(3)Raster

(4)Geodatabase

2. 数据格式

2.1 shp 文件

参考地址:【http://www.cppblog.com/alantop/archive/2008/08/14/58880.html

Shapefile 文件是美国环境系研究所所研制的 GIS 文件系统格式文件,是工业标准的矢量数据文件。Shapefile 将空间特征表中的 非拓扑几何对象属性信息 存储在数据集中,特征表中的几何对象存为以坐标点集表示的图形文件 -- SHP 文件。Shapefile 文件并不包含拓扑 (Topological)数据结构。

一个 Shape 文件包括三个文件:一个主文件(.shp),一个索引文件(.shx),和一个 dBASE(*.dbf)表。主文件是一个直接存取,可变长度记录的文件,每个记录描述一个地理特征(Feature)的所有 vertices 坐标值。在索引文件中,每条记录包含对应主文件记录距离主文件头开始的偏移量。dBASE 表包含 SHP 文件中每一个 Feature 的特征属性,表中几何记录和属性数据之间的对应关系是基于记录数目的ID。在 dBASE 文件中的属性记录和主文件中的记录顺序是相同的。

Shapefile 中的坐标文件(.shp)由 固定长度的文件头 和接着的 变长度空间数据记录 组成。文件头有 100 字节的说明信息组成,主要说明文件的长度、Shape 类型、整个 Shape 图层的范围等等,这些信息构成了空间数据的 元数据

在导入空间数据时首先要读入文件头获取 Shape 文件的基本信息,并以此信息为基础建立相应的元数据表。而变长度空间数据记录是由 固定长度的记录头 和 变长度记录 组成。其记录结构基本类似,每条记录都由记录头和记录内容组成。

记录头的内容包括 记录号 和 坐标记录长度 两个记录项。Shapefile 文件中的记录号都是从 1 开始的,坐标记录长度是按 16 位字节来衡量的。

记录内容包括目标的几何类型(ShapeType)和具体的坐标记录(X,Y),记录内容因要素几何类型的不同,其具体的内容和格式都有所不同。

属性文件(.dbf)用于记录属性信息。它是一个标准的 DBF 文件,也是由 头文件 和 实体信息 两部分构成。其中文件头部分的长度是不定长的,它对 DBF 文件做了一些总体说明,其中最主要的是对这个 DBF 文件的记录项的信息进行了详细的描述。

比如对每个记录项的名称,数据类型,长度等信息都有具体的说明。属性文件的实体信息部分就是一条条属性记录,每条记录由若干个记录项构成,因此只要一次循环每条记录就可以了。

索引文件(.shx)主要包含坐标文件的索引信息,文件中每个记录包含对应的坐标文件记录记录坐标文件的文件头的偏移量。通过索引文件可以很方便的在坐标文件中定位到指定的目标地理坐标信息。

其中文件头部分是一个长度固定的(100 bytes)的记录段,其内容与坐标文件的文件头基本一致。它的实体信息以记录为基本单位,每一条记录包括偏移量(Offset)和记录段长度(Content Length)两个记录项目。

注意:

  1. shp 文件只能存储点、线、面中的一种类型,要么全是点,要不全是线,不然就全是面。
  2. shp 可以设置很多字段属性
  3. shp 可以设置不同的投影信息。有可能两个数据格式没有错,但是因为存在不同的坐标系统而不能叠加。

2.2 Coverage 格式

参考:【https://blog.csdn.net/zhongjiekangping/article/details/6112308

Coverage 是一种拓扑数据结构,数据结构复杂,属性存储在 Info 表中。目前 ArcGIS 仍然有一些分析操作只能基于这种数据格式进行操作。

Coverage 是 ArcInfo workstation 的原生数据格式。之所以称之为“基于文件夹的存储”,是因为在 windows 资源管理器下,它的空间信息和属性信息是分别存放在两个文件夹里的。空间信息以二进制文件的形式存储在独立的文件夹中,文件夹的名称即为该 coverage 名称,属性信息和拓扑数据则以 INFO 表的形式存储。

Coverage 将空间信息和属性信息结合起来,并存储要素间的拓扑关系。然而,通过 ArcCatalog,我们能将存储空间信息的文件夹中的 coverage 二进制文件与存储属性信息的 INFO 文件夹中的 INFO 表联合表达为 coverage ,当使用 ArcCatalog 对 coverage 进行创建、移动、删除或重命名等操作时,ArcCatalog 将自动维护他们的完整性,将 coverage和 INFO文件夹中的内容同步改变。所以对 coverage进行操作,一定要在 ArcCatalog 中进行。

2.3 Raster 格式

参考:【http://desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/raster-and-images/what-is-raster-data.htm

最简形式的栅格由按行和列组织的像元矩阵组成,其中的每个像元都包含一个信息值(例如温度)。栅格可以是数字航空像片、卫星影像、数字图片或甚至扫描的地图。

具体的东西就不再展开,详细信息点击这里

2.4 Geodatabase 数据库

参考:【http://www.cnblogs.com/flylong0204/p/3654337.html

地理数据库是用于保存数据集集合的“容器”。有以下三种类型:

  1. 文件地理数据库 - 在文件系统中以文件夹的形式存储。每个数据集都以文件形式保存,该文件大小最多可扩展至 1 TB.建议使用文件地理数据库而不是个人地理数据库。
  2. 个人地理数据库 - 所有的数据集都存储在 Microsoft Access 数据文件内,该数据文件的大小为 3 GB。
  3. ArcSDE 地理数据库 - 使用 Oracle、Microsoft SQL Server、IBM DB2、IBM Informix 或 PostgresSQL 存储于关系数据库中。这些多用户地理数据库需要使用 ArcSDE,在大小和用户方面没有限制。

ARCGIS 数据格式的更多相关文章

  1. ArcGIS数据格式详解

  2. 2013年arcgis培训

    关于开展“GIS空间分析及应用案例解析”培训班的通知   各企事业单位: 随着信息技术的发展,地理信息系统(简称GIS)产业异军突起,在国民经济各个行业中的应用日益广泛,物联网.智慧地球.3S技术等等 ...

  3. ArcGIS几种数据格式

    ArcGIS几种数据格式 ArcInfo常用以下格式的数据:shp.Coverage..Raster CAD和Geodatabase.各种数据的组织形式不一样,其中shp.Coverage.Raste ...

  4. ArcGIS几种数据格式2

    各种数据的组织形式不一样,其中shp.Coverage.Raster.CAD为文件类型,Geodatabase为空间数据库.Workstaion常用Coverage数据格式.现在ESRI公司推荐使用G ...

  5. ArcGIS 10 影像、栅格数据格式批量转换

    转自原文 ArcGIS 10 影像.栅格数据格式批量转换 在做三维场景的时候,经常会涉及多种不同格式DEM数据或者影像的转换,如ASCII.GRID.IMG.TIFF等等,遇到大数据量时,我们就需要批 ...

  6. ArcGIS Javascript地图上添加json数据格式的点

    /** * 显示地图点. * json的格式[{"name":"name1","x":"x1","y" ...

  7. ArcGIS Engine开发之地图基本操作(3)

    地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...

  8. Arcgis, ArcEngine, Arcgis Server使用开发汇总 索引

    ArcGIS系列软件license及安装: Arcgis SDE10.1 和 Arcgis server10.1的授权文件license tnt_esri.dat Arcgis8.1安装license ...

  9. 关于ArcGIS的Web 3D GIS问答

    以下问答基于ArcGIS 10.4版本,涉及的软件有 ArcGIS for Server ArcGIS for Desktop ArcGIS Pro 1.3 Esri Drone2Map 1 支持B/ ...

随机推荐

  1. PR 审批界面增加显示项方法

    PR 审批界面增加显示项 解决方法 Step 1:       进入审批界面: Step 2:       在上图中,点击左下角'About this Page'查看数据源 点击上图中'Expand ...

  2. RHEL6安装python包tornado

    RHEL6安装python包tornado tornado是使用Python开发的全栈式(full-stack)Web框架和异步网络库,最早由Friendfeed开发.通过使用非阻塞IO,Tornad ...

  3. 使用HTML5抓取 Audio & Video

    原文地址: http://www.html5rocks.com/en/tutorials/getusermedia/intro/ 本地化的文章: http://www.html5rocks.com/z ...

  4. Spring AOP (一)

    一.AOP 是什么? AOP 是Aspect Oriented Programaing 的简称,意思是面向切面编程,AOP的应用场合是受限的,一般只适合于那些具有横切逻辑的应用场合:如性能检测.访问控 ...

  5. 【Python】模拟radius coa报文

    Radius协议中网关设备NAS是client,实现radius协议的服务为服务端(例如freeradius),这种情况下radius server并不能主动给NAS发送信息.在 rfc3576 Dy ...

  6. 第一个Polymer应用 - (4)收尾工作

    原文链接: Step 4: Finishing touches翻译日期: 2014年7月8日翻译人员: 铁锚在本节中,会在卡片上添加收藏按钮,并可以通过切换选项卡(tabs)连接到不同的 <po ...

  7. android-async-http框架源码分析

    async-http使用地址 android-async-http仓库:git clone https://github.com/loopj/android-async-http 源码分析 我们在做网 ...

  8. android 自定义Viewpager实现无限循环

    ; i < imageUrls.length; i ++){ ADInfo info = new ADInfo(); info.setUrl(imageUrls[i]); info.setCon ...

  9. 初探linux子系统集之led子系统(一)

    就像学编程第一个范例helloworld一样,学嵌入式,单片机.fpga之类的第一个范例就是点亮一盏灯.对于庞大的linux系统,当然可以编写一个字符设备驱动来实现我们需要的led灯,也可以直接利用g ...

  10. javascript中通过元素id和name直接取得元素

    我们知道一些第三方的js库对如何快速选取html中的元素做了一些简化,貌似十分高深莫测,其实也不然.而且js本身自带了对于特殊元素的简便选取的方法,下面就为大家简单介绍下. 在html中,一般最直接的 ...