代码语言:python代码运行次数:0复制
import geopandas as pd
import os
# 读取gdb数据库
gdb_path = r'.datagwr_results.gdb'
gdb = pd.read_file(gdb_path, driver='FileGDB', layer='*')
使用GeoPandas读取单个图层
使用 GeoPandas 和 fiona 读取 GDB 文件的所有图层
代码语言:python代码运行次数:0复制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()))