代码概述
该代码利用Google Earth Engine (GEE) 平台,从ERA5月度气象数据集中筛选、处理并导出德州市2018年每月的总降水量数据。
使用的数据集
ECMWF ERA5 Monthly (ECMWF/ERA5/MONTHLY):ERA5是由欧洲中期天气预报中心(ECMWF)提供的再分析数据集,提供全球范围内的气象数据。该数据集的分辨率为0.25度(约31公里),时间分辨率为月度。
代码流程
-
定义研究区:
- 通过筛选属性为“dezhou”的区域定义感兴趣区域(德州市),并将其显示在地图上。
-
筛选影像数据:
- 筛选时间范围为2018年1月1日至2018年12月31日。
- 筛选包含总降水量(total_precipitation)的影像。
-
可视化总降水量变化:
- 使用GEE提供的UI工具绘制总降水量时间序列图。
-
导出影像:
- 定义一个函数用于批量导出每月的总降水量影像。
- 将每月的影像裁剪到研究区,并导出为GeoTIFF格式,保存到Google Drive。
运行结果
- 代码在GEE平台上运行后,会在地图上显示德州市的轮廓。
- 通过筛选和处理ERA5月度数据,生成2018年德州市每个月的总降水量数据,并展示其时间序列图。
- 最终,代码将每个月的总降水量影像裁剪到德州市范围内,并导出为GeoTIFF文件,保存到Google Drive的指定文件夹中。
完整代码:
//加载指定的shp范围
var geometry = table.filter(ee.Filter.eq('city','dezhou'))
Map.addLayer(geometry)
//var geometry = ee.FeatureCollection('projects/ee-totakonstantakopoulou1/assets/china');
Map.centerObject(geometry,7);
var dataset = ee.ImageCollection('ECMWF/ERA5/MONTHLY')
.filterDate('2018-01-01', '2018-12-31')
.filterBounds(geometry)
.select('total_precipitation');
//换算单位
//var subtract= function(image){
//var img = image.subtract(273.15);
//return img.set('system:time_start',image.get('system:time_start'));
//};
//dataset = dataset.map(subtract);//mean_2m_air_temperature1 开氏度(开尔文)=-272.15 摄氏度
print(ui.Chart.image.series(dataset, geometry, ee.Reducer.mean(), 1000));
//var Ct = dataset.reduce(ee.Reducer.mean()); //年平均分布
//print('mean_month':Ct);
//print(dataset, geometry, ee.Reducer.mean(), 1000);
function exportImageCollection(imgCol) {
var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");
indexList.evaluate(function(indexs) {
for (var i=0; i<indexs.length; i++) {
var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();
image = image.clip(geometry);
//tif数据下载
Export.image.toDrive({
image: image,
description: 'total_precipitation_'+indexs[i],
fileNamePrefix: 'total_precipitation_'+indexs[i],
folder: 'total_precipitation',
region: geometry,
scale: 1000,
crs: "EPSG:4326",
maxPixels: 1e13
});
}
});
}
exportImageCollection(dataset);
运行示例:
地市区域:
工作台输出: