import geopandas as pd
import os
# 读取gdb数据库
gdb_path = r'.\data\gwr_results.gdb'
gdb = pd.read_file(gdb_path, driver='FileGDB', layer='*')
import geopandas as gpd
import fiona
def read_all_layers_from_gdb(gdb_path):
"""
从 GDB 文件中读取所有图层,并返回一个包含所有图层数据的字典。
Args:
gdb_path (str): GDB 文件的路径。
Returns:
dict: 键为图层名称,值为对应图层的 GeoDataFrame。
"""
layers_data = {}
# 直接使用 fiona.listlayers 获取 GDB 文件中的所有图层名称
layer_names = fiona.listlayers(gdb_path)
# 遍历图层名称,使用 GeoPandas 读取每个图层
for layer_name in layer_names:
layer_data = gpd.read_file(gdb_path, layer=layer_name)
layers_data[layer_name] = layer_data
return layers_data
# 示例用法
gdb_path = './data/gwr_results.gdb'
all_layers_data = read_all_layers_from_gdb(gdb_path)
# 打印所有图层的名称以验证结果
print("读取的图层名称:", list(all_layers_data.keys()))
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。