Geopandas 将 gdb 层名称读取到 for 循环中的对象

Geopandas reading gdb layer name to object in for loop

我有一个图层列表,我想将它们导入 geopandas 并让它们的对象名称与图层名称相同。

在这种情况下,layer = gpd.read_file(...) 应该是图层列表中实际图层的名称。

layerlist = fiona.listlayers(gdb)

for layer in layerlist:
    layer = gpd.read_file(gdb, driver="FileGDB", layer=layer)

实现我想要的手动方法是:

roads = gpd.read_file(gdb, driver="FileGDB", layer='roads')
trees = gpd.read_file(gdb, driver="FileGDB", layer='trees')
signs= gpd.read_file(gdb, driver="FileGDB", layer='signs')
...

但我宁愿遍历图层,这样我就不需要先查看图层名称。

在 Python 这不是一件容易的事,无论如何我都会反对它。您可以使用键等于层名称的字典。

layers = {}

layerlist = fiona.listlayers(gdb)

for layer in layerlist:
    layers[layer] = gpd.read_file(gdb, driver="FileGDB", layer=layer)

然后您可以通过字典轻松访问它们中的每一个。

layers['roads']