笑谈ArcToolbox (2) 开启ArcToolbox的钥匙

by 李远祥

GIS人遇到ArcToolbox就像找到了宝藏一样兴奋,但并不是每个找到宝藏的人都具备开启宝藏的钥匙。有时候功能强大并不见得就是一件好事,在面对上千个工具的时候,很多人尤其是GIS初学者都会无所适从。有句俗语说,人对未知的事物会心生恐惧。但也有一句老话说,无知则无畏。对于哲人来说,话怎么说都是好对的。所以,我们不妨静下心来看看,这ArcToolbox到底有多难,或者说到底有多容易。

1.查家底

ArcToolbox到底有多少个工具?有一些好奇的初学者一般都会想一下这个问题。作为一个GIS的老司机,我只能引用一句歌词来说明:不要问我星星有几颗,我会告诉你很多很多! 打开ArcMap软件,展开工具箱一看,分门别类,齐齐整整的罗列出来,光是一级根目录就有以下十几种,每一级展开还将会有更多。

也许会有好事者会追问,那到底有多少,总归有个数吧。是的,就算是天上的繁星,每天都有星体爆炸和湮灭,也总该有个数的。但这总不能点开来数数吧。好吧,虽然我也没数过,但可以凭借一些经验的做法去快速查它的家底。

老司机应该都知道,每一个tool都有自己的一个arcpy调用方式,这也是ArcGIS强大的一个特点。既然是这样,我们就可以通过一些非常规的手段去探知。如果是Python的老程序员,对程序敏感的,很容易就找出来。到ArcGIS Desktop的安装目录下,找到arcpy的目录,大概是这样 :\Program Files (x86)\ArcGIS\Desktop10.4\arcpy\arcpy  这就是arcpy包所在的位置。直接找到这个目录下的一个toolbox.py 文件。用notepad++打开,不要问我为什么要用notepad++打开,因为我很懒,不想去数。

看,这就是绝世武功的目录!展开这个文件,可以看到arcpy导入每一个工具。拖拽到最底下,通过notepad++的行号可以看到总共的行数为787,(我统计的版本是ArcGIS10.4.1),扣除掉前面有14行Python注释,那在arcpy的这个工具列表里就是773 了。看起来好像好牛掰的样子O(∩_∩)O哈哈~

但作为一个老司机,问路就得多问几个人,不然还是会被指着绕圈圈的。既然我们要用的是ArcToolbox的工具,那由于arcpy是没有人桌面还是server的,原则上列出来的应该是的desktop、engine和server共有的部分。那么到底desktop 里面有多少可以用?好吧,不要欺负老司机了,乱指路是不文明的行径,我们得用科学的方法去查家底(就像韦小宝抄鳌拜家跟多隆说的那样,我生平最痛恨那些“穿柜桶底”的人)。所以,我们可以打开ArcMap,勇气Python窗口中用命令来查看

在命令窗口中输入 arcpy.ListTools() ,会返回整个工具列表,这是arcpy里面最真实的罗列了。如下图

这是一个数组,猿类可以用Python的语句来查看数据的长度  例如 len(arcpy.ListTools()) ,然后可以看到返回一个真实的数值

没错,就是909个,没有想象中的那么多吧。以前笔者一直认为ArcToolbox工具少说也有两千个,心生畏惧啊。可现在一看,才909个,学习的工作量顿时下降了一半,听起来好像是个好消息。但十多年下来,笔者真正能够接触并进入使用的,大概500个。这已经是工作的特殊性决定的了。估计一般人常用的大概也就是一百来个工具吧。

2.工具使用

在ArcMap最容易的不外乎是调用工具箱的工具了,最难的也莫过于使用工具箱工具了。对于工具,很多人似乎都停留在双击调用的想法中。其实ArcToolbox工具的使用是有一定的限制的。先不说工具的参数吧,先来看工具的前提条件。双击调用任何的工具,都可以其参数,如果没有任何的帮助,估计但从这些晦涩的提示文本,很多人都不清楚工具能做什么,该输入些什么。

