python-3.x - Geopandas 读取 gdb 层名称以在 for 循环中进行对象
问题描述
我有一个图层列表,我想将它们导入 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)
然后,您可以从 dict 轻松访问它们中的每一个。
layers['roads']
推荐阅读
- python - 使用 Selenium 选择日期
- c++ - 在 Visual Studio 或 Visual Studio 代码中编程 ESP32?
- html - 如何在不在 Angular 中添加标签的情况下呈现 innerHTML
- c# - 如何组合两个 LINQ 选择表达式?
- python - 发布 JSON 数据后,Django 重定向不起作用
- python - 在 AWS sagemaker 中部署我的模型时导入 matplotlib 失败
- python - 如何使用 python 对 csv 文件中的多行文本应用标记化和停用词
- dictionary - 在 Swift 5 中处理 Firestore 地图对象
- java - 在执行 Spring Boot App 期间测试 application.properties 加载,而不是 main/application.prop
- xamarin.forms - “使用 Xamarin 表单将照片保存在 iPhone 或 iPad 的相册中”但是 PCL 已弃用