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

You may also like...