笑谈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. HUST 1376 Random intersection

    神题.同学指教.1秒AC...http://blog.csdn.net/jtjy568805874/article/details/50724656 #include<cstdio> #i ...

  2. POJ3723最小生成树

    题意:从一个起点出发连接男孩子和女孩子,若是两者之间有连接的,则花费为10000-d,若是没有连接的则花费为10000 分析:很显然是一个最小生成树,但是我们希望的是d越大越好,因为d越大,10000 ...

  3. CSS3 Media Queries 详解

    说起CSS3的新特性,就不得不提到 Media Queries .最近 Max Design 更新的一个泛读列表里,赫然就有关于 Media Queries 的文章.同时位列其中的也有前天我刚刚翻译的 ...

  4. 【转】聊聊HTTPS和SSL/TLS协议

    要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识.1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接 ...

  5. vs生成解决方案错误无法将文件“xx.*”复制到xx.*”。对路径“bin\xx.*”的访问被拒绝

    使用vs2008生成解决方案时出现的问题: 无法将文件“obj\xx.*”复制到“bin\xx.*”.对路径“bin\xx.*”的访问被拒绝 解决方法: 将*.dll的只读属性去掉(在windows对 ...

  6. OpenGL ES

    前言 OpenGL ES是Khronos Group创建的一系列API中的一种(官方组织是:http://www.khronos.org/).在桌面计算机上有两套标准的 3DAPI:Direct3D和 ...

  7. mongodb 导入数据库文件

    吐槽一下:  这个导入现有数据文件弱爆了... 直接将要导入的数据文件放到mongodb下的db目录下就完事了...O(∩_∩)O哈哈~ 例如: 将shop_suning (shopdb_suning ...

  8. Struts2---Result(传统Web应用程序与Ajax应用程序的异同)

    看了很久的struts,在视频和书的引导下,慢慢明白了点,推荐:<struts 2 in action>和马士兵的视频 今天看结果这块时,由于还没有学过ajax等,不太明白,但是必须弄懂嗒 ...

  9. 为什么建立TCP连接需要三次握手,为什么断开TCP连接需要四次握手,TIME_WAIT状态的意义

    为什么建立TCP连接需要三次握手? 原因:为了应对网络中存在的延迟的重复数组的问题 例子: 假设client发起连接的连接请求报文段在网络中没有丢失,而是在某个网络节点长时间滞留了,导致延迟到达ser ...

  10. HUSTOJ 2796 && SPOJ1811

    传送门:http://begin.lydsy.com/JudgeOnline/problem.php?id=2796 题解:后缀自动机,很裸,但是感觉对后缀自动机还不是特别理解,毕竟我太蒟蒻,等我精通 ...