# GDAL教程
# 背景介绍
GDAL(Geospatial Data Abstraction library)是一个开源的地理空间数据抽象库,提供了读写和转换地理空间数据的工具和库函数。支持python、C/C++、Java、C#、Ruby、Perl等语言。
主要功能如下:
- 数据格式支持:支持常见的GeoTIFF、shapefile、KML、NetCDF、GeoJSon等等
- 数据转换和投影:支持在不同地理坐标系和投影坐标系进行转换
- 栅格数据处理:提供剪切、融合、重采样、地理参考和颜色校正等操作
- 矢量数据处理:空间查询、缓冲区分析、转换等操作
# Python环境配置
本文主要在windows环境下安装
# 使用.whl文件本地安装
gdal二进制包下载 (opens new window),找到对应的GDAL版本和python版本的whl文件,例如我这里下载是的GDAL3.4.3,python3.9
进入下载文件路径的终端
cd F:\ChromeDownload
pip install GDAL-3.4.3-cp39-cp39-win_amd64.whl
pip list
# 添加命令行工具
首先查看gdal包所在路径
pip show gdal
然后将gdal包所在路径下的osgeo和osgeo_utils文件夹添加到path环境变量
E:\Program Files x86\Python3.10\Lib\site-packages\osgeo
E:\Program Files x86\Python3.10\Lib\site-packages\osgeo_utils
命令行测试
ogr2ogr --version
# Java环境使用
# 添加依赖
<dependency>
<groupId>org.gdal</groupId>
<artifactId>gdal</artifactId>
<version>3.9.0</version>
</dependency>
测试会报以下错误:
maven安装的依赖是一个壳子,所有的核心实现都在orgJNI这个类,需要调用本地方法
# 安装GDAL
需要将对应版本的GDAL包编译后的所有dll文件放在
首先访问下面的网站:
点击DOWNLOAD-Older Releases
,选择GDAL3.9.0 MSVC 2022 X64
版本的,点击进入,选择release-1930-x64-gdal-3-9-0-mapserver-8-0-1.zip
下载解压后,将bin目录下的所有dll文件复制到本机jdk的bin目录下,同名文件要覆盖
在IDEA中使用的时候,要注意选择本机的JDK,不要使用IDEA 自带的
# gdal 包的结构
org.gdal.gdal:
提供对栅格数据的支持,包括数据集的打开、关闭、读取和写入操作。
包含一些实用工具类和方法,用于处理栅格数据。
主要类和接口:
gdal
: 包含 GDAL 库的核心功能,例如初始化和驱动注册。Dataset
: 表示一个栅格数据集。Band
: 表示一个栅格数据集中的一个波段。Driver
: 表示一个用于处理特定数据格式的驱动。
org.gdal.ogr:
- 提供对矢量数据的支持,包括图层的打开、关闭、读取和写入操作。
- 支持各种矢量数据格式,如 Shapefile、GeoJSON、KML 等。
主要类和接口:
ogr
: 包含 OGR 库的核心功能,例如初始化和驱动注册。DataSource
: 表示一个矢量数据源。Layer
: 表示一个矢量数据源中的一个图层。Feature
: 表示一个矢量数据源中的一个要素。Geometry
: 表示矢量数据中的几何对象,如点、线、面等。
org.gdal.osr:
- 提供对空间参考系统和坐标变换的支持。
- 支持投影和地理坐标系之间的转换。
主要类和接口:
SpatialReference
: 表示一个空间参考系统。CoordinateTransformation
: 用于在不同的空间参考系统之间进行坐标转换。
org.gdal.gdalconst:
- 定义了一些常量和枚举类型,用于配置和控制 GDAL 和 OGR 的行为。
主要类和接口:
gdalconst
: 包含 GDAL 和 OGR 中使用的常量和枚举类型。