栅格那点儿事(四B)---多波段栅格数据的显示
多波段栅格数据的显示
我上面说了这么多,可能有的人会觉得平时也根本用不上。自然,说起影像数据,大家接触到对多的就是最最常见的航片或卫片。对于这种栅格数据呢,大多数的场景下,都只需实现一个效果,就是最接近真实视觉效果,跟到实际的地方亲眼所见一样。
在具体说这样的渲染在ArcGIS中怎么实现的,有什么地方可以调优之前,我们还需要回顾一下前文提到的一个概念,波段。我们有说过单波段的影像一般是灰度图,而全彩色的都是多波段的影像。那么为什么彩色的影像都是有3个或者更多波段组成,还有多个灰度图是如何渲染成彩色的呢?
同彩色照片的打印,彩色电视的成像原理一样,在ArcGIS中也是通过RGB这三基色来对栅格进行渲染的。具体点说,就是将三个波段的栅格分别通过红Red绿Green蓝Blue三个通道加载,彩色的栅格就被渲染出来了。也可以这样简单理解,通过红色通道加载会将灰度图变成红色,绿色通道加载后变成绿色等,而他们混合起来的时候,就像小时候玩过的调色板,按不同比例混合的三种颜色会变成其它各种各样的颜色,如下图所示。这就是为什么我们在ArcCatalog中查看彩色影像时,可以在属性中看到Number of Bands都是大于或者等于3的。在ArcMap中使用Identify 按钮,在彩色的栅格上点击,也会返回三个值,例如Red 168,Green 132,Blue 113。

为什么我们通过这种方式来显示彩色的栅格的时候,能够得到与我们在真实世界里看到的差不多的颜色呢?
简单讲一个遥感的小常识。在我们眼中看到的花红柳绿,碧海白沙,这些事物颜色上的区别全部都是由于这些物体对太阳光中不同波段的光的反射与吸收的差异形成的。通过相机或者遥感传感器将物体对不同光的反射值分别记录下来,就有了不同的波段数据。比如我们得到的Landsat卫星遥感影像一景包含有7个栅格,每个栅格分别对应同一位置上的物体对该波段光谱的反射值, 包括蓝,绿,红,近红外,中红外,热红外和微米全色。之所以记录这么多波段的反射值,是为了在数据分析中起到重要的作用的。关于传感器的内容和一些遥感方向的应用在以后的扩展性章节中还会再讲到。

现在回到栅格渲染这个话题中。那么我们如何确定这个真实世界的色彩被还原呢?
首先,依照上文的小常识,可以肯定的是,通过传感器得到的RGB的值必须通过对应的RGB的通道加载,这样组合渲染出来才能还原出我们在真实世界中人眼所观察到的景象。对于巨大多数航拍回来的影像,都是已经处理完成的,在ArcMap中加载就可以正常显示,不需要单独设置了。可是对于卫星影像来说,由于其一般包含4个或更多的波段,我们在加载的时候就需要注意通过元数据,或者传感器信息来确认加载的顺序。如果第一次加载错了,还可以通过直接双击图层列表中的RGB的符号来进行设置,或者在Symbology中的下来菜单中重新定义顺序。

还有一种情况是这样,我们在拿到数据方提供的卫星影像时,是7个分开存储的单波段的影像,在ArcMap中全部加载进来也还是灰色的。如何将多个单独的灰色影像以真彩色的方式渲染出来呢?
首先要注意的一点是,与专业的遥感软件不同,ArcGIS中不提供直接在一个栅格上叠加其他栅格来进行渲染,也就是说不能简单在Symbology中设置一下来实现RGB的渲染,只能通过事先将不同波段的影像数据组合在一起,然后在进行加载。
另外,由于不能在指定的波段上选择Load Data,所以也不能通过导入数据库的方式将不同波段的栅格组合在一起。到10.1版本为止,只有两种方式可以将多个单波段的数据进行RGB的渲染,这两种方式都是通过同一个原理来实现的,见下图。一种是通过工具Composite Bands,在Data Management Tools的工具箱中可以找到。另外一种则是在Image Analysis Window中通过栅格函数(Function)来实现。关于影像处理窗口的内容我们将在下面的下面的章节中展开了说,这里就先不罗嗦了。

