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自定义脚本工具制作相关推荐

  1. 【ArcGIS自定义脚本工具】批量执行栅格计算器

    文章目录 一.功能介绍 二.脚本代码 三.工具参数 四.用例 4.1 批量单位换算 4.2 批量计算植被覆盖度 4.3 批量填充空值 系列文章目录: ArcGIS自定义脚本工具 一.功能介绍 功能 将 ...

  2. 【ArcGIS自定义脚本工具】栅格统计频率和累计频率

    文章目录 一.功能介绍 二.脚本代码 三.工具参数 四.工具界面 系列文章目录: ArcGIS自定义脚本工具 一.功能介绍 在基于像元二分模型利用植被指数计算植被覆盖度的过程中,通常以某一累计频率值对 ...

  3. Arcgis中创建自定义脚本工具

    前言 虽然说ArcGis中已经自带了大量的工具,但面对某些特殊应用场景时还是无法满足,这时就可以考虑下创建自定义工具.开发人员将自己的逻辑封装为一个工具,直接提供给其他电脑上安装ArcGIS的人员使用 ...

  4. 【ArcGIS自定义脚本工具】利用聚合方法批量生成分辨率降低版本的栅格

    文章目录 一.功能介绍 二.脚本代码 三.工具参数 四.工具界面 五.使用例 5.1.参数设置 5.2.运行结果 5.3.聚合与最近邻重采样的结果对比 系列文章目录: ArcGIS自定义脚本编程 一. ...

  5. 【ArcGIS自定义脚本工具】批量重投影栅格脚本

    文章目录 〇.引言 二.脚本代码 三.工具参数 四.工具界面 〇.引言 本文主要是分享本人在编写ArcGIS自定义脚本的一些经验,内容包括各脚本的界面.代码.设置等.涉及到的大多数脚本针对批处理栅格数 ...

  6. 第三章 ArcGIS Pro创建 python 脚本工具(五)

    其实整个第三章介绍的内容很少,真正的实验步骤,一节左右就可以概述处理,只是原书作者对于基础与一些信息都给了介绍,所以内容才会显得较多.关于新建自定义脚本工具,我觉得简单的来说,步骤就是创建脚本(如何写 ...

  7. 让ArcMap变得更加强大,用python执行地理处理以及编写自定义脚本工具箱

    文章目录 一.用python执行地理处理工具 1.1 例:乘以0.0001 1.2 例:裁剪栅格 1.3 哪里查看调用某工具的代码? 二.用python批量执行地理处理工具 2.1 必需的python ...

  8. ArcGisPro脚本工具【0】——制作你的第一个脚本工具

    本系列以ArcGisPro2.8为例.Pro的脚本采用的python版本是3.X,相比于ArcGis10.X采用的python2.X,有了很大的进步,尤其是对中文字符的支持,可以避免很多奇怪的bug. ...

  9. 全志A33,制作生成boot.img脚本工具

    在内核目录执行make zImage,在内核中生成了zImage文件,开发中,是通过烧写boot.img文件,即zImage+rootfs文件:所以需要制作boot.img文件 一.查找生成boot. ...

最新文章

  1. Android 使用adb 命令截图 的方法
  2. BootStrap学习(6)_模态框
  3. .NET编程-----------------------Web.config配置文件详解
  4. 基于live555的视频直播 DM368IPNC RTSP分析
  5. MySQL二进制日志操作
  6. Linux “百变”秀:今天 Windows 95,明天 Mac OS 9
  7. 《黑客与画家》 读书笔记
  8. Oracle查看表空间及使用情况
  9. 机房报表错误-没有分配到需要的内存
  10. HTML背景颜色为什么改变不了,css背景颜色不显示怎么解决
  11. 7 21 第一次团队赛——————写给队友
  12. 分门别类刷leetcode——二叉查找树(C++实现)
  13. 元宇宙GOD新纪元打通元宇宙
  14. 自定义一个可滑动时间刻度尺
  15. 对敏捷教练职业发展的一点思考
  16. Altium Designer 18板子信息命令
  17. 关于小学和哥哥买零食的琐碎回忆
  18. matlab控制理论学习
  19. JUC多线程并发编程
  20. Java中生产者和消费者总结

热门文章

  1. c java 字节流_Java 学习(23)---(IO流之字节流)
  2. THREEJS - 动态标签(texture纹理方式)
  3. 神舟刷蓝天w650dbios_在DOS中给神舟蓝天刷EC和BIOS的通用方法【AMI】
  4. nginx 接收报文_Nginx代理缓存功能
  5. C# NPOI(xlsx相关操作)
  6. JVM常见的七种垃圾收集器的简单比较
  7. Leecode-2 Add Two Numbers
  8. linux进程管理——进程管理相关命令
  9. 前端知识 | React Native手势响应浅析
  10. 2017年浙江中医药大学大学生程序设计竞赛(重现赛)D - CC的神奇背包