簡體   English   中英

如何根據其位置在Google Earth Engine中對圖像集合進行子集化?

[英]How to subset an image collection in Google Earth Engine based on their position?

我是Google Earth Engine的新用戶。 我正在嘗試刪除圖像集合的某些圖像。 在下面的示例中是一個示例。 我的圖像收藏有更多圖像。

 // Load Landsat 8 brightness temperature data for 1 year.
 var test = ee.ImageCollection('LANDSAT/LC8_L1T_32DAY_TOA')
.filterDate('2012-12-25', '2016-12-25')
.select('B1');
print(test)

我的圖像收藏有45張圖像。 為了清楚起見,我將index1稱為第一張圖像,將index45稱為最后一張圖像,依此類推。如何將圖像從index10保留到索引15或將索引30從索引30刪除。

我嘗試了一個列表,但是它不能捕獲元素。

您可以使用以下功能按集合的元數據過濾集合。

.filterMetadata(name, operator,value)

如果要保留的圖像具有相同的值,則可以使用該值。 例如,要按WRS_ROW和WRS_PATH進行過濾,請執行以下操作。

var testFiltered = test.filterMetadata("WRS_ROW","equals",15)
                       .filterMetadata("WRS_PATH","equals",36)

只需選擇最適合您的元數據即可。 最好不要按數字選擇,否則它們將無法使用其他年份。

除了通過WRS-2路徑和行之類的元數據屬性進行過濾之外,您還可以為集合運行方法.filterBounds(geometry) ,這將導致僅包含與幾何相交的元素的新集合。 這是一個例子:

// Load Landsat 8 TOA data.
var timeFiltered = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
    .filterDate('2013-01-01', '2014-01-01');

// define an ee.Geometry to filter by
// San Francisco Lon/Lat
var geom = ee.Geometry.Point([122.4194, 37.7749]);

// filter by a geometry
var spaceTimeFiltered = timeFiltered.filterBounds(geom);

print('Before spatial filtering: ',timeFiltered);
print('After spatial filtering: ',spaceTimeFiltered);

在這種情況下,僅按時間過濾的集合將不會打印,因為它具有5000多個元素,但是當您按空間和時間過濾時,它將返回2013年以來舊金山的15個場景。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM