An's Blog
收藏、分享 …
Toggle navigation
Home
Cesium
SuperMap
ArcGIS
MapboxGL
CentOS
GeoServer
Favorites
Archives
Tags
GDAL基础入门
2023-09-11 14:39:18
3
0
0
admin
# **一、GDAL简介** GDAL(Geospatial Data Abstraction Library)是光栅(raster)和矢量(vector)地理空间数据格式的转换库/工具,支持多种光栅或矢量地理空间数据格式的互相转换和处理。 历史上,GDAL 仅用于处理光栅地理空间数据,而 OGR 则仅用于处理矢量地理空间数据。自 GDAL 2.0开始,二者集成在一起了,一般统称为 GDAL 或 GDAL/OGR。因此,GDAL 现在具备了处理光栅和矢量地理空间数据格式的能力。  GDAL全称是Geospatial Data Abstraction Library(地理空间数据抽象库),在一个X/MIT许可协议下读写空间数据(包括栅格数据和矢量数据)的开源库,它利用抽象数据模型来表达所支持的各种文件格式,还使用一系列命令行来进行数据转换和处理。 OGR(OGR Simple Features Library)是GDAL项目的一个分支,功能与GDAL类似,只是它提供对矢量数据的读写支持。同时它实现了一个对空间参考信息进行处理的类,用来对空间数据的空间信息进行处理。 GDAL最初是由Frank Warmerdam于1998年开始开发的,在GDAL1.3.2版本之后,正式有开源空间信息基金会(OpenSourceGeospatialFoundation,简称OSGeo)下的GDAL/OGR项目委员会对其进行维护。 很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ArcGIS系列,Erdas2011、Geogle Earth和跨平台的GRASS GIS、Quantunm GIS系统等。 # **二、GDAL的特点** GDAL提供对多种栅格数据的支持,包括Arc/Info ASCII Grid(asc),GeoTiff(tiff)、Erdas Imagine Images(img),ASCII DEM(dem)等格式。 OGR提供对矢量数据格式的读写支持,包括ESRI Shapefiles、S-57、SDTS、PostGIS、Oracle Spatial、Mapinfo mid/mif和Mapinfo TAB等。 GDAL库还提供了一系列算法接口,比如矢量栅格化、栅格矢量化、图像校正算法以及DEM相关的算法接口等:同时对这些算法提供了一系列可以运行的程序或者脚本,方便人们使用。 # **三、GDAL代码下载** 官网下载地址 http://download.osgeo.org/gdal https://github.com/OSGeo/gdal/tree/master/gdal GISInternals Support Site https://www.gisinternals.com/release.php # **四、文件目录介绍** **alg:**该文件夹存放的是GDAL库中提供的一些算法的源代码,这些算法包括但不限于:DEM生成的等高线算法,图像纠正算法(几何纠正、TPS纠正、RPC纠正等),栅格矢量化算法,矢量栅格化算法,格网计算算法,PCT和RGB互转算法,分类图的小碎斑块去除算法等。 **apps:**该文件夹中存放的是GDAL库中提供的一些命令行工具集的源代码。后面会对这些工具做一个简单的说明,其中有些工具非常有用,比如gdalinfo,可以用来查看图像的元数据信息等。 **bridge:**该文件夹中存放的是用来连接GDAL抽象类的定义于GDAL自己的结构体定义及其实现的源代码。 **data:**该文件夹中存放的是GDAL库中需要用到的一些“配置文件”,这些文件主要有ESRI的投影文佳佳,ESPG的投影文件,PCI的投影和椭球体文件,AutoCAD的DXF格式的头文件等。 **doc:**该文件夹存放的是用来生成GDAL帮助文档的一些dox文件。dox文件是使用doxygen工具来进行生成的,后面我们会对doxygen工具做一个简单的介绍,并且说明在自己的工程中怎样使用doxygen生成程序的开发帮助文档。 **frmts:**这个文件夹可以说是GDAL代码中内容最多的一个文件夹了,每次更新GDAL的版本后这个文件夹中都会多出几个文件夹,同时在GDAL支持的文件格式中也会多出来几个新的文件格式。 **gcore:**这个文件夹是GDAL的灵魂所在,主要存放GDAL抽象类的数据集,图像,波段的读写接口都在这个里面实现的。如果想要知道GDAL的抽象类是怎么对图像格式进行抽象的,可以看看这个文件夹中的代码。 **html:**这个文件夹主要用来存放GDAL生成的帮助文档,使用doxygen工具生成的GDAL帮助文档会出现在这个文件夹中 **m4:**这个文件夹存放的是以m4为后缀名的文件。m4文件叫Macro Processor Library,是编译基础中最核心的为文件,这个文件主要是用autoconf来生成configure配置文件,继而自动生成makefile文件。这个文件夹在Windows平台下没有用。 **man:**该文件夹是用来生成Linux或者其他平台下的帮助文件,Windows平台下也没有用。 **ogr:**GDAL和OGR曾经是两个库,GDAL库负责读写栅格数据,OGR库负责读写矢量数据,然而GDAL的算法库中经常会用到矢量数据的读取,将这两个库分开会造成不变,所以两个库整合到了一起,OGR库就是GDAL库的一个子集。 **port:**该文件夹中存放的是CPL库的东西,CPL是一个GDAL的底层支持库,CPL库中定义了一些字符串的操作、文件处理、网页请求、数据库连接、哈希表、字符加密、文件压缩等基础的函数。 **swig:**该文件夹主要存放swig的脚本。SWIG全称叫Simplified Wapper and Interface Generator,官网地址是:http://www.swig.org/。SWIG的作用就是将C/C++写的库封装成Python、C#、Java、Perl和Ruby等其他语言的访问接口。GDAL的C#版本就是使用swig编译出来的。 **vb6:**这个文件夹用来将GDAL编译成一个VB6的模块,对于里面具体的文件说明以及如何编译参考文件夹中的readme.txt文件夹用来将GDAL编译成一个VB6的模块,对于里面具体的文件说明以及如何编译参考文件夹中的readme.txt **wince:**这个文件夹中的文件就是用来编译Windows CE平台下的GDAL库的
Pre:
【Visual Studio 2019】创建 MFC 桌面程序
Next:
OpenSceneGraph基础知识
0
likes
3
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content