圖像集是指一組 Earth Engine 圖像。舉例來說,所有 Landsat 8 影像的集合就是 ee.ImageCollection
。與您使用的 SRTM 圖片一樣,圖片集也有 ID。與單一圖片一樣,您可以從程式碼編輯器搜尋 Earth Engine 資料目錄,然後查看資料集的詳細資料頁面,找出影像集合的 ID。舉例來說,搜尋「landsat 8 toa」,然後按一下第一個結果,這應該對應到
USGS Landsat 8 Collection 1 Tier 1 TOA Reflectance 資料集。
使用「匯入」按鈕匯入該資料集,並將其重新命名為 l8
,或將 ID 複製到圖片集合建構函式中:
程式碼編輯器 (JavaScript)
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');
篩選圖片集
請注意,這個集合代表所有收集到的 Landsat 8 影像,涵蓋全球各地。通常會擷取單一圖片或圖片子集,用來測試演算法。如要依時間或空間限制收藏內容,請進行篩選。舉例來說,如要將集合篩選為涵蓋特定位置的圖片,請先使用幾何圖形繪製工具,以點 (或線或多邊形) 定義感興趣的區域。平移至感興趣的區域,將滑鼠游標懸停在「幾何圖形匯入」 (如果您已定義一或多個幾何圖形),然後按一下「+ 新增圖層」 (如果您沒有任何匯入項目,請前往下一個步驟)。取得點繪製工具 (),並在感興趣的區域中繪製點。為匯入作業命名
point
。現在,請篩選 l8
集合,只取得與該點相交的圖片,然後新增第二個篩選器,將集合限制為僅包含 2015 年取得的圖片:
程式碼編輯器 (JavaScript)
var spatialFiltered = l8.filterBounds(point); print('spatialFiltered', spatialFiltered); var temporalFiltered = spatialFiltered.filterDate('2015-01-01', '2015-12-31'); print('temporalFiltered', temporalFiltered);
其中 filterBounds()
和 filterDate()
是圖像集合上更通用的 filter()
方法的捷徑方法,會將 ee.Filter()
做為引數。如要進一步瞭解這些方法,請查看程式碼編輯器的「文件」分頁。filterBounds()
的引數是您數位化的點,filterDate()
的引數則是兩個以字串表示的日期。
請注意,您可以print()
篩選後的集合。一次最多只能列印 5,000 個項目,因此無法列印整個「l8
」收藏。執行 print()
方法後,您可以在控制台中檢查列印的集合。請注意,使用 zippy () 展開
ImageCollection
,然後展開 features
清單時,您會看到圖片清單,每張圖片也都可以展開並檢查。這是找出個別圖片 ID 的其中一種方法。此外,您也可以透過程式輔助方式取得個別圖片進行分析,方法是排序集合,以取得相對於某些中繼資料屬性的最新、最舊或最佳圖片。舉例來說,檢查列印圖片集合中的圖片物件時,您可能會發現名為 CLOUD_COVER
的中繼資料屬性。您可以使用這項屬性,在感興趣的區域中取得 2015 年雲量最少的圖像:
程式碼編輯器 (JavaScript)
// This will sort from least to most cloudy. var sorted = temporalFiltered.sort('CLOUD_COVER'); // Get the first (least cloudy) image. var scene = sorted.first();
現在可以顯示圖片了!
離題:顯示 RGB 圖片
將多波段影像新增至地圖時,Earth Engine 會選擇影像的前三個波段,並預設以紅色、綠色和藍色顯示,然後根據資料類型延展這些波段,如先前所述。通常這不會有作用。舉例來說,如果您將 Landsat 圖片 (上例中的 scene
) 新增至地圖,結果會不盡理想:
程式碼編輯器 (JavaScript)
Map.centerObject(scene, 9); Map.addLayer(scene, {}, 'default RGB');
請注意,地圖一開始會以縮放比例 9 為中心顯示圖片。然後,系統會顯示圖片,並針對 visParams
參數提供空白物件 ({}
) (詳情請參閱 Map.addLayer()
文件)。因此,系統會以預設的視覺化效果顯示圖片:前三個頻帶分別對應 R、G、B,並因頻帶為 float
資料型別而延展至 [0, 1]。這表示沿海氣膠波段 (「B1」) 會以紅色算繪、藍色波段 (「B2」) 會以綠色算繪,而綠色波段 (「B3」) 則會以藍色算繪。如要將影像算繪為真實色彩合成影像,您需要告訴 Earth Engine 分別使用 Landsat 8 波段「B4」、「B3」和「B2」做為 R、G 和 B。使用 visParams
物件的 bands
屬性,指定要使用的頻帶。如要進一步瞭解 Landsat 波段,請參閱這份參考資料。
您也需要提供適合顯示一般地球表面目標反射率的 min
和 max
值。雖然清單可用於為每個頻帶指定不同值,但這裡只要指定 0.3
為 max
,並將 min
參數的預設值設為零即可。將視覺化參數合併為一個物件並顯示:
程式碼編輯器 (JavaScript)
var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3}; Map.addLayer(scene, visParams, 'true-color composite');
結果應如圖 5 所示。請注意,這段程式碼會將視覺化參數物件指派給變數,以供日後使用。您很快就會發現,這個物件在視覺化呈現圖片集合時非常實用!

嘗試以不同波段呈現影像。另一個常用的組合是「B5」、「B4」和「B3」,稱為假色合成。如要瞭解其他有趣的假色合成影像,請參閱這篇文章。
由於 Earth Engine 的設計宗旨是進行大規模分析,因此您不限於只能處理一個場景。現在,您可以將整個集合顯示為 RGB 合成影像!
顯示圖片集
在地圖上新增圖像集,與在地圖上新增圖像類似。舉例來說,使用 l8
集合中的 2016 年圖片和先前定義的 visParams
物件,
程式碼編輯器 (JavaScript)
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); var landsat2016 = l8.filterDate('2016-01-01', '2016-12-31'); Map.addLayer(landsat2016, visParams, 'l8 collection');
請注意,現在你可以縮小畫面,查看 Landsat 影像的連續鑲嵌畫面 (即陸地)。此外,請注意,使用「檢查器」分頁並點選圖片時,您會在「像素」部分看到像素值清單 (或圖表),並在檢查器的「物件」部分看到圖片物件清單。
如果縮小到一定程度,您可能會發現馬賽克中有一些雲朵。將 ImageCollection
新增至地圖時,系統會將其顯示為最近值複合項,也就是只顯示最近的像素 (例如對集合呼叫 mosaic()
)。因此,您可能會看到在不同時間取得的路徑之間出現不連續的情況。這也是許多區域可能呈現多雲的原因。在下一頁中,瞭解如何變更圖片的合成方式,擺脫這些惱人的雲朵!