系列文章目录

第一章 什么是GDAL
第二章 GDAL工具箱新手入门之gdalinfo的使用
第三章 GDAL工具箱新手入门之gdal_translate的使用
第四章 GDAL工具箱新手入门之gdal_warp的使用
第五章 GDAL工具箱新手入门之gdal_rasterize的使用
第六章 GDAL工具箱新手入门之gdaltransform的使用
第七章 GDAL工具箱新手入门之ogrinfo的使用
第八章 GDAL工具箱新手入门之ogr2ogr的使用
第九章 GDAL工具箱新手入门之gdalmdimtranslate的使用


文章目录

  • 系列文章目录
  • 前言
  • 一、GIS 数据和 GDAL
  • 二、什么使GDAL
  • 三、GDAL的特点
  • 四、其他软件和工具中的 GDAL 功能
  • 五、GDAL代码的下载
  • 六、文件目录介绍
  • 七、有用的网址
  • 总结

前言

我们经常将关键基础设施视为与道路或电力相关的东西。在日益数字化的世界中,关键基础设施也是数据网络和软件。地理空间数据抽象库 (GDAL) 是一组软件工具,可能是 GIS 软件中最重要的部分之一,自 2000 年以来一直作为一个项目存在。

该库被Google Earth等主要公共平台使用,也被ArcGIS、QGIS和GRASS等常用 GIS 工具使用。事实上,可能有数百个软件项目使用 GDAL 库。在 MapScpping Podcast 的一次采访中, Paul Ramsey 讨论 了 GDAL 的重要性,以及它的财务模型和对地理空间社区的长期生存能力。

一、GIS 数据和 GDAL

我们可以将 GDAL 视为提供与矢量和栅格数据相关的许多操作的数据管道。可以对数据进行排列和操作,以便应用各种数据编辑和可视化操作,包括最常见的操作,例如转换和地理配准。

该工具执行的操作包括坡度和坡向计算、光栅扭曲、子集和图像重采样。许多用户都知道它具有工作和操作各种数据格式的能力,其中包含由库处理和导入的 160 多种栅格格式。数据还可以多种格式导出,该工具可以工作并应用 GeoTiIFF、GeoJSON 和 CSV 格式等。

二、什么使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
https://trac.osgeo.org/gdal/wiki/SoftwareUsingGdal

三、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 功能

命令行访问意味着它通常在其他工具中应用。还使用了 OGR 库,处理矢量数据,包括矢量图形,并在标准格式上执行读写操作。

GDAL 用于广泛的开源和私有工具,因此它经常包含在每个主要操作系统的第三方软件中。

GDAL 的部分是用C、C++和 Python编写的,具有多种计算机语言绑定,这也是其被广泛访问的原因之一,使得该工具可以在流行的 GIS 脚本语言中使用,例如 Python、Perl、Ruby、R 等。

应用 C、C++ 或Java的大型面向对象平台也应用该库。由于可以在 GDAL 中完成的通用操作,像 Esri 这样的大公司决定使用这个库比创建自己的专有库更好。

最近,GDAL 也被应用为基于云的计算操作的一部分,这意味着用户甚至不需要在本地复制它,并且可以远程应用空间操作,有时在创建数据时可以近乎实时地应用。

例如,当访问来自 USGS 的 Landsat 或来自 Planet Labs 的 高分辨率卫星图像等数据时,GDAL 操作已经从卫星发送的数据点开始应用,包括正射校正。

GDAL库不断更新完善;保持软件更新通常很重要,以避免潜在的软件冲突或无法与其他软件正常工作的操作。

GDAL:地理空间社区的关键基础设施
我们可以得出的结论是,GDAL 已有效地成为地理空间社区的关键基础设施。考虑到应用于矢量和栅格数据的广泛操作,它可能是最重要的库之一。此外,很多大大小小的工具都使用GDAL,也成为应用程序中不可或缺的一部分。

五、GDAL代码的下载

官网下载地址
http://download.osgeo.org/gdal
https://github.com/OSGeo/gdal/tree/master/gdal

GISInternals Support Site
https://www.gisinternals.com/release.php

