栅格的显示与渲染

通过前两章的学习,应该对栅格这个东西不那么陌生了。在这一个部分,我们来看看如何展示出栅格数据最美丽的地方,在ArcGIS中栅格的显示与渲染。在进入细节之前,先来看看在ArcGIS中都可以怎样渲染栅格。

针对不同类型的栅格数据,我们可以通过不同的渲染方式将栅格的信息更好的传达出来。在ArcMap中加载栅格后,类似矢量数据,也可以在图层属性的Symbology中进行设置。对于一个单波段的栅格,通常使用最多的是下面这三种方式。

对于一张扫描的纸质线划图,为了更好的进行矢量化,通常我们会对这种1bit的图进行唯一值渲染。这样,不管是用ArcScan或是手工数字化都能够更准确的捕捉到数据。

高程栅格通常则是通黑白色带进行渲染。这样不管是直观的查看,或者是生成山影图后叠加在矢量数据下作为高程效果显示,都可以让人有高低变化的视觉效果。

土地分类栅格数据一般也是使用唯一值渲染,但是在这种情况下就不仅仅是0值和1值,而是根据土地分类的类型进行相应颜色的渲染。这样在看图的时候就可以有一个直观的概念,农业用地占了多大范围,森林占了多大范围等等。

对于分类数据来说,还涉及到一个Color Map的概念,那么这个色彩映射表是做什么用的呢?

色彩映射表(Color Map)

很多情况下,对于土地分类,或是其他的分类结果栅格,对于每一类的渲染颜色都是由标准或是要求的。我们可以直接对每一类对应的栅格值设置对应的RGB的颜色值。将这个色彩表保存下来,就可以类似矢量数据的layer文件一样,应用在别的栅格数据上。

导入导出的按钮见下图:需要注意的是,只有在使用唯一值渲染(Unique Value)的时候,才会有使用色彩映射表的选项。在使用其他方式渲染栅格,例如分类渲染/拉伸渲染,只能通过导入layer文件的方式来获得相同的渲染效果。

这种方式虽然很直观,但是对于某些用户来说,可能拿到手的就是文本格式的色彩定义,在分类种类非常多的情况下,这样一个个设置就非常麻烦了。或者有色彩映射表,但是要设置的栅格数据非常的多,一个个点开也不太实际。有没有省力省心的办法呢?

对于拥有强大的Geoprocessing工具的ArcGIS来说,两步就可以解决这个问题啦。

STEP ONE

我们需要打开一个文本编辑器,然后输入预定义的RGB值,格式为1空格R空格G空格B空格2空格R空格G空格B空格3…..全部输入完成后,保存时将后缀改为.clr。简单一步就可以快速得到色彩映射表。可参见下图

 

STEP TWO

运行GP工具Add Colormap。该工具位于Data Management Tools > Raster > Raster Properties。

对多个数据同时进行批处理就可以通过Batch选项,脚本或者模型来实现了。

注意:如果运行Add Colormap失败,那么就需要检查一下目标图层是否是支持Colormap的数据类型呢?此工具中输入的栅格数据必须是整型值的单波段栅格数据集。只能为像素深度为 16 位(或更少,例如8bit,1bit等)无符号值的单波段栅格数据。某些格式无法与色彩映射表相关联。具体对照表见:

http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#//009t0000000q000000

下周一继续这一章的更新,仅对金字塔感兴趣的筒子,请于下周四回归,继续支持我哈~

