ArcGis Python脚本——根据字段内容拆分要素类(shp)为多个

其实,这就是批量执行了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=[]
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

Ps:ArcGis10.5以上版本有函数:SplitByAttributes_analysis (Input_Table, Target_Workspace, Split_Fields)

猜你喜欢

转载自www.cnblogs.com/yzhyingcool/p/10274368.html
今日推荐