六、文件目录介绍

  1. alg:该文件夹存放的是GDAL库中提供的一些算法的源代码,这些算法包括但不限于:DEM生成的等高线算法,图像纠正算法(几何纠正、TPS纠正、RPC纠正等),栅格矢量化算法,矢量栅格化算法,格网计算算法,PCT和RGB互转算法,分类图的小碎斑块去除算法等。
  2. apps:该文件夹中存放的是GDAL库中提供的一些命令行工具集的源代码。后面会对这些工具做一个简单的说明,其中有些工具非常有用,比如gdalinfo,可以用来查看图像的元数据信息等。
  3. bridge:该文件夹中存放的是用来连接GDAL抽象类的定义于GDAL自己的结构体定义及其实现的源代码。
  4. data:该文件夹中存放的是GDAL库中需要用到的一些“配置文件”,这些文件主要有ESRI的投影文佳佳,ESPG的投影文件,PCI的投影和椭球体文件,AutoCAD的DXF格式的头文件等。
  5. doc:该文件夹存放的是用来生成GDAL帮助文档的一些dox文件。dox文件是使用doxygen工具来进行生成的,后面我们会对doxygen工具做一个简单的介绍,并且说明在自己的工程中怎样使用doxygen生成程序的开发帮助文档。
  6. frmts:这个文件夹可以说是GDAL代码中内容最多的一个文件夹了,每次更新GDAL的版本后这个文件夹中都会多出几个文件夹,同时在GDAL支持的文件格式中也会多出来几个新的文件格式。
  7. gcore:这个文件夹是GDAL的灵魂所在,主要存放GDAL抽象类的数据集,图像,波段的读写接口都在这个里面实现的。如果想要知道GDAL的抽象类是怎么对图像格式进行抽象的,可以看看这个文件夹中的代码。
  8. html:这个文件夹主要用来存放GDAL生成的帮助文档,使用doxygen工具生成的GDAL帮助文档会出现在这个文件夹中
  9. m4:这个文件夹存放的是以m4为后缀名的文件。m4文件叫Macro Processor Library,是编译基础中最核心的为文件,这个文件主要是用autoconf来生成configure配置文件,继而自动生成makefile文件。这个文件夹在Windows平台下没有用。
  10. man:该文件夹是用来生成Linux或者其他平台下的帮助文件,Windows平台下也没有用。
  11. ogr:GDAL和OGR曾经是两个库,GDAL库负责读写栅格数据,OGR库负责读写矢量数据,然而GDAL的算法库中经常会用到矢量数据的读取,将这两个库分开会造成不变,所以两个库整合到了一起,OGR库就是GDAL库的一个子集。
  12. port:该文件夹中存放的是CPL库的东西,CPL是一个GDAL的底层支持库,CPL库中定义了一些字符串的操作、文件处理、网页请求、数据库连接、哈希表、字符加密、文件压缩等基础的函数。
  13. swig:该文件夹主要存放swig的脚本。SWIG全称叫Simplified Wapper and Interface Generator,官网地址是:http://www.swig.org/。SWIG的作用就是将C/C++写的库封装成Python、C#、Java、Perl和Ruby等其他语言的访问接口。GDAL的C#版本就是使用swig编译出来的。
  14. vb6:这个文件夹用来将GDAL编译成一个VB6的模块,对于里面具体的文件说明以及如何编译参考文件夹中的readme.txt文件夹用来将GDAL编译成一个VB6的模块,对于里面具体的文件说明以及如何编译参考文件夹中的readme.txt
  15. wince:这个文件夹中的文件就是用来编译Windows CE平台下的GDAL库的

七、有用的网址

https://gis-lab.info/docs/gdal/gdal_ogr_user_docs.html
https://www.naturalearthdata.com/downloads/
https://www.pacificclimate.org/
https://trac.osgeo.org/gdal/wiki/UserDocs/RasterProcTutorial
http://download.osgeo.org/gdal/workshop/

总结

以上就是今天要讲的内容,本文仅仅简单介绍了什么是GDAL、GDAL使用以及有用的链接。

