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

posted @ 2019-01-15 21:23  yzhyingcool  阅读(7986)  评论(4编辑  收藏  举报