Google Earth Engine谷歌地球引擎GEE柵格圖層可視化代碼的嵌入操作

瘋狂學習gis 發佈 2022-07-08T17:11:39.234037+00:00

首先,依據第二篇GEE教學博客中內容,我們將Landsat 8 Collection 1 Tier 1的大氣表觀反射率TOA Reflectance產品導入GEE;

  本文主要對GEE中的數據圖層可視化代碼嵌入操作加以介紹。

  本文是谷歌地球引擎(Google Earth Engine,GEE)系列教學文章的第四篇,更多GEE文章請參考專欄:GEE學習與應用_瘋狂學習GIS的博客-CSDN博客。

  可視化代碼嵌入,即將圖層可視化選項在代碼中直接配置,不需要手動進行數據可視化的調整;同時可以保證每一次運行代碼,圖層可視化結果都是我們所設定的配置,而不是GEE默認的配置。

  首先,依據第二篇GEE教學博客(Google Earth Engine谷歌地球引擎GEE數據導入後篩選並顯示_瘋狂學習GIS的博客-CSDN博客)中內容,我們將Landsat 8 Collection 1 Tier 1的大氣表觀反射率TOA Reflectance產品導入GEE;同時依據第三篇GEE教學博客(Google Earth Engine谷歌地球引擎GEE矢量數據裁剪柵格數據_瘋狂學習GIS的博客-CSDN博客)中內容,我們將美國人口普查局United States Census Bureau)的2018年主要合法邊界劃分數據TIGER: US Census Counties 2018導入GEE;並對二者做好重命名。

  接下來,我們基於第二篇GEE教學博客與第三篇GEE教學博客中內容,對剛剛導入的數據加以時間篩選、平均值合成、空間區域裁剪等,同時將圖層導入到地圖中。

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()函數中第二個參數(可視化參數)中。

  同時記得按照調整後的拉伸設置修改minmax的值。

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");

  執行上述代碼,可以看到當前效果與前述內容的效果一致。

關鍵字: