欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 基于 GEE 的研究区 1948—2024 年蒸散 ET 年际变化分析

基于 GEE 的研究区 1948—2024 年蒸散 ET 年际变化分析

2025/11/4 17:00:27 来源:https://blog.csdn.net/ZK180531/article/details/146770601  浏览:    关键词:基于 GEE 的研究区 1948—2024 年蒸散 ET 年际变化分析

目录

1 代码解析

1.1 地理区域设定

1.2 数据获取

1.3 计算年蒸散量

1.4 生成年蒸散量图像集合

1.5 数据导出

1.6 绘制年际变化图表

2 完整代码

3 运行结果


1 代码解析

1.1 地理区域设定

var geometry = table; 
Map.centerObject(geometry, 6);

这部分代码把 table 赋值给 geometry,并且将地图中心定位到这个区域,缩放级别设为 6。

1.2 数据获取

var dataset1 = ee.ImageCollection("NASA/GLDAS/V20/NOAH/G025/T3H");
var dataset2 = ee.ImageCollection("NASA/GLDAS/V021/NOAH/G025/T3H");

这里我们从 GEE 的数据仓库里获取了两个不同版本的 GLDAS 数据集,它们包含了蒸散量相关的数据。

1.3 计算年蒸散量

var getAnnualET = function(year, dataset) {var startDate = ee.Date.fromYMD(year, 1, 1);var endDate = ee.Date.fromYMD(year, 12, 31);return dataset.filterDate(startDate, endDate).select('Evap_tavg').sum().multiply(10800).clip(geometry).set('year', year);
};

getAnnualET 函数用于计算指定年份的年蒸散量。它先确定该年份的起始和结束日期,接着筛选出对应时间段的数据,选取蒸散量平均值这一波段,把该年的蒸散量数据累加起来,再乘以 10800 进行单位换算,最后裁剪到指定的地理区域,并给结果图像设置年份属性。

1.4 生成年蒸散量图像集合

var years1 = ee.List.sequence(1948, 1999);
var years2 = ee.List.sequence(2000, 2024);var annualImages = ee.ImageCollection.fromImages(years1.map(function(y) { return getAnnualET(y, dataset1); }).cat(years2.map(function(y) { return getAnnualET(y, dataset2); }))
);

我们把 1948 - 1999 年和 2000 - 2024 年分成两个时间段,分别调用 getAnnualET 函数计算每年的蒸散量,最后把这些结果合并成一个图像集合。

1.5 数据导出

years1.cat(years2).getInfo().forEach(function(year) {var image = annualImages.filter(ee.Filter.eq('year', year)).first();Export.image.toDrive({image: image,description: year + '_ET',fileNamePrefix: year + '_ET',scale: 27830,region: geometry,maxPixels: 1e13,crs: "EPSG:4326",folder: 'GLDAS_ET'});
});

这部分代码会把每年的蒸散量图像导出到 Google Drive 里,文件名包含年份信息,方便后续的分析和使用。

1.6 绘制年际变化图表

var chart = ui.Chart.image.series({imageCollection: annualImages,region: geometry,reducer: ee.Reducer.mean(),scale: 27830,xProperty: 'year'
}).setOptions({title: 'Interannual Variation of Evapotranspiration',hAxis: { title: 'Year', gridlines: { count: 10 } },vAxis: { title: 'Evapotranspiration (mm/year)' },lineWidth: 1,pointSize: 2,series: { 0: { color: 'black' } }
});print(chart);

最后,我们利用 ui.Chart.image.series 函数绘制了蒸散量的年际变化图表,横坐标是年份,纵坐标是年蒸散量(单位:mm/year),这样可以直观地看到蒸散量随时间的变化趋势。

2 完整代码

var geometry = table; 
Map.centerObject(geometry, 6);var dataset1 = ee.ImageCollection("NASA/GLDAS/V20/NOAH/G025/T3H");
var dataset2 = ee.ImageCollection("NASA/GLDAS/V021/NOAH/G025/T3H");var getAnnualET = function(year, dataset) {var startDate = ee.Date.fromYMD(year, 1, 1);var endDate = ee.Date.fromYMD(year, 12, 31);return dataset.filterDate(startDate, endDate).select('Evap_tavg').sum().multiply(10800).clip(geometry).set('year', year);
};var years1 = ee.List.sequence(1948, 1999);
var years2 = ee.List.sequence(2000, 2024);var annualImages = ee.ImageCollection.fromImages(years1.map(function(y) { return getAnnualET(y, dataset1); }).cat(years2.map(function(y) { return getAnnualET(y, dataset2); }))
);years1.cat(years2).getInfo().forEach(function(year) {var image = annualImages.filter(ee.Filter.eq('year', year)).first();Export.image.toDrive({image: image,description: year + '_ET',fileNamePrefix: year + '_ET',scale: 27830,region: geometry,maxPixels: 1e13,crs: "EPSG:4326",folder: 'GLDAS_ET'});
});var chart = ui.Chart.image.series({imageCollection: annualImages,region: geometry,reducer: ee.Reducer.mean(),scale: 27830,xProperty: 'year'
}).setOptions({title: 'Interannual Variation of Evapotranspiration',hAxis: { title: 'Year', gridlines: { count: 10 } },vAxis: { title: 'Evapotranspiration (mm/year)' },lineWidth: 1,pointSize: 2,series: { 0: { color: 'black' } }
});print(chart);

3 运行结果

长时间序列的年度蒸散发ET数据折线图
点击RUN即可下载数据

通过上述代码,我们成功地利用 GEE 分析了指定区域蒸散量的年际变化。希望这篇推文能帮助你更好地掌握 GEE 的使用,让我们一起在地球科学的研究道路上不断探索!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词