这里面就有一些窍门了。可以点击最底下的【显示帮助】按钮,这样光标定位在任何一个参数输入框,都可以得到对应的提示,如果点击的是工具的标题栏部分,就会直接显示工具的整体帮助,如下图

点击【工具帮助】按钮,可以快速定位到整个工具的帮助中去,这是一种快速了解工具的途径。老司机们都是这样干的,因为这样非常简单粗暴的进入到工具的帮助当中。ArcGIS的帮助是非常强大的,尤其现在是从10.0版本开始具备中文帮助。几乎每个工具的帮助中都可以看到有一个【许可等级】的说明,这样我们就可以知道当前使用的ArcGIS软件版本是否支持该工具了。例如下图就是说明擦除工具只有桌面高级版才能使用。

当然,有时候这一招也不是通吃的,有些工具不一定会显示许可等级。遇到这种情况,笔者一般就是默默的切换到英文帮助,对,就是英文帮助,它还是会列出这个授权等级的。所以,当看不懂中文帮助的时候,请看英文帮助。O(∩_∩)O哈哈~

3.检索工具

人经常会存在一种感觉,例如菜太多的时候就不知道该怎么吃饭了。同样的道理,工具太多,有时候还真的不知道该怎么使用。最起码也得知道到底有什么工具,这些功能能做什么。一个一个去查看和学习,显示是行不通的,因为不是每个工具都适合于每个人。ArcGIS是通用的软件,所以也不存在针对某个行业使用特殊的术语。所以,这个时候关键字就很重要。最常用的方法当然是百度了。但当面对各种各样的【路边社】的说法时,也是让人无法适从。所以,合理使用软件的帮助。例如要做一个裁剪工作,那可以在工具帮助中输入裁剪二字,这样关于裁剪的一系列关键字就出来了。

当然了,这个还是不能迅速定位到对应的工具,只是在门外看看到底有什么裁剪的说明。如果想直接看看工具中有没有以【裁剪】二字命名的,可以直接在【搜索】窗口中进行查找。这是从10.0版本开始引入的一个窗口,非常好用。

也有人在使用这个搜索窗口没搜到任何的关键字的,那是因为软件刚安装,arcgis软件有个index的索引进程开启,需要一段时间才会检索到工具箱去。某些优化软件会在一开始的时候就将其“优化”掉。笔者也不喜欢这个进程在后台运行,所以也是一开始就将其杀掉,然后马上露上一手,在【搜索】窗口,搜索选项中将ArcToolbox的目录位置加入其中。ArcToolbox的位置在 :\Program Files (x86)\ArcGIS\Desktop10.4\ArcToolbox\Toolboxes

加入之后,点击【为新项目建立索引】,如下图,几十秒之后,就可以完成所有的索引,之后就可以开心查找了

接下来的事情,就是从实际出发,使用工具去解决问题了。

笑谈ArcToolbox (2) 开启ArcToolbox的钥匙的更多相关文章

  1. 笑谈ArcToolbox (3) ArcToolbox的一亩三分地

    笑谈ArcToolbox (3) ArcToolbox的一亩三分地 by 李远祥 每个人都会有一些鲜为人知的小秘密,都有着不允许别人染指的一亩三分地.软件是人编写的,当然也会给它留有自己所拥有的一亩三 ...

  2. (一)C#编程基础复习——开启编程之旅

    回想当年学习编程,刚开始学习是非常艰苦的,可能是因为文科生原因,刚开始接触工科类的知识不是很擅长,上去大学第一年基本没有好好学习编程,入门C#编程基础一窍不通,也许那时年少无知,第二学期开始奋发图强, ...

  3. OpenStack中Keystone的基本概念理解

    原文http://www.kankanews.com/ICkengine/archives/10788.shtml Keystone简介 Keystone(OpenStack Identity Ser ...

  4. 通过mysql命令行理解mysql

    引言:工具不可谓给我们的生活带来了便利,但有些时候我们却忘记了事物本身的意义.在大多数人都在追捧甚至是盲从各种各样的工具有多先进的时候,你是否有反思过:你目前是否有使用它的资格. 假设你学会了使用一款 ...

  5. Dennis与Ken爷爷的UNIX/C世界

     沉寂了很久了,时间在不断地逝去,转眼又到了新的一年,2013的发生了太多,Beta版本.辞职.职位转换.ARM.Driver.初级厨艺.Dx11.GPU.CPU.登山.GNU/Linux.Cross ...

  6. struts2支持的结果类型

    在struts2-core.jar/struts-default.xml中,我们可以找到关于result-type的一些配置信息,从中可以看出struts2组件默认为我们提供了这 些result-ty ...

  7. Luogu P4707 重返现世

    题目描述 为了打开返回现世的大门,Yopilla 需要制作开启大门的钥匙.Yopilla 所在的迷失大陆有 \(n\) 种原料,只需要集齐任意 \(k\) 种,就可以开始制作. Yopilla 来到了 ...

  8. Unix传奇

    转自 http://coolshell.cn/articles/2322.html 了解过去,我们才能知其然,更知所以然.总结过去,我们才会知道我们明天该如何去规划,该如何去走.在时间的滚轮中,许许多 ...

  9. [原]Openstack之identity server(keystone)

    本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. 重新温习keystone的概念和理解 --------------------- ...

