Arcpy按属性(字段值)不同将shp分割为多个独立shp_适用点线面矢量
利用代码可以进行批量处理,安装有10.5及以上版本ArcGIS可以使用工具Split by attributes完成上述任务
# -*- coding: utf-8 -*-
# Import system modules
import re
import arcpy
from arcpy import env
# function for replace special characters
def validateTitle(title):
rstr = r"[\/\\\:\*\?\"\<\>\|\,\.\ ]" # '/ \ : * ? " < > | , . '
new_title = re.sub(rstr, "_", title) # replace rstr by '_'
return new_title
# Set workspace
env.workspace = "C:/Users/pan/Desktop/test" # your workspace
# Set local variables
in_features = "C:/Users/pan/Desktop/test/rivers.shp" # replace by your filepath to split
# Open a searchcursor
rows = arcpy.SearchCursor(in_features, fields="NAME") # replace "NAME" by your target field name
# Iterate through the rows in the cursor, select the river by name and export,
for row in rows:
selected_field_value = row.getValue("NAME")
where_clause = '"NAME" = \'%s\''%(str(selected_field_value))
outfilename = validateTitle(str(selected_field_value))
out_feature_class = "C:/Users/pan/Desktop/test/out/%s.shp"%(outfilename)
# Execute Select
arcpy.Select_analysis(in_features, out_feature_class, where_clause)
print(str(selected_field_value)+' has done!!!')
如果对代码中调用的Arcpy功能API不了解,可以移步ArcGIS帮助
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下