关于 read_file() 的 Geopandas 警告

leo*_*ole 8 python geopandas

我在使用 geopanda 的 read_file() 读取 geojson 时收到以下警告:

...geodataframe.py:422: RuntimeWarning: Sequential read of iterator was interrupted. Resetting iterator. This can negatively impact the performance.
  for feature in features_lst:
Run Code Online (Sandbox Code Playgroud)

这是我使用的代码示例:

crime_gdf = gpd.read_file('datasets/crimes.geojson', bbox=bbox)
Run Code Online (Sandbox Code Playgroud)

crimes.geojson 是一个包含大量点的文件,每个点都有一个“犯罪类型”

bbox 定义边界

代码按预期运行,但我不明白该警告。

编辑

我将 geojson 转换为feather,并收到相同的警告。

rbu*_*fat 9

在 Fiona 的问题跟踪器中查看我的评论:https : //github.com/Toblerity/Fiona/issues/986

GDAL(Fiona 用来访问地理数据的库)在当前读取的要素上维护一个迭代器。对于某些驱动程序,有一些操作会影响此迭代器。因此,在这些操作之后,我们必须确保将迭代器设置到正确的位置,以确保连续读取数据。这些操作包括对数据集中的所有特征进行计数,分别计算其范围。

GDAL 中有不同类型的驱动程序。有些驱动程序支持随机访问,而有些则不支持。对于不支持随机访问的驱动程序,迭代器的重置涉及再次读取所有特征直到迭代器位置。由于这可能是一项代价高昂的操作,因此会发出 RuntimeWarning,以便用户了解此行为。


Ste*_*EOX 5

我发现这个fionaPR 引用了警告:https ://github.com/Toblerity/Fiona/pull/965

当调用最近打开的fiona1.8.18 时,我可以重现该问题,但 1.8.17 则不行。所以我认为这是在1.8.18中引入的回归,于2020年11月17日发布。list(src)Collectionfiona