我正在编写一些代码来基于边界框选择和导出地理数据。我要选择的数据来自覆盖整个荷兰的巨大文件 GDB (16GB) 中的 2 个单独层。我使用边界框来避免在进行选择之前读取整个数据集。
此方法在应用于 gpkg 数据库时效果很好,但对于文件地理数据库,处理时间要长得多(对于 200x200 米的选择,处理时间为 0.2 秒与 300 秒)。我正在使用的文件 GDB 为我正在阅读的图层设置了空间索引。我正在使用 geopandas 来阅读和选择。您将在下面找到“Adres”层的示例:
import geopandas as gpd
def ImportGeodata(FilePath, BoundingBox):
importBag=gpd.read_file(FilePath, layer='Adres', bbox=BoundingBox)
importBag['mergeid']=importBag['identificatie']
return importBag
我在监督什么吗?或者这是从巨大的文件 GDB 导入时的限制?我在这里找不到明显的错误。目前,解决方法是另一个脚本,它可以在 gpkg 中导入和转储我需要的层。问题是这运行了 3 到 4 个小时(gpkg 结果几乎是 6 GB)。我不想继续这样做,为了处理这个数据集的新版本,有必要每个月左右做一次。
好奇你们想出什么办法。