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

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

by 李远祥

      每个人都会有一些鲜为人知的小秘密,都有着不允许别人染指的一亩三分地。软件是人编写的,当然也会给它留有自己所拥有的一亩三分地。ArcToolbox也不例外,而它的一亩三分地就是【环境设置】。

      “环境变量”这个词干IT的人一点都不陌生,特别是那些搞Java和Linux环境的人,一不小心就被“环境变量”给搞了。ArcToolbox里面的【环境设置】其实有点像环境变量设置一样,都是作为一个执行前的一些预设。很多人在使用ArcToolbox的时候都不去设置环境,并不代表工具的使用就不需要特定的环境,而恰好相反,每一个工具在其调用执行的时候都会检查设定的环境,然后才真正运行起来。环境的设置对结果的影响是非常大的。所以,还是像那句诗:

你设,还是不设

环境设置都在那里

不增不减

 

      那么,我们还是抱着好事的态度多问一句,在ArcToolbox里面到底有多少环境设置呢?还是照旧,打开帮助,检索一下“环境设置”关键字。帮助会帮我们罗列出大量的条目,其实跟没有检索差不多。因为每个工具里面都是带有【环境设置】 O(∩_∩)O哈哈~

image

      既然传统的检索方式不能出满意的结果,那么我们将继续使用更加传统的方式--打开工具帮助。还记得上一章节《笑谈ArcToolbox (2) 开启ArcToolbox的钥匙》中查看工具帮助吗?其实在工具双击打开之后,除了【确定】【取消】【显示帮助】之外,还有就是【环境】按钮。点击这个按钮,就直接进入到【环境设置】界面中了。笔者是个非常传统的中国男人,所以,还是使用传统的方式,点开【显示帮助】。首先看到的就是一系列的环境设置的选项,然后帮助显示的就是如梵音一样的看不懂的说明,如下图

image

      最功利的做法就是多点开几个不同的工具,看看其选项。看了以后基本上就可以放心了,因为环境设置的选项都是大同小异,都是有限的几项,也就是可以用有限的精力去研究有限的设置了,这真是想起来都会笑醒。

      再来看这个帮助关于环境设置的第一段话,毕竟能够在每个工具里面都同样出现的文字,要不就是非常重要的,要不就是程序员脑袋抽风了。这显然是属于前者。接下来且看第一段……,由于在环境配置这个帮助面板中无法使用ctr+c 和ctr+v  ,笔者就不黏贴该段文字,那就且看上图吧。上图第一段不外乎是想表达环境设置是有等级的,就像猿类写代码声明了一个变量一样,有系统全局的,有函数内的,有过程内部的,总之,就是一个作用域的问题。

环境设置有四个级别:

  • 应用程序级别设置是默认设置,执行任何工具时均应用该设置。
  • 工具级别设置适用于工具的单次运行并且会覆盖应用程序级别设置。
  • 模型级别设置使用某种模式指定和保存,并且会覆盖工具级别设置和应用程序级别设置。
  • 模型过程级别设置在模型过程级别指定,随模型一起保存,并且会覆盖模型级别设置。

      上面列出四个环境设置的等级。第一个是作用于整个ArcMap的,第二个是作用于具体某个工具的,第三个第四个就是作用在模型中(就是使用modelbuilder创建的模型工具)。我们先来看前面两个。

      应用程序级别的就是作用在ArcMap中的设置。虽然帮助中没明确告诉我们在哪里可以设置,但它肯定是有默认设置的,只是我们暂时没找到而已。要找打它不难,多点击一下软件的其他位置就行了。其实收藏得并不深,直接在【地理处理】下拉菜单就能找到。

image

      而这里的环境设置跟具体某个工具的设置是一样,都包含了工作空间、输出坐标、处理范围、栅格存储、制图、并行处理等,只是其作用域不一样而已。如下图所示。

image

      点开【工作空间】,可以看到这里默认设置一个数据存储的gdb,而这个gdb恰好就是ArcGIS软件默认保存数据的地方,如下图

image

      所以,如果在使用某个工具去进行操作的时候,数据会默认写到这个默认数据库中。而如果这个配置修改了之后,就在ArcMap中执行工具,就会写到其他指定目录的数据。例如C盘空间比较紧缺,那就将这个默认数据库指向到其他充足空间的分区吧。而这个设置,所谓的应用程序级别,其实就是作用于某一个mxd文档,在该文档打开的情况下调用所有的工具都会默认将数据写到该工作空间中。它会随着地图文档保存而将这个配置保存下来。如果是新建的文档或者其他文档,还是会使用默认的设置,则不受到影响。

      第二个级别就是工具级别了,只会作用在当前使用的这个工具,其他工具还是会读取应用程序级别的设置。例如做了一次裁剪,更改了裁剪工具的环境,但下次执行同样的裁剪工具,就不会继续使用上一次的环境了。

      模型级别也是类似于工具级别的作用于,模型里面的用到的工具同样也保留自己单独的环境设置。这就是整个环境设置的级别了。

 

      除了不同的级别之外,环境设置会影响到执行的结果。例如在环境设置中有一个处理范围,那么这个处理范围默认的就是操作处理这个数据的最大矩形区域,一般叫做extent 。一般情况都不用单独设置这些范围,但既然存在,肯定有合理的地方。例如做插值分析,不设置范围的话,结果只会显示采样点的具体范围,而我们更加需要的是这些采样点的结果覆盖整个行政区域。下图就是使用idw插值的时候没有设置环境里面的处理范围,所以其结果区域只覆盖采样点的整体范围

image

      显然这不是我们想要的结果,所以,经过调整之后,在执行同样的idw操作,利用行政边界图层作为其处理范围,结果就完全不一样了。

image

      同时也可以在栅格分析的结果中使用掩膜,同样设置为行政边界

image

      工具执行之后,可以看到最终的结果如下

image

      通过了环境设置,这里限制了工具处理的范围,并且在最终的结果输出使用了掩膜,实现结果的边界裁剪。而这些设置,在工具界面的参数是不存在的。所以,ArcToolbox的这一亩三分地非常重要,直接影响到整个分析和处理的结果,在使用过程中一定要肾重啊O(∩_∩)O哈哈~

展开阅读全文

Git 实用技巧

11-24
这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值