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

您現在可以開始撰寫 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);

按一下程式碼編輯器頂端的「執行」按鈕,然後觀察地圖上顯示的灰色圖片。別擔心,很快就能讓它看起來更美觀。如果對這個範例中任何部分的語法不熟悉,請務必參閱 Earth Engine 的 JavaScript 教學課程

Image Constructor

這個範例中的第一個新項目是 image 建構函式 ee.Image()。提供給建構函式的引數是 Earth Engine 資料目錄中圖片的字串 ID。(如要查看圖片建構函式的所有可能引數,請參閱「程式碼編輯器」左側的「文件」分頁標籤。「文件」分頁會顯示 Earth Engine 的最新資訊,

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

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

設定地圖

這個範例的第二個新部分是 Map.setCenter() 呼叫。這個 Map 物件的方法代表程式碼編輯器中的地圖顯示畫面,可將地圖置中於指定經緯度 (以十進位度數表示) 和縮放等級,其中 1 代表地圖縮小到顯示整個地球表面。較大的數字會從該處放大。如要探索 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);

按一下「執行」後,請注意控制台中會顯示物件。如要調查物件屬性,請點選物件或屬性左側的拉鍊圖示 () 展開。展開圖片物件、「bands」屬性、索引「0」的「elevation」頻帶,以及「elevation」頻帶的「data_type」屬性,即可發現這是 signed int16 資料型別。

自訂圖層視覺化

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

程式碼編輯器 (JavaScript)

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

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

Tutorial_api_01_elevation.png
圖 1:灰階高程圖片,延展至 [0, 3000]。

如要使用調色盤顯示單一波段,請將 palette 屬性新增至 visParams 物件:

程式碼編輯器 (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」代表藍色。詳情請參閱「調色盤」一節。如本節所述,您可以使用樣式化圖層描述元,進行其他延展。

在本教學課程的後續章節中,您將瞭解如何顯示多波段影像。不過,請先前往下一頁,瞭解如何使用圖片執行運算。