跳转到主要内容

GDAL: 地理空间数据抽象库

项目描述

这个Python包和扩展是一系列用于编程和操作GDAL地理空间数据抽象库的工具。

GDAL项目维护由SWIG生成的GDAL/OGR的Python绑定。一般来说,类和方法与GDAL和OGR的C++类基本一致。没有特定的Python参考文档,但https://gdal.org/api/python_bindings.html#tutorials中包含了Python示例。

依赖项

  • libgdal(3.9.2或更高版本)和头文件(gdal-devel)

  • numpy(1.0.0或更高版本)和头文件(numpy-devel)(虽然不是明确要求,但许多示例和实用程序没有它将无法工作)

安装

Conda

构建和安装GDAL可能相当复杂,尤其是在Windows和MacOS上。为conda系统提供了预构建的二进制文件

https://docs.conda.org.cn/en/latest/

由conda-forge项目提供

https://forge.conda.org.cn/

安装Anaconda或Miniconda后,您应该可以使用以下命令安装GDAL

conda install -c conda-forge gdal

pip

由于GDAL及其组件的性质复杂,不同的绑定可能需要额外的包和安装步骤。可以从Python包索引安装GDAL

pip install gdal

为了启用基于numpy的栅格支持,除了libgdal及其开发头文件外,还必须安装Python包numpy、setuptools和wheel。为了安装Python依赖项并构建基于numpy的栅格支持

pip install numpy>1.0.0 wheel setuptools>=67
pip install gdal[numpy]=="$(gdal-config --version).*"

用户可以使用以下方法验证是否已安装基于numpy的栅格支持

python3 -c 'from osgeo import gdal_array'

如果此命令引发ImportError,则基于numpy的栅格支持未正确安装

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python3.12/dist-packages/osgeo/gdal_array.py", line 10, in <module>
  from . import _gdal_array
ImportError: cannot import name '_gdal_array' from 'osgeo' (/usr/local/lib/python3.12/dist-packages/osgeo/__init__.py)

这通常是由于pip重复使用缓存的GDAL安装引起的。请确保已安装必要的依赖项,然后运行以下命令以强制进行干净的构建

pip install --no-cache --force-reinstall gdal[numpy]=="$(gdal-config --version).*"

GDAL >= 3.9,Python >= 3.9和NumPy 2.0的潜在问题

GDAL 3.9的pyproject.toml文件需要numpy >= 2.0.0rc1(对于Python >= 3.9),以便在构建时构建与NumPy 1和NumPy 2兼容的绑定。如果由于某种原因无法安装numpy >= 2.0.0rc1构建依赖项,则可以手动安装构建要求,并使用pip install命令的--no-build-isolation标志调用。

pip install numpy==<required_version> wheel setuptools>=67
pip install gdal[numpy]=="$(gdal-config --version).*" --no-build-isolation

作为GDAL库源树的构建部分

从源代码构建GDAL时,默认会生成Python绑定。有关详细信息,请参阅Python绑定选项

GDAL Python包使用SWIG构建。当前支持的版本是SWIG >= 4

使用方法

导入

GDAL Python绑定中包含了GDAL的五个主要模块。

>>> from osgeo import gdal
>>> from osgeo import ogr
>>> from osgeo import osr
>>> from osgeo import gdal_array
>>> from osgeo import gdalconst

API

API文档可在https://gdal.org/api/python/osgeo.html找到

Numpy

GDAL Python绑定中的一项高级功能是与其他语言绑定中找不到的与Python数值数组设施的集成。可以使用gdal.Dataset.ReadAsArray()方法将栅格数据作为数值数组读取,以便与Python数值数组功能一起使用。

教程

请参阅https://gdal.org/api/python_bindings.html#tutorials

注意事项

尽管GDAL和OGR的Python绑定在底层C++代码周围提供了一个相当“Pythonic”的包装,但Python绑定与典型的Python库在几个方面有所不同。这些差异可能会让Python程序员感到意外并导致意外结果。这些差异是由于在继续维护向后兼容性的同时开发大型、长期存在的库而导致的复杂性。它们正在逐步解决,但在它们全部消失之前,请参阅以下列表https://gdal.org/api/python_gotchas.html

示例

GDAL/numpy 集成的示例可以在val_repl.py脚本中找到。

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

gdal-3.9.2.tar.gz (840.6 kB 查看散列)

上传时间 源代码

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面