ARCGIS 数据格式
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)两个记录项目。
注意:
- shp 文件只能存储点、线、面中的一种类型,要么全是点,要不全是线,不然就全是面。
- shp 可以设置很多字段属性
- 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 TB.建议使用文件地理数据库而不是个人地理数据库。
- 个人地理数据库 - 所有的数据集都存储在 Microsoft Access 数据文件内,该数据文件的大小为 3 GB。
- ArcSDE 地理数据库 - 使用 Oracle、Microsoft SQL Server、IBM DB2、IBM Informix 或 PostgresSQL 存储于关系数据库中。这些多用户地理数据库需要使用 ArcSDE,在大小和用户方面没有限制。
ARCGIS 数据格式的更多相关文章
- ArcGIS数据格式详解
- 2013年arcgis培训
关于开展“GIS空间分析及应用案例解析”培训班的通知 各企事业单位: 随着信息技术的发展,地理信息系统(简称GIS)产业异军突起,在国民经济各个行业中的应用日益广泛,物联网.智慧地球.3S技术等等 ...
- ArcGIS几种数据格式
ArcGIS几种数据格式 ArcInfo常用以下格式的数据:shp.Coverage..Raster CAD和Geodatabase.各种数据的组织形式不一样,其中shp.Coverage.Raste ...
- ArcGIS几种数据格式2
各种数据的组织形式不一样,其中shp.Coverage.Raster.CAD为文件类型,Geodatabase为空间数据库.Workstaion常用Coverage数据格式.现在ESRI公司推荐使用G ...
- ArcGIS 10 影像、栅格数据格式批量转换
转自原文 ArcGIS 10 影像.栅格数据格式批量转换 在做三维场景的时候,经常会涉及多种不同格式DEM数据或者影像的转换,如ASCII.GRID.IMG.TIFF等等,遇到大数据量时,我们就需要批 ...
- ArcGIS Javascript地图上添加json数据格式的点
/** * 显示地图点. * json的格式[{"name":"name1","x":"x1","y" ...
- ArcGIS Engine开发之地图基本操作(3)
地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...
- Arcgis, ArcEngine, Arcgis Server使用开发汇总 索引
ArcGIS系列软件license及安装: Arcgis SDE10.1 和 Arcgis server10.1的授权文件license tnt_esri.dat Arcgis8.1安装license ...
- 关于ArcGIS的Web 3D GIS问答
以下问答基于ArcGIS 10.4版本,涉及的软件有 ArcGIS for Server ArcGIS for Desktop ArcGIS Pro 1.3 Esri Drone2Map 1 支持B/ ...
随机推荐
- Cocos2D的随机数生成函数
有很多种方法生成随机数.但是只有arc4random函数生成的最接近于"真随机(truly random)"数.(而且不需要种子) 其变体函数arc4random_uniform生 ...
- AngularJS进阶(十四)AngularJS灵异代码事件
AngularJS灵异代码事件 注:请点击此处进行充电! 事情原委 router_sys.js源代码如下: 自己在html路由跳转的代码如下: 但是在实际路由过程中,却路由到了下面的状态,相应的页面中 ...
- AngularJS进阶(七)实现根据不同条件显示不同控件
AngularJS实现根据不同条件显示不同控件 由于项目需求,需要实现根据不同条件显示不同控件的功能.具体要求如下图所示: 即当选择"每单固定减"时,下方只显示"减免金额 ...
- Erlang cowboy 处理不规范的客户端
Erlang cowboy 处理不规范的客户端 Cowboy 1.0 参考 本章: Dealing with broken clients 存在许多HTTP协议的实现版本.许多广泛使用的客户端,如浏览 ...
- PS 图像调整算法——色调分离
色调分离的原理就是将R, G, B每个通道 0-255 的色调区间进行强制划分到给定的区间里去,所以色调会合并,最终的图像看起来颜色就是一块一块的. clc; clear all; close all ...
- 采购,接收数据收集SQL汇总(从订单->接收->INVOICE所有数据关联SQL)
INDEX OF QUERIES Source Document: Purchase Order: 1: po_headers_all (sql) 2: po_lines_all (sql) 3: p ...
- android最火的开源项目
原文地址:http://www.csdn.net/article/2013-05-21/2815370-Android-open-source-projects-finale 此前,CSDN移动频道推 ...
- obj-c编程08:分类和协议
篇文章里我们来聊聊如何扩展一个类的方法和实例变量,我们首先来看一下命名分类如何扩展一个类.在下面的代码中,首先定义一个类Player用来定义普通球员,如果第三方开发者发现普通球员缺少了一些方法,则可以 ...
- ubunut在系统恢复模式下无法修改root密码的分析和解决
前些日子本猫的ubuntu 14.10貌似出了点问题,想修改下root密码,但是无奈原系统有错正常情况下无法修改啊,这是逼我重装的节奏吗? 在ubuntu开机后立即按住left_shift不放,调出g ...
- 基于hashchange导航管理
想在五一放假的时候写出来,由于放假有点兴奋,心早就跑了,不废话了. 说一下基于hashchange导航管理: 浏览器的历史记录导航是用户非常常用的功能,除了点击前进后退按钮外,Window上的hist ...