本文主要是介绍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('完成')
这篇关于PIE-Engine案例-1 提取研究区的降水数据并绘制曲线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!