??本文主要對GEE中的數(shù)據(jù)圖層可視化參數(shù)代碼調(diào)整配置操作加以介紹。本文是谷歌地球引擎(Google Earth Engine,GEE)系列教學文章的第四篇,更多GEE文章請參考專欄:GEE學習與應用(http://www.itdecent.cn/c/854bbf4fda0e)。
??可視化代碼嵌入,即將圖層可視化選項在代碼中直接配置,不需要手動進行數(shù)據(jù)可視化的調(diào)整;同時可以保證每一次運行代碼,圖層可視化結果都是我們所設定的配置,而不是GEE默認的配置。
??首先,依據(jù)第二篇GEE教學博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117296956)中內(nèi)容,我們將Landsat 8 Collection 1 Tier 1的大氣表觀反射率TOA Reflectance產(chǎn)品導入GEE;同時依據(jù)第三篇GEE教學博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117390431)中內(nèi)容,我們將美國人口普查局(United States Census Bureau)的2018年主要合法邊界劃分數(shù)據(jù)TIGER: US Census Counties 2018導入GEE;并對二者做好重命名。
??接下來,我們基于第二篇GEE教學博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117296956)與第三篇GEE教學博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117390431)中內(nèi)容,對剛剛導入的數(shù)據(jù)加以時間篩選、平均值合成、空間區(qū)域裁剪等,同時將圖層導入到地圖中。
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');
??所得結果如下圖所示。這里需要注意,下圖最后一句代碼忘記加分號了。
??可以看到,上圖中的柵格圖層是黑、白、灰色系的,我們可以在代碼中對其波段配色方案加以調(diào)整。在Map.addLayer()函數(shù)中的第二個參數(shù)位置,按照如下方式進行配置;而其它兩個參數(shù),通過之前的教學文章我們已經(jīng)知道其分別代表具體圖層與圖層顯示在地圖中時的名稱。
Map.addLayer(landsat_8_202007_USA,{bands:['B4','B3','B2']},'USA_Landsat');
??此時可以看到,地圖中圖層依然是灰白色系,這是由于我們沒有調(diào)整其拉伸情況,導致眼睛看上去彩色并不明顯導致的。在地圖右上角的“Layers”勾選框中,我們首先對拉伸情況加以調(diào)整。此時我們還可以看到,圖像的RGB波段通過我們所輸入的代碼已經(jīng)有了自動的更新。
??在這里,我們配置好圖像的拉伸情況,一開始先隨意選擇一種拉伸即可。
??查看地圖,可以看到拉伸后的圖層相對而言真彩色已經(jīng)較為明顯。但是依然不是很突出,我們可以繼續(xù)修改拉伸的程度。
??提升拉伸程度,可以看到圖層真彩色已經(jīng)較為明顯。
??我們就選擇這種方式,記錄此時圖像的像素范圍,并將其按照如下方式嵌入到代碼中:
Map.addLayer(landsat_8_202007_USA,{bands:['B4','B3','B2'],min:[-0.0152],max:[0.4054]},'USA_Landsat');
??下圖中的紅色即為圖像像素范圍所在的位置。
??執(zhí)行代碼可以發(fā)現(xiàn),圖層的可視化配置在每一次代碼執(zhí)行后都會自動形成,不需要我們手動在地圖的右上角“Layers”處加以操作了。
??以上是多波段柵格數(shù)據(jù)的可視化代碼,接下來我們再以單波段灰度圖像進行操作。在GEE搜索框中輸入terrain,選擇GMTED2010:Global Multi-resolution Terrain Elevation Data 2010數(shù)據(jù),將其導入地圖中并將這一變量重命名。我們以這一DEM單波段柵格圖層為例加以介紹。
??將這一圖層在地圖中顯示,并將地圖中的圖層名稱顯示為DEM;其中,{}表示可視化參數(shù)這里暫時不放入任何內(nèi)容。
Map.addLayer(DEM,{},"DEM");
??可以看到,這一DEM圖層的默認可視化情況呈現(xiàn)出無法較好分辨的灰白圖像。我們首先在地圖圖層中調(diào)整其拉伸參數(shù),同樣也是隨意設置一個拉伸即可。
??調(diào)整完畢后,將對應的像素取值范圍放入代碼中:
Map.addLayer(DEM,{min:[-770.68],max:[1304.73]},"DEM");
??執(zhí)行代碼,可以看到每次執(zhí)行代碼后圖層的可視化情況都同樣固定為我們所設定的樣式。
??此外,我們還可以在代碼中嵌入單波段柵格圖像的“Palette”信息。首先依然是在“Layers”中手動設定其Palette信息。
??需要注意,設定其Palette信息時,最好同時調(diào)整拉伸的設置,從而找到一個較為合適的“Palette”設置與拉伸設置組合。
??隨后,首先將Palette中的設置放入代碼。點擊下圖所示按鈕。
??復制得到的16進制顏色代碼。
??將其放入Map.addLayer()函數(shù)中第二個參數(shù)(可視化參數(shù))中。
??同時記得按照調(diào)整后的拉伸設置修改min與max的值。
Map.addLayer(DEM,{min:[-251.82],max:[785.88],palette:["63ff14","41f6ff","5f37ff","e033ff","ff3f7d"]},"DEM");
??隨后執(zhí)行代碼,可以看到每次運行代碼,得到的DEM圖層都是較易分辨的彩色圖層。
??同時,我們還可以采用如下的方法,即將Map.addLayer()函數(shù)中第二個參數(shù)(可視化參數(shù))首先存儲為一個變量,隨后執(zhí)行Map.addLayer()函數(shù)時,將這一變量放到第二個參數(shù)的位置即可。
var dem_vis={
min:[-251.82],
max:[785.88],
palette:["63ff14","41f6ff","5f37ff","e033ff","ff3f7d"]
}
Map.addLayer(DEM,dem_vis,"DEM");
??執(zhí)行上述代碼,可以看到當前效果與前述內(nèi)容的效果一致。