笑谈ArcToolbox (3) ArcToolbox的一亩三分地
笑谈ArcToolbox (3) ArcToolbox的一亩三分地
by 李远祥
每个人都会有一些鲜为人知的小秘密,都有着不允许别人染指的一亩三分地。软件是人编写的,当然也会给它留有自己所拥有的一亩三分地。ArcToolbox也不例外,而它的一亩三分地就是【环境设置】。
“环境变量”这个词干IT的人一点都不陌生,特别是那些搞Java和Linux环境的人,一不小心就被“环境变量”给搞了。ArcToolbox里面的【环境设置】其实有点像环境变量设置一样,都是作为一个执行前的一些预设。很多人在使用ArcToolbox的时候都不去设置环境,并不代表工具的使用就不需要特定的环境,而恰好相反,每一个工具在其调用执行的时候都会检查设定的环境,然后才真正运行起来。环境的设置对结果的影响是非常大的。所以,还是像那句诗:
你设,还是不设
环境设置都在那里
不增不减
那么,我们还是抱着好事的态度多问一句,在ArcToolbox里面到底有多少环境设置呢?还是照旧,打开帮助,检索一下“环境设置”关键字。帮助会帮我们罗列出大量的条目,其实跟没有检索差不多。因为每个工具里面都是带有【环境设置】 O(∩_∩)O哈哈~
既然传统的检索方式不能出满意的结果,那么我们将继续使用更加传统的方式--打开工具帮助。还记得上一章节《笑谈ArcToolbox (2) 开启ArcToolbox的钥匙》中查看工具帮助吗?其实在工具双击打开之后,除了【确定】【取消】【显示帮助】之外,还有就是【环境】按钮。点击这个按钮,就直接进入到【环境设置】界面中了。笔者是个非常传统的中国男人,所以,还是使用传统的方式,点开【显示帮助】。首先看到的就是一系列的环境设置的选项,然后帮助显示的就是如梵音一样的看不懂的说明,如下图
最功利的做法就是多点开几个不同的工具,看看其选项。看了以后基本上就可以放心了,因为环境设置的选项都是大同小异,都是有限的几项,也就是可以用有限的精力去研究有限的设置了,这真是想起来都会笑醒。
再来看这个帮助关于环境设置的第一段话,毕竟能够在每个工具里面都同样出现的文字,要不就是非常重要的,要不就是程序员脑袋抽风了。这显然是属于前者。接下来且看第一段……,由于在环境配置这个帮助面板中无法使用ctr+c 和ctr+v ,笔者就不黏贴该段文字,那就且看上图吧。上图第一段不外乎是想表达环境设置是有等级的,就像猿类写代码声明了一个变量一样,有系统全局的,有函数内的,有过程内部的,总之,就是一个作用域的问题。
环境设置有四个级别:
- 应用程序级别设置是默认设置,执行任何工具时均应用该设置。
- 工具级别设置适用于工具的单次运行并且会覆盖应用程序级别设置。
- 模型级别设置使用某种模式指定和保存,并且会覆盖工具级别设置和应用程序级别设置。
- 模型过程级别设置在模型过程级别指定,随模型一起保存,并且会覆盖模型级别设置。
上面列出四个环境设置的等级。第一个是作用于整个ArcMap的,第二个是作用于具体某个工具的,第三个第四个就是作用在模型中(就是使用modelbuilder创建的模型工具)。我们先来看前面两个。
应用程序级别的就是作用在ArcMap中的设置。虽然帮助中没明确告诉我们在哪里可以设置,但它肯定是有默认设置的,只是我们暂时没找到而已。要找打它不难,多点击一下软件的其他位置就行了。其实收藏得并不深,直接在【地理处理】下拉菜单就能找到。
而这里的环境设置跟具体某个工具的设置是一样,都包含了工作空间、输出坐标、处理范围、栅格存储、制图、并行处理等,只是其作用域不一样而已。如下图所示。
点开【工作空间】,可以看到这里默认设置一个数据存储的gdb,而这个gdb恰好就是ArcGIS软件默认保存数据的地方,如下图
所以,如果在使用某个工具去进行操作的时候,数据会默认写到这个默认数据库中。而如果这个配置修改了之后,就在ArcMap中执行工具,就会写到其他指定目录的数据。例如C盘空间比较紧缺,那就将这个默认数据库指向到其他充足空间的分区吧。而这个设置,所谓的应用程序级别,其实就是作用于某一个mxd文档,在该文档打开的情况下调用所有的工具都会默认将数据写到该工作空间中。它会随着地图文档保存而将这个配置保存下来。如果是新建的文档或者其他文档,还是会使用默认的设置,则不受到影响。
第二个级别就是工具级别了,只会作用在当前使用的这个工具,其他工具还是会读取应用程序级别的设置。例如做了一次裁剪,更改了裁剪工具的环境,但下次执行同样的裁剪工具,就不会继续使用上一次的环境了。
模型级别也是类似于工具级别的作用于,模型里面的用到的工具同样也保留自己单独的环境设置。这就是整个环境设置的级别了。
除了不同的级别之外,环境设置会影响到执行的结果。例如在环境设置中有一个处理范围,那么这个处理范围默认的就是操作处理这个数据的最大矩形区域,一般叫做extent 。一般情况都不用单独设置这些范围,但既然存在,肯定有合理的地方。例如做插值分析,不设置范围的话,结果只会显示采样点的具体范围,而我们更加需要的是这些采样点的结果覆盖整个行政区域。下图就是使用idw插值的时候没有设置环境里面的处理范围,所以其结果区域只覆盖采样点的整体范围
显然这不是我们想要的结果,所以,经过调整之后,在执行同样的idw操作,利用行政边界图层作为其处理范围,结果就完全不一样了。
同时也可以在栅格分析的结果中使用掩膜,同样设置为行政边界
工具执行之后,可以看到最终的结果如下
通过了环境设置,这里限制了工具处理的范围,并且在最终的结果输出使用了掩膜,实现结果的边界裁剪。而这些设置,在工具界面的参数是不存在的。所以,ArcToolbox的这一亩三分地非常重要,直接影响到整个分析和处理的结果,在使用过程中一定要肾重啊O(∩_∩)O哈哈~
笑谈ArcToolbox (3) ArcToolbox的一亩三分地的更多相关文章
- 笑谈ArcToolbox (1) ArcToolbox 的发展方向
笑谈ArcToolbox (1) ArcToolbox 的发展方向 by 李远祥 ArcGIS工具箱ArcToolbox具有非常多的工具,相信用过的人都非常惊叹,其功能完备并且强大,种类繁多,总能找到 ...
- Android应用性能优化(转)
人类大脑与眼睛对一个画面的连贯性感知其实是有一个界限的,譬如我们看电影会觉得画面很自然连贯(帧率为24fps),用手机当然也需要感知屏幕操作的连贯性(尤其是动画过度),所以Android索性就把达到这 ...
- 《Python Web 接口开发与测试》---即将出版
为什么要出这样一本书? 首先,今年我有不少工作是跟接口自动化相关的,工作中的接口自动化颇有成效. 我一直是一个没有测试大格局的人,在各种移动测试技术爆发的这一年,我却默默耕耘着自己的一亩三分地儿(We ...
- Linux学习笔记1_用户和权限
自从我大微软终于放下身段,决定给开源社区一个迟来的拥抱,追随多年的拥趸们像是突然得到了女神的垂青,各种茫然失措.痛哭流涕.欢欣鼓舞,纷纷唱了起来:“等了好久终于等到今天,梦了好久终于把梦实现……”唱完 ...
- 《InsideUE4》-10-GamePlay架构(九)GameInstance
一人之下,万人之上 引言 上篇我们讲到了UE在World之上,继续抽象出了Player的概念,包含了本地的ULocalPlayer和网络的UNetConnection,并以此创建出了World中的Pl ...
- 常见linux命令释义(第八天)—— Bash Shell 的操作环境
换了新公司,公司的领导很不错.自己感受比较多的地方是,自己的工作效率明显比以前高了.以前会对频繁变动的需求十分不耐烦,现在接到需求后会仔细的思考,进行整体构建.即使以后需求有变动,也能够比较轻易的在原 ...
- NODE.JS学习的常见误区及四大名著
NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang ...
- arcmap Command
The information in this document is useful if you are trying to programmatically find a built-in com ...
- 《转》---google面经
我面的职位是Softwre Engineer, Tools and Infrastracture, 所以开发和测试的问题都会问到 Phone interview 1:白人小哥.给一个Interval的 ...
随机推荐
- Javascript Fromdata 与jQuery 实现Ajax文件上传以及文件的删除
前端HTML代码: <!DOCTYPE html> <html> <head> <title>ajax</title> <script ...
- (中等) HDU 1828 Picture,扫描线。
Problem Description A number of rectangular posters, photographs and other pictures of the same shap ...
- Mybatis3.2.1整合Spring3.1
Mybatis3.2.1整合Spring3.1 根 据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对 Mybatis ...
- SGU 194 Reactor Cooling ——网络流
[题目分析] 无源汇上下界可行流. 上下界网络流的问题可以参考这里.↓ http://www.cnblogs.com/kane0526/archive/2013/04/05/3001108.html ...
- sgu176 Flow Construction【有源汇有上下界最小流】
同样是模板题. 首先将有源汇转换为无源汇,假设原来的源汇为st,我们加入的源汇为ST,那么我们应该从t到s连一条流量为+∞的边,使原来的st满足收支平衡,退化为普通节点. 分离必要边和其他边,从S到T ...
- HIDKomponente使用读写Hid设备(转)
源:HIDKomponente使用读写Hid设备一瞥 HIDKomponente 是delphi中使用的第三方Hid控件库,可以检测.控制连接到电脑的Hid设备.一般情况下多为usb设备. HIDKo ...
- WebService调用权限验证 SoapHeader
一般在项目中,制作的都是基于SOAP协议的webservices,其描述语言是WSDL.但是有时候在项目中,需要保证webservices的安全,需要对其进行进行验证,那么我们就要实现SoapHead ...
- IOS开发-UI学习-使用代码创建button
使用代码创建button分5个步骤,分别是: 1.定义一个按钮,根据定义位置不同可定义为局部变量或者全局变量: 2.初始化按钮,一般使用一个矩形初始化: 3.设置按钮控件的其他属性,如背景图片,或者背 ...
- UVa 10551 - Basic Remains
题目大意:关于大数的mod和进制转换,直接使用Java的BigInteger类,正在copy式学习中... import java.io.*; import java.util.*; import j ...
- Motion-Based Multiple Object Tracking
kalman filter tracking... %% Motion-Based Multiple Object Tracking % This example shows how to perfo ...