随机推荐

  1. (译)Windsor入门教程---第五部分 添加日志功能

    介绍     现在我们已经有了基础的框架了,是时候添加内容了,那么我们首先应该考虑的就是在应用程序中添加日志功能.我们会使用Windsor来配置,在这一部分,你将学习Windsor之外的其他功能. L ...

  2. c#之从服务器下载压缩包,并解压

    项目的配置文件为了和服务器保持一致,每次打包时都从网上下载配置文件,由于下载的是zip压缩包,还需要解压,代码如下: using ICSharpCode.SharpZipLib.Zip; using ...

  3. CentOS 6.4 x64 zabbix 2.2.2 编译安装

    A. 服务端安装配置 1.下载zabbix 2.x 最新版本 http://www.zabbix.com/download.php 2.安装配置所需要软件(zabbix需要一个lamp环境) 使用 y ...

  4. DIV 和 SPAN 区别

    DIV 和 SPAN 元素最大的特点是默认都没有对元素内的对象进行任何格式化渲染.主要用于应用样式表(共同点). 两者最明显的区别在于DIV是块元素,而SPAN是行内元素(也译作内嵌元素). 详解:1 ...

  5. matlab获取向量中出现次数最多的元素

    向量X 1. tabulate(X) 返回一个矩阵:第一列为元素值,第二列为相应元素出现个数,第三列为相应元素个数占所有元素个数百分比 table = tabulate(X); %获取出现次数最多的元 ...

  6. iOS开发——工厂模式

    工厂模式很好用,为表诚意,我直接搞个实用的例子放这,解析一个订单的数据,并且这个订单里面可能不止一件商品的做法. 还是直接上代码,不懂的地方,再提出来. 1.在MyOrderDeals.h文件中 #i ...

  7. iOS开发之监听键盘高度的变化 分类: ios技术 2015-04-21 12:04 233人阅读 评论(0) 收藏

    最近做的项目中,有一个类似微博中的评论转发功能,屏幕底端有一个输入框用textView来做,当textView成为第一响应者的时候它的Y值随着键盘高度的改变而改变,保证textView紧贴着键盘,但又 ...

  8. Elasticsearch的使用场景深入详解

    了解了ES的使用场景,ES的研究.使用.推广才更有价值和意义. 1.场景-:使用Elasticsearch作为主要的后端 传统项目中,搜索引擎是部署在成熟的数据存储的顶部,以提供快速且相关的搜索能力. ...

  9. beamer中插入c代码,python代码的经验

    下面是插入的scala代码,它与python在某些语法上类似,所在在https://github.com/olivierverdier/python-latex-highlighting下载了一个py ...

  10. sublime text2的插件熟悉

    今天加班,开会.于是整理下sublime text的插件. 1.安装了tag插件.负责html的格式化.从百度云下载了文件,放入了插件包的目录下. 2.启用了alignment 快捷键 ctr+alt ...