以下是使用 Google Earth Engine (GEE) 下载每日地表温度数据集,并将其合并为月均地表温度数据集,且将月均数据集再合成为年均地表温度栅格数据的代码:
//设定感兴趣的区域
var region = ee.Geometry.Rectangle([xmin, ymin, xmax, ymax]);
// 导入MODIS产品(截止于2021年),日分辨率
var modis = ee.ImageCollection("MODIS/006/MOD11A1")
.filter(ee.Filter.date('2000-02-01', '2021-09-01'))
.select('LST_Day_1km')
.map(function(image) {
return image.multiply(0.02).subtract(273.15)//转换为℃
.copyProperties(image,['system:time_start']);
});
// 将每日最高温度图像集合合并为逐月平均图像
var monthlyTemp = modis.map(function(image){
var year = ee.Date(image.get('system:time_start')).get('year');
var month = ee.Date(image.get('system:time_start')).get('month');
return image.set('year', year).set('month', month);
}).groupBy('year', 'month').mean();//进行平均值计算
// 合成年均地表温度图像
var annualTemp = monthlyTemp.reduce(ee.Reducer.mean());
// 添加图层到Map
Map.centerObject(region, zoom);
Map.addLayer(annualTemp.clip(region));
首先通过定义矩形范围来确定感兴趣的地理区域。然后,使用`ee.ImageCollection()`函数导入MODIS产品,并选择其中的白天地表温度(LST_Day_1km)。需要注意的是在数据格式转化时候根据官方公式进行转换。
接下来,将每日地表温度图像集合转换为逐月平均图像集合,并对平均值取平均数从而得到每月的均值。通过`groupBy()`函数,可以按照年和月来分组,在最终生成的图像中为这些属性设置标签。
之后,将逐月地表温度图像集合中的图像按月份和属性进行合并,并将所有数据集进行平均数计算以得到年度均值。作为一般惯例,还将其筛选区域,添加图层,并设置相应的变量名字。
需要注意,在实际使用GEE时,除了确定xmin、ymin、xmax和ymax参数之外,还需要注意GEE中计算资源、存储空间的使用情况问题。