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/ ...
随机推荐
- Django项目导入Eclipse运行调试
受不了没有调试的感觉. 前提是Eclipse插件已经安装完成并且可以成功运行例子.参考:http://blog.csdn.net/jerome_s/article/details/46340079 1 ...
- 【一天一道LeetCode】#12 Integer to Roman
一天一道LeetCode系列 (一)题目 Given an integer, convert it to a roman numeral. Input is guaranteed to be with ...
- AES涉及的有限域乘法及字节填充方法
非常值得参考的是官方文档,它详细介绍了AES及其实验过程.博文AES加密算法的C++实现就是基于该文档的介绍及实现,是难得的一篇好文,故在本文最后会附上该文,以作备份. 还有很值得推荐的就是AES的 ...
- ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分Dialog)
===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...
- SDWebimage的原理和使用机制
对于ASIHttp请求和AFNetworking请求都有关于图片缓存机制的使用,但是相对于专注运用在图片使用的SDWebimage来说,又有不一样的使用效果,最主要的体现在缓存数据的转换. SDWeb ...
- LeetCode(44)- Isomorphic Strings
题目: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the c ...
- 关于ARC的介绍和ARC与MRC混编解决
1. ARC & MRC 混合开发 在项目开发中,遇到使用MRC开发的第三方库怎么办? 例如:ASI 1> 尝试使用Xcode的转换工具(失败率比较高) 2> 在编译选项中,为MR ...
- Cloud Carousel
<div class="carousel1" id="carousel1" > <a href="#"><im ...
- Python 3 中的json模块使用
1. 概述 JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式. Python标准库中的json模块提供了JSON数据的处理功能. Python中一种非常常 ...
- 如何安装Pycharm官方统计代码行插件
最近一直想统计Pycharm的总计代码行数,找到了官方的统计行数插件,发现效果还不错. 官方代码统计插件指导: https://plugins.jetbrains.com/plugin/4509-st ...