本文主要对GEE中的数据图层可视化参数代码调整配置操作加以介绍。本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第四篇,更多GEE文章请参考专栏:GEE学习与应用(https://www.jianshu.com/c/854bbf4fda0e)。
可视化代码嵌入,即将图层可视化选项在代码中直接配置,不需要手动进行数据可视化的调整;同时可以保证每一次运行代码,图层可视化结果都是我们所设定的配置,而不是GEE默认的配置。
首先,依据第二篇GEE教学博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117296956)中内容,我们将Landsat 8 Collection 1 Tier 1的大气表观反射率TOA Reflectance产品导入GEE;同时依据第三篇GEE教学博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117390431)中内容,我们将美国人口普查局(United States Census Bureau)的2018年主要合法边界划分数据TIGER: US Census Counties 2018导入GEE;并对二者做好重命名。
接下来,我们基于第二篇GEE教学博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117296956)与第三篇GEE教学博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117390431)中内容,对刚刚导入的数据加以时间筛选、平均值合成、空间区域裁剪等,同时将图层导入到地图中。
var landsat_8_202007_USA=landsat_8.filterDate('2020-07-01','2020-07-31').mean().clip(county);
Map.addLayer(landsat_8_202007_USA,{},'USA_Landsat');
所得结果如下图所示。这里需要注意,下图最后一句代码忘记加分号了。
可以看到,上图中的栅格图层是黑、白、灰色系的,我们可以在代码中对其波段配色方案加以调整。在Map.addLayer()
函数中的第二个参数位置,按照如下方式进行配置;而其它两个参数,通过之前的教学文章我们已经知道其分别代表具体图层与图层显示在地图中时的名称。
Map.addLayer(landsat_8_202007_USA,{bands:['B4','B3','B2']},'USA_Landsat');
此时可以看到,地图中图层依然是灰白色系,这是由于我们没有调整其拉伸情况,导致眼睛看上去彩色并不明显导致的。在地图右上角的“Layers”勾选框中,我们首先对拉伸情况加以调整。此时我们还可以看到,图像的RGB
波段通过我们所输入的代码已经有了自动的更新。
在这里,我们配置好图像的拉伸情况,一开始先随意选择一种拉伸即可。
查看地图,可以看到拉伸后的图层相对而言真彩色已经较为明显。但是依然不是很突出,我们可以继续修改拉伸的程度。
提升拉伸程度,可以看到图层真彩色已经较为明显。
我们就选择这种方式,记录此时图像的像素范围,并将其按照如下方式嵌入到代码中:
Map.addLayer(landsat_8_202007_USA,{bands:['B4','B3','B2'],min:[-0.0152],max:[0.4054]},'USA_Landsat');
下图中的红色即为图像像素范围所在的位置。
执行代码可以发现,图层的可视化配置在每一次代码执行后都会自动形成,不需要我们手动在地图的右上角“Layers”处加以操作了。
以上是多波段栅格数据的可视化代码,接下来我们再以单波段灰度图像进行操作。在GEE搜索框中输入terrain
,选择GMTED2010:Global Multi-resolution Terrain Elevation Data 2010数据,将其导入地图中并将这一变量重命名。我们以这一DEM单波段栅格图层为例加以介绍。
将这一图层在地图中显示,并将地图中的图层名称显示为DEM
;其中,{}
表示可视化参数这里暂时不放入任何内容。
Map.addLayer(DEM,{},"DEM");
可以看到,这一DEM图层的默认可视化情况呈现出无法较好分辨的灰白图像。我们首先在地图图层中调整其拉伸参数,同样也是随意设置一个拉伸即可。
调整完毕后,将对应的像素取值范围放入代码中:
Map.addLayer(DEM,{min:[-770.68],max:[1304.73]},"DEM");
执行代码,可以看到每次执行代码后图层的可视化情况都同样固定为我们所设定的样式。
此外,我们还可以在代码中嵌入单波段栅格图像的“Palette”信息。首先依然是在“Layers”中手动设定其Palette
信息。
需要注意,设定其Palette
信息时,最好同时调整拉伸的设置,从而找到一个较为合适的“Palette”设置与拉伸设置组合。
随后,首先将Palette
中的设置放入代码。点击下图所示按钮。
复制得到的16进制颜色代码。
将其放入Map.addLayer()
函数中第二个参数(可视化参数)中。
同时记得按照调整后的拉伸设置修改min
与max
的值。
Map.addLayer(DEM,{min:[-251.82],max:[785.88],palette:["63ff14","41f6ff","5f37ff","e033ff","ff3f7d"]},"DEM");
随后执行代码,可以看到每次运行代码,得到的DEM图层都是较易分辨的彩色图层。
同时,我们还可以采用如下的方法,即将Map.addLayer()
函数中第二个参数(可视化参数)首先存储为一个变量,随后执行Map.addLayer()
函数时,将这一变量放到第二个参数的位置即可。
var dem_vis={
min:[-251.82],
max:[785.88],
palette:["63ff14","41f6ff","5f37ff","e033ff","ff3f7d"]
}
Map.addLayer(DEM,dem_vis,"DEM");
执行上述代码,可以看到当前效果与前述内容的效果一致。