google earth engine(GEE) 统计点的长期温度

背景:我想统计海水的长期温度,一共有70个左右的点,这个点数据是我上传的shp文件。

下图是我的一个点在2000年到2019年每个月的温度合成数据,可以看到效果挺不错的。

要完成这个代码需要以下几个步骤:

1.筛选数据;

var sst = modis
    .select('sst')
    .filterDate(ee.Date('2000-01-01'), ee.Date('2019-12-31'));

2.获得每一月的合成值;

var years = ee.List.sequence(2000, 2019);

//获得每一月的合成值
var byMonthYear = ee.ImageCollection.fromImages(
    years.map(function(y) {
    return months.map(function (m) {
      return sst
        .filter(ee.Filter.calendarRange(y, y, 'year'))
        .filter(ee.Filter.calendarRange(m, m, 'month'))
        .mean()
        .set('system:month', m).set('system:year', y);
          });}).flatten());

3.根据每个月的合成值制表格;

//根据每个月的合成值制表格
var temp_trend = ui.Chart.image.series({
  imageCollection: byMonthYear,
  region: roi,
  reducer: ee.Reducer.median(),
  scale: 1000,
  // xProperty: 'system:time_start'
  xProperty: 'system:index'
})
  .setOptions({
    lineWidth: 1,
    pointSize: 3,
    trendlines: {0: {
        color: 'CC0000'
      }},
     title: "每个月的合成温度"+Point_name,
     vAxis: {title:"单位:摄氏度℃"}});
print(temp_trend);
}

4.循环所有矢量点,获取所有点的温度。

//循环矢量
print(river)
var woredaNames = river.aggregate_array("FID");
for (var woreda=0; woreda < 1 ;woreda++){
    // Focus on one region:
    var point_name=woreda;
    var focusRegion = river.filter(ee.Filter.eq('FID', woreda));
    point_tem(focusRegion,point_name)
  
}

这个链接是我的gee温度统计代码,可以给读者参考一下。

https://code.earthengine.google.com/e3a8f4d389b85331e4f047aacc32b7bb

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叫我锐多宝

请我喝杯啤酒吧

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

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

打赏作者

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

抵扣说明:

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

余额充值