ArcGis Python脚本——根据字段内容拆分要素类(shp)为多个
插个广告,制作ArcGIS的Tool工具学习下面的教程就对了:
零基础学习Python制作ArcGIS自定义工具观看链接
《零基础学习Python制作ArcGIS自定义工具》课程简介
其实,这就是批量执行了ArcToolbox 分析工具-筛选 功能。
先上代码,后做解说:
# in_feature:待拆分要素类 # out_folderpath:输出路径,注意最后加“/”以与字段名拼接出输出文件路径 # split_field:拆分标准字段 import arcpy in_feature="C:/Users/yang/Desktop/中国行政区矢量图/省级行政区域.shp" out_folderpath="C:/Users/yang/Desktop/1/" split_field="NAME" field_data_list=[]
#code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416
with arcpy.da.SearchCursor(in_feature,split_field) as cursor:
for row in cursor:
if row[0] not in field_data_list:
field_data_list.append(row[0])
for select_data in field_data_list:
arcpy.Select_analysis(in_feature,out_folderpath+select_data+'.shp',split_field+"="+"'"+select_data+"'")
①该脚本实现把“省级行政区域”按“NAME”字段拆分成多个图层;
②该脚本只需要在变量声明时修改注释中写明的3个参数。
③主要使用函数 arcpy.Select_analysis 实现拆分功能,其语法如下:
Select_analysis (in_features, out_feature_class, {where_clause})
参数 |
说明 |
数据类型 |
in_features |
从中选择要素的输入要素类或图层。 |
Feature Layer |
out_feature_class |
要创建的输出要素类。如果不使用任何表达式,则其中将包含所有输入要素。 |
Feature Class |
where_clause (可选) |
用于选择要素子集的 SQL 表达式。有关 SQL 语法的详细信息,请参阅帮助主题 在查询表达式中使用的元素的 SQL 参考。 |
SQL Expression |