为什么谷歌地图上有的湖是蓝色的有的湖是绿色的?
这个是一个好问题，而要想完全回答它其实没有我们想象中的那么简单。 原题说的是谷歌地图，但我估计题主想说的是谷歌地图里的“卫星图”功能，那其实是隔壁的谷歌地球的数据。所以接下来我将会基于谷歌地球来回答这个问题。 先上总结，如果湖水中含有更多的叶绿素，那么它在物理上的确是会更绿的，反之则偏蓝。但是，我们在谷歌地球上看到的颜色跟物理学上的颜色可能是有出入的。人们对颜色的感知其实很复杂。 我们取墨西哥最大的淡水湖查帕拉湖（Lake Chapala）及其周边为例，来用遥感的方法判断一下湖水的颜色跟湖水里叶绿素的含量有什么关系。 首先我们打开谷歌地球。在谷歌地球里，将时间调到2016年12月，查帕拉湖及其周边地区大概长这样： 注意图中的这四个湖，将会是我们本次研究的对象。其中4就是查帕拉湖。 如果在谷歌地球里看，那么最“绿”的应该是3（而且绿的很明显）， 谷歌地球使用的是美国名为Landsat系列遥感卫星的真彩色图像（True Color Image）。所谓真彩色图像，即是将遥感卫星接收到的红绿蓝（RGB）波段直接按照RGB的顺序来合成出的图像。这样的图像颜色，理论上看起来就跟我们飞到高空中看到的地面一样。于是我们登录EarthExplorer，下载2016年同一时间段内的Landsat遥感卫星影像，按照真彩色图像的方法导入ENVI。 值得一提的是，原始的卫星遥感影像的颜色是比较暗淡的。为了让我们能够看得更清楚，这里我们使用了一些增强的办法来让图片变得更“亮”了一些。不过因为我们采用的图像增强算法与谷歌地球所使用的不尽相同，所以会跟在谷歌地球里看到的有一些色差。但总的来说，看起来还是湖3是最“绿”的，而湖1是最“蓝”的。其余两个湖则是有些含混的青色，介于两者之间。 但真的是这样么？我们查看一下这几个湖的光谱。 我在四个湖中都选了一个点为代表来研究各自的光谱曲线。其中，图中第二根竖线即为绿色光所在的波长（0.56微米）。也就是说，四根曲线和第二根竖线的交点，即为它们各自的“绿色程度”。交点越高，代表越绿。从大到小排列为2 > 4 > 3 > 1 于是我们可以发现，虽然看起来最“蓝”的湖1的确排在最下面，不怎么绿；但我们之前认为最绿的湖3居然是倒数第二，甚至不如看起来很暗淡的最大的湖4绿。也就是说，湖3其实在物理的角度，并不算绿。最绿的湖反而是左下角有点发白的湖2。 接下来，我们使用环境遥感里的经验模型来定性分析这四个湖里的叶绿素含量。通过计算卫星TM3波段（红波段）和TM1波段（蓝波段）的比值，就能得到湖水里叶绿素含量的相对关系。比值越大，说明叶绿素含量越高。 最后的比值是， 湖1：0.817 湖2：0.998 湖3：0.846 湖4：0.871 这也就意味着叶绿素的含量为2 > 4 > 3 > 1，跟前面的“绿色程度”相吻合。 所以，湖水里有更多的叶绿素就会更绿，反之就会更蓝。这里的绿跟蓝都是物理学意义上的颜色，而不是人主观感受的颜色。不过因为清澈的水体会吸收所有可见光波段的能量，所以更确切的表达不是更蓝，应该是更黑。 但是，为什么这几个湖的颜色给我们的主观感觉和物理学上的颜色不一样呢？这就牵扯到很多别的问题了。比如，图像的增强算法。 普通线性增强： 5%线性增强： 高斯增强： 以上三张图片和之前是同一张，只是因为我用不同的算法增强了它，所以它的颜色给人的主观感觉也会不一样。 另外，我们在看一种不是纯色的颜色的时候，还会因为诸如饱和度之类的原因而给出不同的判断，而不只是物理学上RGB的值。或许熟悉RGB值的设计师们可以准确的看出这四个湖究竟哪一个是真的最绿呢？不过这就是另一个问题了。 参考文献：