python写一个将文件夹内所有名字相同的shp文件合并成一个新的shp文件
时间: 2023-04-08 17:03:23 浏览: 127
可以的,你可以使用 geopandas 库来实现这个功能。具体步骤如下:
1. 使用 glob 库获取文件夹内所有的 shp 文件路径。
2. 使用 geopandas 的 read_file 方法读取每个 shp 文件,并将它们存储在一个 geopandas 的 GeoDataFrame 中。
3. 使用 geopandas 的 merge 方法将 GeoDataFrame 中所有名字相同的图层合并成一个新的图层。
4. 使用 geopandas 的 to_file 方法将合并后的图层保存为一个新的 shp 文件。
代码示例:
```python
import glob
import geopandas as gpd
# 获取文件夹内所有的 shp 文件路径
shp_files = glob.glob('/path/to/folder/*.shp')
# 读取每个 shp 文件,并将它们存储在一个 GeoDataFrame 中
gdfs = []
for shp_file in shp_files:
gdf = gpd.read_file(shp_file)
gdfs.append(gdf)
# 合并 GeoDataFrame 中所有名字相同的图层
merged_gdf = gpd.GeoDataFrame(pd.concat(gdfs, ignore_index=True), crs=gdf.crs)
merged_gdf = merged_gdf.dissolve(by='name')
# 将合并后的图层保存为一个新的 shp 文件
merged_gdf.to_file('/path/to/new_file.shp')
```
希望这个回答能够帮到你!