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 Transformers库(NLP处理库)案例代码讲解

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

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地