明天晚些时候将会更新拉伸的内容, 阅读后可以有效的解决图像太暗或或者是黑色的问题。敬请期待~~\(≧▽≦)/~
栅格那点儿事(四B)---多波段栅格数据的显示的更多相关文章
- 栅格那点儿事(四E)
栅格金字塔 如果上面的部分都已经看过了,那么如何在ArcMap中更好的渲染一个栅格数据你已经知道了.可仅展示好一个栅格数据是不够的,我们还需要知道如何快速的展示一个栅格数据. 讲金字塔之前,先解释 ...
- 栅格那点儿事(四D)
统计值与空值 在上一篇的内容里反复提到了一个统计值.那这个统计值是怎么来的,具体是干嘛用的呢? 统计值主要就是用于栅格数据的显示和重分类,顾名思义就是一个波段中所有像元值的一个统计信息,最大值,最小值 ...
- 栅格那点儿事(四C)
栅格渲染之拉伸(Stretch) 现在我们知道如何在ArcGIS中渲染栅格数据了,但是还有一个常常会碰到的问题,尤其是在使用老版本的ArcGIS的时候,为啥我加了一个栅格数据进来,啥也看不见,是黑色的 ...
- 栅格那点儿事(四A)---栅格的显示与渲染
栅格的显示与渲染 通过前两章的学习,应该对栅格这个东西不那么陌生了.在这一个部分,我们来看看如何展示出栅格数据最美丽的地方,在ArcGIS中栅格的显示与渲染.在进入细节之前,先来看看在ArcGIS中都 ...
- 栅格那点儿事(二)---细看Raster属性
细看Raster属性 如果你已经看完了上一章,你已经了解了栅格数据是由一个个像元(Cell)按照行列方式构成的,每一个像元都有自己的像元值,并且这些像元值根据栅格类型的不同,可以代表反射值,或高程值, ...
- 栅格那点儿事(一)---Raster是个啥子东西
Raster是个啥子东西 现如今,不仅是在遥感应用中能看到花花绿绿的影像了,在GIS应用中也能随处看到她们的身影.在各种在线地图中,卫星影像作为底图与矢量的道路层叠加:高程DEM作为高程来源实现地形的 ...
- linux查看目录的四种方法(ls只显示目录)【转】
1.ls -d * amosli@amosli-pc:~$ ls -d * %APPDATA% develop many sorted.txt workspace bank Documents Mus ...
- ArcGIS 栅格数据教程
ArcGIS 栅格数据教程 全部8个教程,带详细操作步骤和原始数据. 技术咨询:谢老师,135_4855_4328,xiexiaokui#139.com ArcGIS 10.5 此教程中的练习将使用样 ...
- 聊聊GIS数据的四个分层与GIS服务
本篇不讨论矢量栅格数据的结构,也不讨论矢量与栅格的区别(即设定读者有这方面的基础). 版权声明:原创.博客园/B站/小专栏/知乎/CSDN @秋意正寒 转载请标注原地址并声明转载: https://w ...
随机推荐
- 资深专家深度剖析Kubernetes API Server第1章(共3章)
欢迎来到深入学习Kubernetes API Server的系列文章,在本系列文章中我们将深入的探究Kubernetes API Server的相关实现.如果你对Kubernetes的内部实现机制比较 ...
- asp.net core 自定视图主题 实现IViewLocationExpander接口
新建ThemeViewLocationExpander.cs 实现IViewLocationExpander接口 /// <summary> /// 自定视图主题 实现IViewLocat ...
- netty结合websocket使用
首先需要在后台建立netty服务器启动类; package com.cxy; import io.netty.bootstrap.ServerBootstrap; import io.netty.ch ...
- 使用nexus 搭建本地 maven 服务器
1.下载安装nexus oos https://www.sonatype.com/download-oss-sonatype ,选择2.x 版本. 2. 配置maven <server> ...
- Codeforces Round #305 (Div. 2) B
Description Mike and some bears are playing a game just for fun. Mike is the judge. All bears except ...
- jquery深入学习
样式操作: addclass(); //指定添加css类 removeclass();//移除指定css类 hasclass()://判断存不存在 toggleclass();//切换css类名,有 ...
- LeeCode(No3 - Longest Substring Without Repeating Characters)
题目: Given a string, find the length of the longest substring without repeating characters. 示例: Given ...
- C#中Internal关键字的总结
https://blog.csdn.net/baidu_32134295/article/details/51285603 版权声明:本文为博主原创文章,未经博主允许不得转载. https:/ ...
- spring boot——常用注解
@SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 ...
- javascript里label语句的简单示例
在javascript中,我们可能很少会去用到 Label 语句,但是熟练的应用 Label 语句,尤其是在嵌套循环中熟练应用 break, continue 与 Label 可以精确的返回到你想要的 ...