pyogrio - 基于 GDAL/OGR 的批量空间矢量文件 I/O
Pyogrio 提供了对 GDAL/OGR 矢量数据 源的快速、批量读写访问,例如 ESRI Shapefile、GeoPackage、GeoJSON 以及其他多种格式。 矢量数据源通常包含几何信息,如点、线或 多边形,以及关联的记录,这些记录可能包含许多列的数据。
典型用法是从
GeoPandas GeoDataFrames 读取或写入这些数据源。由于
几何列是可选的,因此仅读取或写入非空间数据也是
可能的。因此,也支持 GeoPackage 属性表、DBF 文件或 CSV 文件。
Pyogrio 之所以快速,是因为它使用 GDAL/OGR 的预编译绑定来批量 读取和写入数据记录。这种方法避免了在 Python 内部进行多次 Python 数据类型之间的转换,因此性能主要受限于 GDAL/OGR 中数据源驱动程序的底层 I/O 速度。
与使用逐行方法(例如 Fiona)相比,我们观察到读取文件的速度提升了 >5-100 倍, 写入文件的速度提升了 >5-20 倍。
阅读文档以获取更多信息: https://pyogrio.readthedocs.io.
要求
- Python >= 3.10
- GDAL >= 3.6
- 读取到 GeoDataFrames 需要
geopandas>=0.12和shapely>=2。此外, 安装pyarrow在指定use_arrow=True时可实现进一步加速。
安装
Pyogrio 目前可在 conda-forge 和 PyPI 上用于 Linux、MacOS 和 Windows。
请阅读 安装文档 以获取更多信息。
支持的矢量格式
Pyogrio 支持大多数常见的矢量数据源格式(前提是它们也受 GDAL/OGR 支持),包括 ESRI Shapefile、GeoPackage、GeoJSON 和 FlatGeobuf。
请参阅支持的格式列表 以获取更多信息。
入门指南
请阅读介绍 以获取更多信息和示例,开始使用 Pyogrio。
您还可以查看API 文档 以获取使用 API 的完整详细信息。
致谢
本项目的实现得益于 GDAL、Fiona 和 Geopandas 社区的巨大努力。