Google Earth Engine(GEE)计算降水量偏差

今天来简单分享下如何在GEE计算某一地区降水量的偏差

目标:

在GEE计算某一地区降水量的偏差,以百分比显示,并制作统计图

以河南省为研究区

GEE实现代码:

首先确定研究区和使用的数据集

var chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/PENTAD")
// 选择的数据集为"UCSB-CHG/CHIRPS/PENTAD"
//CHIRPS的数据是以Pentad形式出现的
var roi = ee.FeatureCollection("users/lilei655123/HeNan_shi");
Map.centerObject(roi,7)
var styling = {color:"red",fillColor:"00000000"};
Map.addLayer(roi.style(styling),{},"geometry")

CHIRPS Pentad提供了1981年以来的数据,为全球降雨量数据集

确定计算月平均值的时期(10年)

// 我们可以计算出每月的平均值
var lpaYears = ee.List.sequence(2010, 2020);
var months = ee.List.sequence(1, 12);

创建一个每月的总数集合

var monthlyImages = lpaYears.map(function(year) {
  return months.map(function(month) {
    var filtered = chirps
      .filter(ee.Filter.calendarRange(year, year, 'year'))
      .filter(ee.Filter.calendarRange(month, month, 'month'))
    var monthly = filtered.sum()
    return monthly.set({'month': month, 'year': year})
  })
}).flatten()
print(monthlyImages);

我们可以计算出所有年份中每个月的平均值

var shortTermMeans10y = months.map(function(month) {
    var filtered = monthlyCol.filter(ee.Filter.eq('month', month))
    var monthlyMean = filtered.mean()
    return monthlyMean.set('month', month)
})
var monthlyRainfall = ee.ImageCollection.fromImages(shortTermMeans10y)

现在我们采取2021年的数据,并计算出月平均值

var filtered = chirps
  .filter(ee.Filter.date('2021-01-01', '2021-12-31'))
  .filter(ee.Filter.bounds(roi));
// 计算月平均降雨量
var monthlyTotals = months
  .map(function(month) {
    return filtered
      .filter(ee.Filter.calendarRange(month, month, 'month'))
        .sum()
        .set('month', month);
});

计算偏差,单位为%

var deviation = months.map(function(month) {
  var shortTermMean10y = monthlyRainfall
    .filter(ee.Filter.eq('month', month)).first()
  var monthlyObserved = observedRainfall
    .filter(ee.Filter.eq('month', month)).first()
  var deviation = (monthlyObserved.subtract(shortTermMean10y)
    .divide(shortTermMean10y)).multiply(100)
    .set('month', month)
  return deviation
})

创建统计图

var chart = ui.Chart.image.series({
  imageCollection: deviation, 
  region: roi, 
  reducer: ee.Reducer.mean(), 
  scale: 10000,
  xProperty: 'month'
}).setOptions({
      interpolateNulls: true,
      lineWidth: 1,
      pointSize: 3,
      title: '降雨量均值偏差',
      vAxis: {title: '偏差 %'},
      hAxis: {title: 'Month', gridlines: {count: 12}}
});
print(chart);

运行结果如下:

Google Earth Engine(GEE)计算降水量偏差_第1张图片

Google Earth Engine(GEE)计算降水量偏差_第2张图片

完整代码请在公众号后台回复“0730降水量偏差”

感谢关注,欢迎转发!

声明:仅供学习使用!

希望关注的朋友们转发,如果对你有帮助的话记得给小编点个赞或者在看

## ****更多内容请关注微信公众号“生态遥感监测笔记”**

你可能感兴趣的:(GEE,大数据,python,数据分析,深度学习,人工智能)