PIE-Engine案例-1 提取研究区的降水数据并绘制曲线

1、目标

提取研究区的月度降水数据平均并绘制折线图,如下图所示

在这里插入图片描述

2、数据

本次案例使用中国区域地面气象要素驱动数据月度合成产品(1979-2018)。

3、实现

该数据是一个栅格数据,提取方法是对栅格数据截取出研究区范围的气象数据,再求取出其平均值,得到研究区每个月的降水量。

用到的函数:

reduceRegion(reducer,geometry,scale)
/*对特定区域的所有像素进行统计,返回结果为一个JSON对象;目前可完成最大、最小和求和统计计算。
使用对象是Image
reducer 构造统计类型pie.Reducer.mean(),max(),min()
geometry 研究区
scale 尺度
*/

4、代码实现

//提取某一区域的降水并绘制折线图
var region = pie.FeatureCollection("user/15509400084/Border/Image_Border")
    .first()
    .geometry();

//计算2017年每月的平均降水数据
//2017年1月
var CMFD201701 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201701").select('prec').clip(region);
var prec201701 = CMFD201701.multiply(8760);
var prec201701_mean = prec201701.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年2月
var CMFD201702 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201702").select('prec').clip(region);
var prec201702 = CMFD201702.multiply(8760);
var prec201702_mean = prec201702.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年3月
var CMFD201703 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201703").select('prec').clip(region);
var prec201703 = CMFD201703.multiply(8760);
var prec201703_mean = prec201703.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年4月
var CMFD201704 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201704").select('prec').clip(region);
var prec201704 = CMFD201704.multiply(8760);
var prec201704_mean = prec201704.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年5月
var CMFD201705 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201705").select('prec').clip(region);
var prec201705 = CMFD201705.multiply(8760);
var prec201705_mean = prec201705.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年6月
var CMFD201706 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201706").select('prec').clip(region);
var prec201706 = CMFD201706.multiply(8760);
var prec201706_mean = prec201706.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年7月
var CMFD201707 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201707").select('prec').clip(region);
var prec201707 = CMFD201707.multiply(8760);
var prec201707_mean = prec201707.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年8月
var CMFD201708 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201708").select('prec').clip(region);
var prec201708 = CMFD201708.multiply(8760);
var prec201708_mean = prec201708.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年9月
var CMFD201709 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201709").select('prec').clip(region);
var prec201709 = CMFD201709.multiply(8760);
var prec201709_mean = prec201709.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年10月
var CMFD201710 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201710").select('prec').clip(region);
var prec201710 = CMFD201710.multiply(8760);
var prec201710_mean = prec201710.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年11月
var CMFD201711 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201711").select('prec').clip(region);
var prec201711 = CMFD201711.multiply(8760);
var prec201711_mean = prec201711.reduceRegion(pie.Reducer.mean(), region, 1000);
//2017年12月
var CMFD201712 = pie.Image("TPDC/CMFD_01MONTH/CMFD_01MONTH_201712").select('prec').clip(region);
var prec201712 = CMFD201712.multiply(8760);
var prec201712_mean = prec201712.reduceRegion(pie.Reducer.mean(), region, 1000);

//配置折线图的样式
var line_options = {
    title: '降水量(mm)',
    legend: ['降水量(mm)'],
    xAxisName: "月份",
    yAxisName: "月降水量(mm)",
    chartType: "line"
};
//Y轴数据
var images = [prec201701_mean,
              prec201702_mean,
              prec201703_mean,
              prec201704_mean,
              prec201705_mean,
              prec201706_mean,
              prec201707_mean,
              prec201708_mean,
              prec201709_mean,
              prec201710_mean,
              prec201711_mean,
              prec201712_mean,
              prec201801_mean
              ];
//X轴数据
var xSeries = [201701,201702,201703,201704,201705,201706,201707,201708,201709,201710,201711,201712,];
//绘制折线图
var chart =  ui.Chart.image(images, xSeries,line_options);
print(chart)
print('完成')







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

维吉斯蔡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值