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

2023-10-13 20:10

本文主要是介绍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 提取研究区的降水数据并绘制曲线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/205575

相关文章

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模