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);

运行结果如下:

5d9a2317b68a417f74b229d772045103.png

c9867bc2764ea1a7b907285a807cb00d.png

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

感谢关注,欢迎转发!

声明:仅供学习使用!

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

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生态遥感监测笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值