先来介绍一下开发背景:根据中心城区的医院数据(点)生成泰森多边形——(图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://javaforall.net/228946.html原文链接:https://javaforall.net
