关于
它是如何工作
在内部,Pyogrio在Cython中使用面向numpy的方法来从空间数据层读取有关数据源和记录的信息。当已知二进制(WKB)对象和字段(属性)被读取到适当数据类型的numpy数组时,从数据层提取几何图形。然后将这些转换为GeoPandas GeoDataFrame
S.
所有记录都被读取到内存中,这对于非常大的数据源来说可能会出现问题。您可以使用 skip_features
/ max_features
一次读取文件的较小部分。
整个 GeoDataFrame
是一次写的。不支持对现有数据源的增量写入或附加。
与菲奥娜的比较
[Fiona] (https://github.com/Toblerity/Fiona)是一个功能齐全的Python库,用于处理OGR载体数据源。是 awesome ,拥有高度敬业的维护者和贡献者,并提供比Pyogrio更多的功能。如果没有菲奥娜的出现,这个项目就不可能实现。
Pyogrio使用一种载体化(面向数组)方法来读写空间载体文件格式,这可以实现更快的I/O操作。它借鉴了菲奥娜的内部机制和经验教训。它使用无状态方法来读取或写入数据;所有数据都是通过一次读取或写入的。
Fiona
是一个通用空间格式I/O库,用于Python生态系统中的许多项目。相比之下,Pyogrio专门针对GeoPandas,以减少当前在GeoPandas之间读写数据所需的数据转换数量 GeoDataFrame
s和OGR数据源使用Fiona(GeoPandas中的当前默认值)。