笑谈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
加入之后,点击【为新项目建立索引】,如下图,几十秒之后,就可以完成所有的索引,之后就可以开心查找了
接下来的事情,就是从实际出发,使用工具去解决问题了。