ArcGIS制图技巧系列(1)还原真实的植被
ArcGIS制图技巧系列(1)还原真实的植被
by 李远祥
在GIS数据中,植被一般都是面装要素的形式存在。很多人在使用植被渲染的时候,一般会采用填充符号去渲染。而在ArcGIS中,填充符号要么就是纯颜色,要么就是规则的渲染如行列距离多少、网状、斜纹等,具体的效果没有什么冲击力,往往达不到“望文生义”的制图效果。例如下图的植被,虽然使用了较为柔和的绿色去表达,图面没明显的违和感,但看起来未免有些单调。
制图是一个需要想象力的工作,我们只要在这个框架之下,发挥一下想象力,尽可能与实际情况还原或者相近,那就可以将绿地表现得淋漓尽致了。例如,我们在城市里面见到最多的成片的绿地,一般是公园里的绿地,这些绿地都是有一定的规律的,就是不是纯粹的草地,一般是草地上种上一些低矮的小灌丛,或是一两棵树。我们最希望出现的可能是下面的这种效果
有了这个想象力之后,那我们就可以做“无米之炊”。首先我们需要有这些灌丛或者树木的数据,这是个最基本的核心问题。那这些数据怎么来?难道要到现场去采集吗?制图工作的一个非常大的原则就是尽可能不增加数据的采集成本。其实没有人关心这些小灌丛和小树木是否落在真实的位置,也没有人真的关心它们的数量是否正确,只要这些小树在草地上一站,我们就能直观的认出这些绿地的类型了。这些小灌丛和小树木就是我们所说的制图上的“点睛之笔”。
现在的目标已经非常明确了,我们还需要一步就能突破这一张平凡的地图,就是从绿地中生成出这些无序的大小不一的植被点。这个工作需要相当丰富的制图经验的技术人员才可以顺利的参悟。首先看几个规则:
植被点不能超出植被面的范围。
植被点是位置随机的
植被点是大小随机的
植被点的符号是随机参杂的
这些所谓的规则,其实就是我们对这个制图效果的分解。在制作之前,心里面必须先有这么一张制作好的地图。然后才是每一个规则分别用技术来实现。
针对第一条规则,植被点不能超出植被范围,这个是一个常识性的隐藏条件。但由于GIS制作的地图符号和数据是分开的,那么,我们必须考虑这些植被点被赋予符号后是否会超出其边界。我们的做法非常简单粗暴,直接估算一下符号最大值时在当前比例下大约占多少地理距离。例如当前比例下,符号使用30大小,占用的大约为50米,那么,可以使用缓冲区工具来做一个往内收缩的缓冲区,呼喊冲的距离应该大于符号的二分之一,在这个场景中换算一下,就是不能小于25米。由于做的是内缓冲,因此,需要使用一个负数来作为参数。
将生成缓冲后的植被加入到地图中看看效果,边界上明显做了收缩,这就是我们需要的效果。
接下来就是针对第二条规则,植被点是随机放置在植被面内的。那么,我们就需要针对这个缓冲区生成一些随机位置的点数据。好在,这些数据不需要我们手动去编辑,ArcGIS在工具象里面有生成随机点的工具。如果不清楚工具在哪里,可以在菜单上【窗口】--【搜索】,然后检索关键字【随机点】,如图
点击搜索结果,弹出对应的工具。输入名称,约所范围必须指定为做过内缓冲的植被面,为了有更好的效果,我们可以根据经验去设置一个最小的距离,这样不至于植被点过密。
将生成的点加载到地图,目前看到的只是非常丑陋的数据,我们还需要给这个数据穿上漂亮的外衣。那就需要继续分解规则。
第三条规则就是植被点是大小随机的。那么这个大小随机的设置就涉及到符号的大小了。ArcMap在符号设置有有比较深层次的渲染隐藏,一般要转得比较深才能发现。我们先给这个点图层应用一个比较漂亮的符号,默认的单一符号都是同等大小的,如下图
那接下来需要进行深层次的改造。在【图层】--【属性】--【符号系统】--【单一符号】--【高级】选项下面,选择大小
然后设置随机大小的两个值,一个是最小值一个是最大值。这里的最大值就跟第一步里面的缓冲范围有关了。我们之所以要做内缓冲,就是担心这些点在半个符号大小的时候刚好越界,所以做内缓冲设计好了适当的距离。
点击确定之后,整体的效果就基本上出来了。这时其实就可以将内缓冲这个图层移除掉了,因为它只是做约束性的生成数据,不参与地图的显示,如下图所示
现在还需要更进一步的就是,现实环境绝对不可能是单一的植被,那么植被的多样性怎么处理。其实答案早已经在大家心中了。这就是第四条规则分解,植被点的符号是随机参杂的。那么我们只需要重复一下第二和第三步,然后在第三步中选择不同的符号即可完成。这里就不再多论述了。
为了减少所有的这些工作量,作者根据这些GIS制图的特性专门制作了一个快速制图插件,其中一个功能便是生成植被填充。通过简单的一步设置就可以实现该功能。
具体的介绍可以参考博文 http://blog.csdn.net/liyuanxiang1984/article/details/52774293 工具也提供下载,可以到 http://blog.csdn.net/liyuanxiang1984/article/details/52774297
ArcGIS制图技巧系列(1)还原真实的植被的更多相关文章
- ArcGIS制图技巧系列(2)地形渲染
ArcGIS制图技巧系列(2)地形渲染 by 李远祥 DEM数据是常见的地形数据,在GIS常规的制图中,DEM一直扮演着增强效果.由于带有高程值,DEM在很多情况下都在三维中显示,但这里主要介绍的是在 ...
- ArcGIS制图技巧系列(3)—让地图更有立体感
ArcGIS制图技巧系列(3)-让地图更有立体感 by 李远祥 在前面的章节中,我们已经介绍过各种的地图效果,如发光效果,山体阴影效果,植被填充效果等,所有的这些效果不外乎是各种技术的叠加和技巧的使用 ...
- (转)ArcGIS制图技巧
ArcGIS制图技巧(转载自新浪博客) 1 引言 1.1 制图的目的 随着GIS在各行各业的深入应用,各信息化部门和生产单位都逐渐建立起自己的GIS的应用,同时积累了大量的地理数据.随着应用深 ...
- ArcGIS制图表达Representation-制图表达介绍
ArcGIS制图表达技术-制图表达介绍 by 李远祥 在基于GIS数据的制图中,大部分都是使用的数据+符号应用的这种模式.这种模式已经被应用很多年,而且也是非常成熟.对应在ArcGIS体系里面,就是数 ...
- ArcGIS制图表达Representation实战篇4-自由式制图表达
ArcGIS制图表达Representation实战篇4-自由式制图表达 by 李远祥 上一章节关于制图表达的控制点中已经介绍过制图表达的编辑功能,利用制图表达的编辑功能,可以实现一些规则以外的效果. ...
- ArcGIS制图表达Representation实战篇1-边界线和行道树制作
ArcGIS制图表达Representation实战篇1-边界线和行道树制作 by 李远祥 即便是有了一些制图表达的基础,很多人还是对ArcGIS制图表达理解停留在表面,因为没有实际的强化训练是很难体 ...
- ArcGIS制图表达Representation-制图表达原理
ArcGIS制图表达技术-制图表达原理 by 李远祥 在讲述原理之前,需要对上一章内容进行一些必要的补充说明.既然制图表达有很多优势,是不是什么情况下都可以使用制图表达技术呢?如果有以下的一些特殊的要 ...
- iOS开发技巧系列---详解KVC(我告诉你KVC的一切)
KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需 ...
- 【ArcGIS Server 开发系列】Flyingis六大系列讲座精品PDF奉献
转自:http://www.cnblogs.com/gispeng/archive/2008/07/24/1250116.html [ArcGIS Server 开发系列]Flyingis六大系列讲座 ...
随机推荐
- 不同版本的mysql字符集的默认编写
原来在5.1版本时,为了解决中文乱码问题设置默认字符集为utf8时,在my.ini内的 [mysql] 和 [mysqld] 项中都是写: default-character-set=utf8 到了5 ...
- 《算法导论》归并排序----merge-sort
伪代码请见<算法导论>2.3节 merge-sort实现: public class MergeSort { public static void sort(double [ ...
- 编译时.test文件报错无法解决的方法,关闭test编译
有几次遇到从网上下载到的iOS开源代码编译报错,报错位置为Test Target的源文件,我就挺奇怪我又没做测试为啥会编译Test Target的源文件,之前的暴力解决方法是把Test Target直 ...
- iOS正则表达式 分类: ios技术 2015-07-14 14:00 35人阅读 评论(0) 收藏
一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...
- 【转】Linux 上的最佳 C/C++ IDE
IDE介绍收藏篇: 个人linux下开发经验不多,一般也都使用shell远程连接使用命令行模式开发.如果自己在自己机器上开发还是有IDE要方便很多,看到这篇帖子就果断的转过来先收藏下,之前自己使用过E ...
- jquery遍历二维数组
function eachTowArray() { var ar = [[1,2,3],[4,5,6],[7,8,9]]; var result=""; //结果存放变量 ...
- C# new和override的区别
浅析C# new和override的区别 C#中new和override是继承中经常用到的两个关键字,但是往往有时候容易把这两个关键字的作用搞混淆. new C# new关键字表示隐藏,是指加上new ...
- MAC + java 环境配置
1. 下载安装 jdk 2. 配置环境 2.1. cd到目录 etc/profile 2.2. 使文件可读:chmod 666 profile model 2.3. 添加环境变量,要切换到etc目录: ...
- 搭建自己的BT下载平台服务器
[原理基础] BT(Bit Torren比特流)是由国外的一名叫Bram Cohen的程序员开发的下载软件,可以说它是目前网络是非常流行的一个多点下载的P2P软件,它最显著的特点就是:下载的人越多,速 ...
- C语言的指针使用
今天老师总结了一下指针内容,感觉对理解指针有帮助, 1.大家在使用指针的时候容易忽略掉指针所在的位置. 假如定义一个变量int a=10: int *p: p=&a; //p中存放变量 ...