ArcMap自定义脚本工具制作
ArcMap自定义脚本工具制作
在制图的前期,一般需要做一些数据的整理,如图层合并、裁剪等工作。虽然在ArcMap中也有提供对应的工具,但使用起来需要点技巧。如批量裁剪,虽然可以实现,但出来的结果会重命名为[图层名]_clip,这样对于配置好整个区域的mxd,需要单独裁剪部分范围数据非常不友好,以为后续工作意味着需要单独给裁剪出来的数据重命名,删除掉后缀_clip才可以统一设置数据源。
解决这个问题其实可以很快速的编写python脚本去实现。但脚本对于一般人来说比较麻烦,每次使用都需要调整脚本的参数,容易出错。ArcGIS是允许将脚本导入成为工具,这样就可以在ArcMap的界面下像使用常规工具一样去处理数据了。
下面以批量裁剪保留图层原来名称并删除数据为空的图层,以这个功能为例子。其代码如下:
#coding=gbk
#这个工具是使用一个图层去裁剪指定数据库或文件夹的数据,并将裁剪后空的图层删除
ClipFeats = arcpy.GetParameterAsText(0) #用于裁剪的图层
inputwork=arcpy.GetParameterAsText(1) #输入的要裁剪的数据
workPath = arcpy.GetParameterAsText(2) #裁剪后输出的位置
arcpy.env.workspace = inputwork
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
outfeat = workPath+u"\\"+fc
arcpy.analysis.Clip(fc, ClipFeats,outfeat) #裁剪数据并输出
#检查是否有空的要素,如果是空的,删除数据
arcpy.env.workspace = workPath
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
desc = arcpy.Describe(fc)
result=arcpy.GetCount_management(fc)
me = result.getOutput(0)
if int(me)==0:
arcpy.Delete_management(fc)
制作工具非常简单,只要将参数设置好,就是前面的几行arcpy.GetParameterAsText(0)
后面的这个索引号非常重要,它决定了在工具中参数的位置。
第一部新建一个工具箱,在工具箱出添加一个脚本
对脚本进行一些必要的描述,如下图所示
选择好对应的编写好的脚本
接下来就是最重要的参数设置了,这里的参数顺序是按照前面代码中参数获取的顺序要保留一致。
显示名称为工具调用时的显示说明,数据类型就必须跟参数对应,例如要裁剪的数据是个featureclass,那就可以设置为要素类或者图层;其他的两个参数由于都是指向输入的路径或者输出路径,可以设置为【工作空间or要素数据集】
如下图
完成后可以直接双击脚本工具,可以执行。
通过arcpy简单的几行代码,并实现自定义的高级裁剪功能,有了一些常规的脚本之后,对齐输入输出参数进行单独的改写,设置为脚本工具,可以实现更多的快捷和友善的操作。
版权声明:本文为博主原创文章,未经博主允许不得转载。
ArcMap自定义脚本工具制作相关推荐
- 【ArcGIS自定义脚本工具】批量执行栅格计算器
文章目录 一.功能介绍 二.脚本代码 三.工具参数 四.用例 4.1 批量单位换算 4.2 批量计算植被覆盖度 4.3 批量填充空值 系列文章目录: ArcGIS自定义脚本工具 一.功能介绍 功能 将 ...
- 【ArcGIS自定义脚本工具】栅格统计频率和累计频率
文章目录 一.功能介绍 二.脚本代码 三.工具参数 四.工具界面 系列文章目录: ArcGIS自定义脚本工具 一.功能介绍 在基于像元二分模型利用植被指数计算植被覆盖度的过程中,通常以某一累计频率值对 ...
- Arcgis中创建自定义脚本工具
前言 虽然说ArcGis中已经自带了大量的工具,但面对某些特殊应用场景时还是无法满足,这时就可以考虑下创建自定义工具.开发人员将自己的逻辑封装为一个工具,直接提供给其他电脑上安装ArcGIS的人员使用 ...
- 【ArcGIS自定义脚本工具】利用聚合方法批量生成分辨率降低版本的栅格
文章目录 一.功能介绍 二.脚本代码 三.工具参数 四.工具界面 五.使用例 5.1.参数设置 5.2.运行结果 5.3.聚合与最近邻重采样的结果对比 系列文章目录: ArcGIS自定义脚本编程 一. ...
- 【ArcGIS自定义脚本工具】批量重投影栅格脚本
文章目录 〇.引言 二.脚本代码 三.工具参数 四.工具界面 〇.引言 本文主要是分享本人在编写ArcGIS自定义脚本的一些经验,内容包括各脚本的界面.代码.设置等.涉及到的大多数脚本针对批处理栅格数 ...
- 第三章 ArcGIS Pro创建 python 脚本工具(五)
其实整个第三章介绍的内容很少,真正的实验步骤,一节左右就可以概述处理,只是原书作者对于基础与一些信息都给了介绍,所以内容才会显得较多.关于新建自定义脚本工具,我觉得简单的来说,步骤就是创建脚本(如何写 ...
- 让ArcMap变得更加强大,用python执行地理处理以及编写自定义脚本工具箱
文章目录 一.用python执行地理处理工具 1.1 例:乘以0.0001 1.2 例:裁剪栅格 1.3 哪里查看调用某工具的代码? 二.用python批量执行地理处理工具 2.1 必需的python ...
- ArcGisPro脚本工具【0】——制作你的第一个脚本工具
本系列以ArcGisPro2.8为例.Pro的脚本采用的python版本是3.X,相比于ArcGis10.X采用的python2.X,有了很大的进步,尤其是对中文字符的支持,可以避免很多奇怪的bug. ...
- 全志A33,制作生成boot.img脚本工具
在内核目录执行make zImage,在内核中生成了zImage文件,开发中,是通过烧写boot.img文件,即zImage+rootfs文件:所以需要制作boot.img文件 一.查找生成boot. ...
最新文章
- Android 使用adb 命令截图 的方法
- BootStrap学习(6)_模态框
- .NET编程-----------------------Web.config配置文件详解
- 基于live555的视频直播 DM368IPNC RTSP分析
- MySQL二进制日志操作
- Linux “百变”秀:今天 Windows 95,明天 Mac OS 9
- 《黑客与画家》 读书笔记
- Oracle查看表空间及使用情况
- 机房报表错误-没有分配到需要的内存
- HTML背景颜色为什么改变不了,css背景颜色不显示怎么解决
- 7 21 第一次团队赛——————写给队友
- 分门别类刷leetcode——二叉查找树(C++实现)
- 元宇宙GOD新纪元打通元宇宙
- 自定义一个可滑动时间刻度尺
- 对敏捷教练职业发展的一点思考
- Altium Designer 18板子信息命令
- 关于小学和哥哥买零食的琐碎回忆
- matlab控制理论学习
- JUC多线程并发编程
- Java中生产者和消费者总结
热门文章
- c java 字节流_Java 学习(23)---(IO流之字节流)
- THREEJS - 动态标签(texture纹理方式)
- 神舟刷蓝天w650dbios_在DOS中给神舟蓝天刷EC和BIOS的通用方法【AMI】
- nginx 接收报文_Nginx代理缓存功能
- C# NPOI(xlsx相关操作)
- JVM常见的七种垃圾收集器的简单比较
- Leecode-2 Add Two Numbers
- linux进程管理——进程管理相关命令
- 前端知识 | React Native手势响应浅析
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)D - CC的神奇背包