python读取和写入GDB文件

2024-05-30 12:59:43 浏览数 (1)

代码语言: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()))

0 人点赞