使用 Python Geopandas 合并全国分省市建成区 SHP 数据集

假设您拥有一个包含全国分省市建成区 SHP 数据集的目录,每个省市对应一个 SHP 文件,您希望将所有 SHP 文件合并成一个文件。可以使用以下 Python 代码实现:

import os
import geopandas as gpd

# 设置目录路径
root_dir = 'your/root/directory'

# 获取所有shp文件的路径
shp_files = []
for root, dirs, files in os.walk(root_dir):
    for file in files:
        if file.endswith('.shp'):
            shp_files.append(os.path.join(root, file))

# 合并所有shp文件
gdf = gpd.GeoDataFrame()
for shp_file in shp_files:
    gdf = gdf.append(gpd.read_file(shp_file))

# 保存为一个shp文件
output_file = 'merged.shp'
gdf.to_file(output_file)

注意:

  • 确保您已安装 geopandas 包,可以使用 pip install geopandas 命令安装。
  • 'your/root/directory' 替换为实际的目录路径。
  • 代码将遍历指定目录及其子目录下的所有文件,筛选出以 '.shp' 结尾的文件,并将它们合并为一个 GeoDataFrame 对象。最后,将合并后的 GeoDataFrame 保存为一个 SHP 文件。

使用方法:

  1. 将代码复制到 Python 文件中。
  2. 修改代码中的 root_dir 为您的 SHP 文件的目录路径。
  3. 运行 Python 文件。
  4. 在运行目录下将生成名为 'merged.shp' 的合并后的 SHP 文件。

代码说明:

  • os.walk(root_dir):用于遍历指定目录及其子目录下的所有文件。
  • file.endswith('.shp'):用于筛选出以 '.shp' 结尾的文件。
  • gpd.read_file(shp_file):用于读取 SHP 文件并将其转换为 GeoDataFrame 对象。
  • gdf.append(gdf2):用于将两个 GeoDataFrame 对象合并。
  • gdf.to_file(output_file):用于将 GeoDataFrame 对象保存为 SHP 文件。

其他建议:

  • 如果您的 SHP 文件包含属性数据,可以使用 gdf.to_crs() 函数将所有 SHP 文件转换为相同的坐标系,以确保合并后的文件具有相同的坐标系。
  • 如果您的 SHP 文件数量非常多,可以考虑使用多线程或多进程来加速合并过程。

希望以上内容对您有所帮助。如果您有任何其他问题,请随时提出。

使用 Python Geopandas 合并全国分省市建成区 SHP 数据集

原文地址: https://www.cveoy.top/t/topic/qudw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录