将shp文件拆分为多个,并返回行政区划名字 python
时间: 2024-02-16 21:02:25 浏览: 178
可以使用Python中的GDAL库来处理shp文件。以下是一个示例代码,用于将shp文件拆分为多个,并返回行政区划名字。
```python
from osgeo import ogr
# 打开shp文件
source_ds = ogr.Open("path/to/shapefile.shp")
# 获取图层信息
source_layer = source_ds.GetLayer()
# 遍历图层中的每一个要素
for i in range(source_layer.GetFeatureCount()):
# 获取要素
feature = source_layer.GetFeature(i)
# 获取要素的行政区划名字,假设属性表中的行政区划名字对应的字段名为“name”
name = feature.GetField("name")
# 创建新的shp文件
new_ds = ogr.GetDriverByName("ESRI Shapefile").CreateDataSource("path/to/new/shapefile/{}.shp".format(name))
# 创建新的图层
new_layer = new_ds.CreateLayer("layer", geom_type=ogr.wkbMultiPolygon)
# 添加属性表字段
field_defn = ogr.FieldDefn("name", ogr.OFTString)
new_layer.CreateField(field_defn)
# 将要素写入新的shp文件
new_feature = ogr.Feature(new_layer.GetLayerDefn())
new_feature.SetGeometry(feature.GetGeometryRef())
new_feature.SetField("name", name)
new_layer.CreateFeature(new_feature)
# 释放资源
new_ds = None
feature = None
```
以上代码会将原始shp文件中的每一个要素拆分为一个新的shp文件,并将行政区划名字作为文件名。你可以根据需要修改代码来满足自己的需求。
阅读全文