使用 Python Geopandas 合并全国分省市建成区 SHP 数据集
使用 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 文件。
使用方法:
- 将代码复制到 Python 文件中。
- 修改代码中的
root_dir为您的 SHP 文件的目录路径。 - 运行 Python 文件。
- 在运行目录下将生成名为 '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 文件数量非常多,可以考虑使用多线程或多进程来加速合并过程。
希望以上内容对您有所帮助。如果您有任何其他问题,请随时提出。
原文地址: https://www.cveoy.top/t/topic/qudw 著作权归作者所有。请勿转载和采集!