您當前的位置:首頁 > 攝影

Google Earth Engine API:Image Collection時間聚合

作者:由 碧瑤不是我真名 發表于 攝影時間:2022-03-23

大家好!本次分享將Image Collection按不同時間尺度進行聚合的API,用一行程式碼就能實現任意影像集按年、季度、月、日尺度以均值、中值、最值等多種方法進行聚合,輸入引數簡單且功能十分強大!

首先舉個簡單的例子,輸入下面的程式碼:

var

lib

=

require

‘users/zhangby/library:data’

);

var

lib2

=

require

‘users/zhangby/library:general’

);

var

lib3

=

require

‘users/zhangby/library:timeSeries’

);

var

roi

=

ee

Geometry

Rectangle

([

108。46

18。12

111。13

20。23

]);

var

imgColl

=

lib

getLandsatRoi

‘2021-01-01’

‘2021-12-31’

roi

30

true

true

);

// 呼叫方法詳見我的另一篇文章《Google Earth Engine API:搜尋Landsat、MODIS和Sentinel2資料產品》

imgColl

=

imgColl

map

lib2

addNdvi

)。

select

‘NDVI’

);

// 呼叫方法詳見我的另一篇文章《Google Earth Engine API:像元值線性放縮和波段運算》

imgColl

=

lib3

temporalAggregate

imgColl

‘YM’

‘mean’

);

print

‘>> Aggregated NDVI collection’

imgColl

);

執行後可以看到如下結果:

Google Earth Engine API:Image Collection時間聚合

Landsat反射率計算NDVI並按“年-月”平均值聚合成新的Image Collection

返回的Image Collection中每一幅影像帶有一個名為 ‘user:index’ 的新property(datetime格式),表示新生成影像的時間屬性。

詳細教程

在呼叫API前首先要匯入公共庫,ID為

'users/zhangby/library:timeSeries'

,然後對該API進行呼叫:

temporalAggregate(imageCollection, timeScale, method)

功能:根據給定的時間尺度和合成方法對Image Collection進行聚合生成新的Image Collection

Arguments:

- imageCollection: 待聚合的影像集(Image Collection;每一幅影像要帶有 ‘time_start’ 時間屬性)

- timeScale: 聚合時間尺度(String: ‘Y’, ‘YM’, ‘YMD’, ‘M’, ‘MD’, ‘D’;不可預設,含義見後注)

- method: 聚合方法(String: ‘first’, ‘last’, ‘max’, ‘min’, ‘mean’, ‘median’, ‘sum’, ‘stdDev’, variance‘, ’count‘;預設為’median‘,請參考 ee。ImageCollection。reduce() 中所用到的reducer)

Returns: Image Collection

注:關於引數 timeScale 的一些說明如下,

① 如果傳入 ’Y‘,則每年聚合成一幅影像,輸出結果中 ’user:index‘ 為年,datetime格式為yyyy,如 ’1989‘;

② 如果傳入 ’YM‘,則每月聚合成一幅影像,輸出結果中 ’user:index‘ 為年+月,datetime格式為yyyyMM,如 ’198907‘;

③ 如果傳入 ’YMD‘,則每日(只要有影像就)聚合成一幅影像,輸出結果中 ’user:index‘ 為年+月+日,datetime格式為yyyyMMdd,如 ’19890725‘;

④ 如果傳入’M‘,則將所有影像按相同月份進行聚合,只要影像日期處於同一月份,不管其屬於哪一年,均聚合為一幅影像,即輸出結果至多12幅影像,’user:index‘ 為月,datetime格式為MM,如 ’07‘;

⑤ 如果傳入 ’MD‘,則將所有影像按相同月-日進行聚合,只要影像日期是相同的月-日,不管其屬於哪一年,均聚合為一幅影像,輸出結果最多有366幅影像,’user:index‘ 為月-日,datetime格式為MMdd,如 ’0725‘;

⑥ 如果傳入 ’D‘,則將所有影像按相同日進行聚合,只要影像日期是相同的日,不管其屬於哪一年哪一月,均聚合為一幅影像,輸出結果最多有31幅影像,’user:index‘ 為日,datetime格式為dd,如 ’25‘。

PS。 目前程式碼基本上處於一個比較穩定的版本,但也不排除將來會做調整,如果出現報錯請回到此處檢視更新。歡迎大家呼叫!如有錯誤也懇請及時指出,謝謝!

標簽: 影像  聚合  Image  user  index