【GDAL工具箱】新手使用指南-简介相关推荐

  1. python pip-什么是pip?Python新手入门指南

    什么是 pip ?pip 是 Python 中的标准库管理器.它允许你安装和管理不属于 Python标准库 的其它软件包.本教程就是为 Python 新手介绍 pip. 通过本教程,你将学到: 1. ...

  2. Ubuntu 桌面指南简介

    Ubuntu 桌面指南简介 欢迎阅读 Ubuntu 桌面指南,这是一份 Ubuntu 桌面环境使用的详尽指南. 本指南包含以下章节: 新手上路 - 对 Ubuntu 世界的介绍以及一些有助于您开始使用 ...

  3. C#微信公众号开发系列教程二(新手接入指南)

    此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教 ...

  4. mac 删除分区 command r 选择网络_Mac使用必看基础篇,Mac快捷键大全,mac新手入门指南...

    你是Mac新手吗?你对使用Mac电脑有疑问吗?你还不知道mac有哪些快捷键吗?别着急,来看看小编给大家准备的Mac使用必看基础篇--Mac快捷键大全,对于新手用户很有帮助哦!! 一.开机相关命令快捷键 ...

  5. 阿里云服务器新手选型指南

    阿里云服务器新手选型指南: 小型网站:1核2G共享型以上 中大型网站:4核8G通用型以上 项目临时测试:突发性能型.共享型,配置够用就行. 更多应用,比如分布式计算.AI学习等等,则需选择更好的云服务 ...

  6. 王牌战争文明重启服务器维护,王牌战争文明重启攻略 新手开荒指南

    <王牌战争>是一款TPS竞技手机游戏,于8月1日上线了全新版本"文明重启", 在这个末日题材背景下,你需要做的就是要努力活下去,并抵御环境以及僵尸带来的危险.下面为大家 ...

  7. Neo4j 新手入门指南

    Neo4j 新手入门指南 前言: 前段时间在公司实习有用到图数据库做一个小项目,就想着记录一下当时找到的比较有用的资料. 纯属入门学习啦,新手当作一个大纲来学习也可以! 感谢关注! 所有链接均在文章结 ...

  8. 魂系列联机服务器,黑暗之魂3 联机图文教程 新手联机指南 正版怎么联机_3DM单机...

    黑暗之魂3 联机图文教程 新手联机指南 正版怎么联机 1.联机首先得把自己的游戏更新到最高版本,然后连入服务器,进入系统-联机相关设置-跨区域联机配对选"联机配对"联机模式启动设定 ...

  9. 微信WP8 终端SDK新手使用指南

    微信WP8 终端SDK新手使用指南 注:本文为微信WP8终端开发工具的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉VS2012的基本使用方法,以及具有一定的编程知识基础等. 1.申请你的 ...

最新文章

  1. Hadoop2.6.5集群搭建
  2. select sqlite 唯一_SQLite中的SELECT子句使用通配符
  3. web页面渲染(二)
  4. [FreeBSD] kvm下安装virtio驱动的freebsd
  5. 要承认我们换电脑频繁的效率并不是很高
  6. JAVA结课_一点心情,写java结课考试之前
  7. Spark芝加哥犯罪数据分析与可视化
  8. linux中vim查看最后五行命令,Linux系统中Vi常用命令及高级应用
  9. [PyTorch] 损失函数
  10. 帆软关于排名公式、分组排名问题开窗函数
  11. mstsc远程桌面全频或自定义窗口
  12. 创龙基于Xilinx Kintex-7系列高性价比FPGA开发板SMA端子、电源接口和拔码开关
  13. 超简单的json转xml,xml转json
  14. 关键帧、时间重映射、文本工具
  15. 图像压缩算法python_Python基于opencv的图像压缩算法实例分析
  16. Kali 利用setoolkit制作钓鱼网站
  17. c# 十六进制数据转十六进制字符串
  18. 代理服务器出现网络连接错误怎么办?
  19. springboot+vue新生宿舍管理系统(源码+说明文档),一款优秀的毕业设计
  20. hdu1429 胜利大逃亡(续)

热门文章

  1. 12306客户端实现后的总结
  2. 使用中文维基百科进行Word2Vec实验
  3. [Android 13]开机动画原理分析
  4. MySQL【四】---案例实战{拆分多表、外键创建等}
  5. Retinanet原理介绍和基于pytorch的实现
  6. 法律文件撰写:错别字检查工具的重要性及使用技巧。
  7. 言简意赅话彩虹, 虹,霓
  8. 怎么样在线Word转换成PDF转换器
  9. gradle 的cas 转maven_maven 转 gradle
  10. 消息中间件原理概念篇