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自定义脚本工具制作的更多相关文章
- 使用自定义脚本扩展程序自动执行 VM 自定义任务
在 Build 开发者大会上推出VM 扩展程序的其中一个称为"自定义脚本扩展程序",它支持 PowerShell.如果这是您第一次访问这些博客,可能需要查看以前的博客,请单击 ...
- 开始你的第一个npm脚本工具
在实际开发中,一般刚开始一个项目或者刚接手一个项目,我们会运行 npm install 下载安装所有依赖, 在实际开发中,可能也会使用各种命令行-- 来提高我们开发的效率. 与它相处了这么久,你真的了 ...
- 自动化工具制作PASCAL VOC 数据集
自动化工具制作PASCAL VOC 数据集 1. VOC的格式 VOC主要有三个重要的文件夹:Annotations.ImageSets和JPEGImages JPEGImages 文件夹 该文件 ...
- DOS版PE工具制作
// PE.cpp : 定义控制台应用程序的入口点. //DOS版PE工具制作 #include "stdafx.h" #include <windows.h> #in ...
- xmake从入门到精通12:通过自定义脚本实现更灵活地配置
xmake是一个基于Lua的轻量级现代化c/c++的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验. 本文主要详细讲解下,如何通过添加自定义的脚本,在脚 ...
- ExcelWeb脚本助手,自定义脚本,批量操作Excel与网页
ExcelWeb脚本助手,是一款可以自定义脚本操控Excel和浏览器的工具.提供了简单实用的Excel与Browser的API调用,通过自建脚本或自建项目,随意定制. 可以非常方便的根据Excel中的 ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像
在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下然后用OZ工具制作openstack ...
- ArcGIS使用Python脚本工具
在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用.在ArcGIS中可以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了.这里用按要素裁剪栅格的Python来 ...
- WPF ScrollViewer(滚动条) 自定义样式表制作 再发一套样式 细节优化
艾尼路 出的效果图 本人嵌套 WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂 WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化) 源代码
随机推荐
- SPOJ 3693 Maximum Sum(水题,记录区间第一大和第二大数)
#include <iostream> #include <stdio.h> #include <algorithm> #define lson rt<< ...
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
- jvm垃圾回收的时间问题
1.系统崩溃前的一些现象: 每次垃圾回收的时间越来越长,由之前的10ms延长到50ms左右,FullGC的时间也有之前的0.5s延长到4.5s FullGC的次数越来越多,最频繁时隔不到1分钟就进行一 ...
- mysql外键详解
1.1.MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引.用于外键关系的字段必须在所有的参 ...
- 微信开发之——Php批量生成带参数的二维码
带参数的二维码对于渠道营销推广来说是很有用的,可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送,可喜的是微信开通了这个接口,那下面就来研究一下吧. 具体接口说明请参见,微信公众平 ...
- 字符编解码的故事–ASCII,ANSI,Unicode,Utf-8区别(转)
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们认为8个开关状态作为原子单位很好,于是他们把这称为”字节”. 再后来,他们又做了一些可以处理这些字节的 ...
- linux用dd测试磁盘速度
[root@localhost ~]# time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file记录了1000000+0 的读入记录了100000 ...
- Hibernate HQL查询的参数绑定
参数绑定: Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: ...
- (sql server)数据分页的实现
谈谈自己了解的几种数据库分页的方法,下面來分享下,有什么好的方法可以指导一下哦.. 方法一:利用ROW_NUMBER()方法 利用ROW_NUMBER 产生序列后直接取出 /*如要查詢的表為Test ...
- eclipse的安装
eclipse的安装只要记住一条就好,那就是eclipse安装的时候版本要一致(就是,安装eclipse 32位的,同时要配套jdk 32位,tomcat 32位的),同理64位的也是一样的. 本人安 ...