以ARCGIS批量裁切矢量为例,分享如何在ARCGIS工具箱中创建Python脚本工具

本文介绍了如何在ARCGIS工具箱中创建Python脚本工具,以实现批量裁切矢量的功能。通过编写Python脚本,配置脚本工具参数,设置输入输出要素图层和工作空间,以及添加工具描述和密码保护,实现了高效批处理。最后展示了脚本工具的运行成果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、准备Python脚本文件

2、脚本工具参数配置

3、其他设置 

4、成果展示


经常使用Arcmap的小伙伴都知道ARCGIS Desktop 自带有大量的工具,可以执行各种各样的地理处理任务。这些功能虽然强大,但是往往都是进行任务单一处理的,很难进行批处理,而在实际的生产应用中,往往我们需要批量处理大量的数据,而输入数据的选择与输出数据保存则需要手动重复进行操作,这样很不利于提高工作效率。

如何避免重复干这些机械又无聊的工作呢?这时候我们就可以利用学到的python编程知识,灵活地调用ARCGIS自带的工具,把各种各样的工具组织成自己的工作流,甚至创建一些新的工具。今天博主就以ARCGIS批量裁切矢量为例,和大家分享如何在ARCGIS工具箱中创建Pyhton脚本工具。

1、准备Python脚本文件

第一步,先写好脚本工具的核心 —— python脚本文件(在Pycharm或Python自带的IDLE中均可新建.py文件)。本次Python脚本工具主要实现的功能是批量裁切矢量,代码如下:

# -*- coding: cp936 -*-
import os
import arcpy

input_path = arcpy.GetParameterAsText(0) #获取输入要素集合
clip_path = arcpy.GetParameterAsText(1) #获取裁切范围
save_dir = arcpy.GetParameterAsText(2) #获取保存路径
paths = input_path.split(';') #获取批量裁切要素文件路径列表
m = 1
count = len(paths)
arcpy.SetProgressor("step","待处理图层: {0}个".format(count),0, count, 1)#设置进度条
for path in paths: #循环要素,批量裁切
    basename = os.path.basename(path) #获取文件名
    if path[-4:] == '.shp': #数据类型不同,保存文件的命名方式不同
        save_path = os.path.join(save_dir,basename[:-4]+'_clip')
        arcpy.Clip_analysis(path,clip_path,save_path, '') #调用裁切工具
    else:
        save_path = os.path.join(save_dir, basename+'_clip')
        arcpy.Clip_analysis(path, clip_path, save_path, '')#调用裁切工具
    arcpy.AddMessage(basename + u" 已裁切完成")
    arcpy.SetProgressorLabel("已处理: {0}/{1}个图层".format(m, count))#更新进度条提示
    arcpy.SetProgressorPosition(m) #更新进度
    m += 1

2、脚本工具参数配置

第二步,任意选择一个已经存在的工具箱,或者自己选择一个文件夹新建一个工具箱,鼠标右键添加一个脚本。

  设置脚本名称及脚本工具描述等基本信息,然后点击下一步,继续设置。

 选中之前编辑好的.py文件,然后继续下一步。

然后重点来了,如何设置脚本工具参数是保证工具能够正常运行的前提,这需要开发人员根据自己所开发的工具所要达到的目的,再结合编写的python代码来灵活定义工具的参数数据类型。

我们这个工具的目的是要实现批量裁剪矢量,所以第一个脚本参数我们命名为输入要素集合,数据类型选为要素图层,并且设置为允许多值,这样我们就可以将多个要素图层作为裁剪要素放入工具中。

为了完成裁切目的,裁剪范围自然必不可少,所以第二个参数我们命名为裁剪范围,数据类型亦为要素图层。

最后裁剪完成后的成果数据保存路径也是必不可少对的,这里我们选择保存路径的数据类型为工作空间,这样我们既可以选择文件夹作为存放路径(保存成果为shp文件),也可以选择数据库文件作为存放路径,非常具有实用性。

参数设置好后,我们就可以点击完成按钮,保存脚本工具的参数配置。

参数配置好后,为了能将工具分享给其他用户使用,我们还需要对我们工具的用法及如何进行参数设置等进行相关说明 ,保证其他用户拿到工具后能了解如何使用该工具。设置方法如下:

在工具箱中右键单击自己的脚本工具选择项目描述,进入项目描述界面,点击左上角的编辑按钮,开始进行项目相关信息描述的编辑。

  可以对工具的用法及工具参数等进行说明。

3、其他设置 

在正式运行脚本之前,为了监测脚本工具运行情况,我们还需要进行一些其他的辅助设置。单击ARCMAP顶层的地理处理菜单,选择地理处理选项,然后取消启用后台处理选项。设置好后我们的脚本工具就可以在前台运行,方便我们及时发现程序运行中出现的问题。

 有些时候,作为工具开发者,我们可能并不想别人轻易的就COPY了自己的劳动成果,这时候就需要我们给自己的脚本工具进行保密设置,方法如下:

第一步:先右键单击自己的脚本工具,选择导入脚本;

第二步:如果我们的脚本有中文注释,在导入脚本后,由于python2.7的问题,代码的中文注释会变成乱码,我们需要右键单击自己的脚本工具选择编辑,将之前写好的代码重新复制粘贴并保存下,这样才能保证程序运行时不会报编码错误的问题;

第三步:右键单击自己的脚本工具选择设置密码,进行密码设置,这样别人就不能轻易COPY我们的代码啦!

4、成果展示

说了这么久终于可以进行成果展示了,成果如下:

学会利用python语言编写自己的脚本工具,是每个GIS从业者从入门到精通的必经之路,大家一起努力学习,共同进步吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

装疯迷窍_A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值