arcpy批量裁剪
先来介绍一下开发背景:根据中心城区的医院数据(点)生成泰森多边形——(图1),然后利用arctoolbox工具箱中的提取分析-分割工具对刚刚创建的泰森多边形进行属性分割,共得到28个多边形。现在利用每个多边形对其包含的兴趣点(本文指的是中心城区起始点.shp)图2进行裁剪,想到的方法就是arcpy。
图1
# -*- coding: utf-8 -*-
import arcpy
arcpy.env.workspace = r"F:\高德地图\可达性研究\泰森多边形属性分割" #输入工作路径
fclist_1 = arcpy.ListFeatureClasses("","polygon") #泰森多边形分割后得到的28个多边形
fclist_2 = r"F:\高德地图\可达性研究\中心城区起始点.shp" #需要裁剪的要素
output_path = "abc"
for i in fclist_1:
print (i)
output_file = output_path+str(i)+ ".shp"
arcpy.Clip_analysis(fclist_2,i,output_file)
print ("完成")
来看一下结果:
接下来,我们可以对上述代码稍加修改,把它转换为一个脚本工具,步骤依次如下图所示:
接下来我们会看到在ArcToolBox中出现了刚刚创建的工具箱,然后右键工具箱—添加—脚本,出现下图对话框
然后,点击下一步,添加脚本所在的文件位置。
继续下一步
然后我们会看到在刚刚添加的工具箱中出现了“批量裁剪脚本工具”
好了,添加脚本工具我们已经完成了,下面是对原始脚本代码进行修改,修改后的代码如下:
# -*- coding: utf-8 -*-
import arcpy
import os
input_feature = arcpy.GetParameterAsText(0) #对应脚本工具中的第1个对话框
arcpy.env.workspace = arcpy.GetParameterAsText(1) #对应脚本工具中的第2个对话框
workpath = arcpy.GetParameterAsText(2) #对应脚本工具中的第3个对话框
feature_classes = arcpy.ListFeatureClasses("","polygon")
for i in feature_classes:
outputfile = workpath + u"\\" + i
arcpy.Clip_analysis(input_feature,i,outputfile)
好了,所有的工作都已结束,可以运行工具啦
谢谢浏览!
转载自:https://blog.csdn.net/GISer_kaifang/article/details/88660354