栅格那点儿事(四A)---栅格的显示与渲染的更多相关文章

  1. 栅格那点儿事(二)---细看Raster属性

    细看Raster属性 如果你已经看完了上一章,你已经了解了栅格数据是由一个个像元(Cell)按照行列方式构成的,每一个像元都有自己的像元值,并且这些像元值根据栅格类型的不同,可以代表反射值,或高程值, ...

  2. django by example 第四章 dashboard处html无法渲染问题

    描述: 实现django by example 代码时,第四章 dashboard处html无法渲染问题. 此时报错,NoReverseMatch at /account/login/, Error ...

  3. 【小梅哥FPGA进阶教程】第十四章 TFT屏显示图片

    十四.TFT屏显示图片 本文由杭电网友曾凯峰贡献,特此感谢 学习了小梅哥的TFT显示屏驱动设计后,想着在此基础上通过TFT屏显示一张图片,有了这个想法就开始动工了.首先想到是利用FPGA内部ROM存储 ...

  4. Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表

    Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表:  Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述

  5. 栅格那点儿事(四E)

    栅格金字塔   如果上面的部分都已经看过了,那么如何在ArcMap中更好的渲染一个栅格数据你已经知道了.可仅展示好一个栅格数据是不够的,我们还需要知道如何快速的展示一个栅格数据. 讲金字塔之前,先解释 ...

  6. 栅格那点儿事(四D)

    统计值与空值 在上一篇的内容里反复提到了一个统计值.那这个统计值是怎么来的,具体是干嘛用的呢? 统计值主要就是用于栅格数据的显示和重分类,顾名思义就是一个波段中所有像元值的一个统计信息,最大值,最小值 ...

  7. 栅格那点儿事(四C)

    栅格渲染之拉伸(Stretch) 现在我们知道如何在ArcGIS中渲染栅格数据了,但是还有一个常常会碰到的问题,尤其是在使用老版本的ArcGIS的时候,为啥我加了一个栅格数据进来,啥也看不见,是黑色的 ...

  8. 栅格那点儿事(四B)---多波段栅格数据的显示

    多波段栅格数据的显示 我上面说了这么多,可能有的人会觉得平时也根本用不上.自然,说起影像数据,大家接触到对多的就是最最常见的航片或卫片.对于这种栅格数据呢,大多数的场景下,都只需实现一个效果,就是最接 ...

  9. 初学者--bootstrap(四)栅格系统----在路上(8)

    ---------------------------------------栅格系统:是bootstrap提供的响应式布局方式------------------------------------ ...

随机推荐

  1. 浅谈 关于ARC循环引用得问题

    这段时间在研究关于ARC得循环引用导致变量不能释放,在此先介绍一本书英文书: <Pro Multithreading and Memory Management for iOS and OS X ...

  2. linode出现以下报错

    Linode Manager 报错 系统重新安装后 解决办法执行  rm -rf ~/.ssh/known_hosts 再继续执行:ssh root@72.14.189.163

  3. [Maven]How do I tell Maven to use the latest version of a dependency?

    Link: http://stackoverflow.com/questions/30571/how-do-i-tell-maven-to-use-the-latest-version-of-a-de ...

  4. 使用lombok 简化代码

    第一步:添加依赖 第二步:下载 lombok  jar 包 第三步 :打开cmd 命令行 执行命令, -javaagent:lombok.jar -Xbootclasspath/a:lombok.ja ...

  5. C语言中复杂的声明

    C允许用户自定义数据形式. 虽然我们常用一些简单的数据形式,但是根据需要有时候会用到复杂的形式. 那么久会涉及定义一些复杂的声明.定义复杂声明之前,就必须能看懂复杂的声明. 这就需要了解一些规则和约定 ...

  6. System.Collections.Generic.List<T> 与 System.Collections.ArrayList

    [推荐] System.Collections.Generic.List<T> [原因] 泛型集合类List<T>在操作值类型的集合时可以不进行 装箱/拆箱 处理. 使得性能较 ...

  7. AnnotationConfigApplicationContext

    package com.test; import java.io.IOException; import java.io.InputStream; import java.net.URL; impor ...

  8. 并行执行hive脚本

    ### 模板脚本存放路径(无需修改) cd /tmp/fix_data/tmp_wjj_20180322_01 ### 脚本名称 script=tmp_wjj_20180322_01 ### 开始日期 ...

  9. thinkphp自动验证和自动完成

    tp验证码的自动验证小案例 模板文件 <form action="" method="post"> <p> User: <inpu ...

  10. JqGrid查询数据为空时给表格添加提示信息

    在JqGrid的loadComplete事件中添加下面的代码就可以实现上图的效果 loadComplete: function () { var rowNum = $("#purchaser ...