視覺化呈現圖片和圖片波段

現在可以開始編寫 Earth Engine JavaScript,請先將下列程式碼複製到程式碼編輯器:

程式碼編輯器 (JavaScript)

// Instantiate an image with the Image constructor.
var image = ee.Image('CGIAR/SRTM90_V4');

// Zoom to a location.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.

// Display the image on the map.
Map.addLayer(image);

按一下程式碼編輯器頂端的「Run」按鈕,地圖上會出現一張非常灰的圖片。別擔心,你很快就會讓它看起來更美觀。如果您不熟悉這個範例中任何部分的語法,請務必參閱 Earth Engine 的 JavaScript 教學課程。

Image Constructor

這個範例中的第一個新項目是圖片建構函式 ee.Image()。提供給建構函式的引數是 Earth Engine Data Catalog 中圖片的字串 ID。(請參閱程式碼編輯器左側的「Docs」分頁,查看圖片建構函式可能引數的完整清單。「Docs」分頁會顯示 Earth Engine 功能的最新資訊。

如要找出圖片 ID,請使用程式碼編輯器頂端的搜尋工具,在 Earth Engine Data Catalog 中搜尋。舉例來說,在搜尋欄位中輸入「elevation」,系統就會傳回光柵清單。按一下「SRTM Digital Elevation Data Version 4」項目,即可查看該資料集的詳細資訊。資料集說明右側是「Image ID」(圖片 ID) 欄位。請注意,範例中的映像檔 ID 是從資料集說明中顯示的映像檔 ID 複製而來。

除了複製及貼上圖片 ID 之外,您也可以使用資料集說明中的「Import」(匯入) 按鈕,或搜尋結果右側的「import」(匯入) 連結。如果按一下匯入連結或按鈕,系統會在指令碼頂端名為「匯入」的特殊區段中自動建立變數。如要重新命名變數,請在匯入部分點選變數名稱。

設定地圖

這個範例的第二個新部分是 Map.setCenter() 呼叫。Map 物件代表程式碼編輯器中的地圖顯示,這個物件的方法會將地圖置中於指定的經緯度 (以十進位度數表示) 和縮放等級,其中 1 代表縮小,地圖會顯示整個地球表面。數字越大,縮放程度越高。如要查看 Map 物件的所有方法,請前往程式碼編輯器左側的「Docs」分頁,然後查看「Map」部分。

在地圖中加入圖層

範例中的最後一行表示:使用 Map 物件的 addLayer() 方法,將圖片新增至程式碼編輯器中的地圖顯示。

恭喜!您已建立第一個 Earth Engine 指令碼。下一節將說明如何讓圖片看起來更美觀。

離題:Earth Engine 中的圖片

Earth Engine 中的圖片 (詳情請參閱這個頁面) 是由一或多個波段組成。圖片中的每個波段都有自己的名稱、像素值、像素解析度和投影。您很快就會發現,SRTM 影像有一個波段:「elevation」。

使用 Map.addLayer() 將圖片新增至地圖時,Earth Engine 必須決定如何將圖片波段中的值對應至螢幕上的顏色。如果將單一波段圖片新增至地圖,Earth Engine 預設會以灰階顯示波段,其中最小值會指派為黑色,最大值則指派為白色。如未指定最小值和最大值,Earth Engine 會使用預設值。舉例來說,您剛才新增至地圖的圖片會顯示為灰階圖片,並延伸至資料的完整範圍,或有符號的 16 位元整數 [-32768, 32767]。(根據預設,float 頻帶會延展至 [0, 1],byte 頻帶則會延展至 [0, 255])。

您可以列印圖片,並在「Console」分頁中檢查圖片物件,藉此找出圖片的資料類型。例如,在先前的程式碼後方貼上以下內容:

程式碼編輯器 (JavaScript)

print('SRTM image', image);

點選「Run」後,控制台中會顯示一個物件。如要調查物件屬性,請按一下物件或屬性左側的展開圖示 () 展開物件。依序展開圖片物件、「bands」屬性、索引「0」的「elevation」波段,以及「elevation」波段的「data_type」屬性,即可發現這是 signed int16 資料類型。

自訂圖層視覺化

如要變更資料延展方式,您可以為 Map.addLayer() 呼叫提供其他參數。具體來說,第二個參數 visParams 可讓您指定要顯示的最小值和最大值。如要 瞭解應使用的值,請啟用 「Inspector」分頁,然後在 地圖上點選,瞭解像素值的範圍。或者,您也可以使用圖層管理工具以互動方式延展資料,然後觀察與百分位數或標準差延展相對應的最小值和最大值。假設透過這類實驗,您決定將資料拉伸至 [0, 3000]。如要使用這個範圍顯示圖片,請使用:

程式碼編輯器 (JavaScript)

Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');

請注意,visParams 參數是物件,其屬性會指定 min 和 max。(如要進一步瞭解 JavaScript 物件,請參閱 JavaScript 教學課程或這份外部參考資料)。請注意,Map.addLayer() 的第三個參數是圖層管理工具中顯示的圖層名稱。結果應如圖 1 所示。將滑鼠游標懸停在右側的「Layers」方塊上,即可查看重新命名該圖層的效果。

Tutorial_api_01_elevation.png
圖 1. 灰階高程圖片,拉伸至 [0, 3000]。

如要使用調色盤顯示單一波段,請在 visParams 物件中加入 palette 屬性:

程式碼編輯器 (JavaScript)

Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']},
    'custom palette');

結果應如圖 2 所示。

Tutorial_api_02_palette.png
圖 2. 海拔高度圖片,以藍色到紅色的色階表示,延伸至 [0, 3000]。

離題:調色盤

調色盤可讓你設定單波段圖片的色彩配置。調色盤是以半形逗號分隔的顏色字串清單,這些字串會在視覺化參數的最大值和最小值之間線性內插 (或根據波段類型預設,如前所述)。舉例來說,小於或等於下限值的像素會以清單中的第一個顏色顯示,大於或等於上限值的像素則會以清單中的最後一個顏色顯示。中間色會線性延伸至中間像素值。

顏色是使用網路標準 CSS 顏色值配置定義 (詳情請參閱這份外部參考資料)。您可以指定顏色名稱,或使用十六進位字串表示紅、綠、藍三色的組合。這三個位置的最低值為 00 (代表十進位數字 0),最高值為 FF (代表十進位數字 255)。字串「000000」代表黑色、「FFFFFF」代表白色、「FF0000」代表紅色、「00FF00」代表綠色,而「0000FF」代表藍色。詳情請參閱「調色盤」一節。如要使用其他拉伸方式,請參閱本節,瞭解如何使用樣式圖層描述元。

本教學課程稍後會說明如何顯示多波段圖像。不過,請先前往下一頁,瞭解如何使用圖片執行運算。