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编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

MySQL 表的内外连接案例详解

《MySQL表的内外连接案例详解》本文给大家介绍MySQL表的内外连接,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录表的内外连接(重点)内连接外连接表的内外连接(重点)内连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我