# GDAL教程

# 背景介绍

GDAL(Geospatial Data Abstraction library)是一个开源的地理空间数据抽象库,提供了读写和转换地理空间数据的工具和库函数。支持python、C/C++、Java、C#、Ruby、Perl等语言。

主要功能如下:

  • 数据格式支持:支持常见的GeoTIFF、shapefile、KML、NetCDF、GeoJSon等等
  • 数据转换和投影:支持在不同地理坐标系和投影坐标系进行转换
  • 栅格数据处理:提供剪切、融合、重采样、地理参考和颜色校正等操作
  • 矢量数据处理:空间查询、缓冲区分析、转换等操作

GDAL-summary

# 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>

测试会报以下错误:

20240805152817

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

20240805162210

下载解压后,将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 中使用的常量和枚举类型。
Last Updated: 11/18/2024, 4:01:47 PM