GEE代码实例教程详解:降水量异常分析

简介

在本篇博客中,我们将通过Google Earth Engine (GEE) 分析特定区域内的降水量异常。利用UCSB-CHG提供的CHIRPS(Climate Hazards Group InfraRed Precipitation with Station data)数据集,我们可以监测2000年至2020年期间的降水量变化。

背景知识

CHIRPS数据集

CHIRPS数据集是一个高分辨率的全球降水量产品,它结合了红外估算和地面站数据,提供了每日降水量估计。

降水量异常

降水量异常指的是与长期平均降水量相比的偏差,这可以指示干旱或过量降水事件。

完整代码

// 定义研究区域的坐标点
var cor = [[54.04610024292115, 36.26824729036319],[56.30928383667115, 36.26824729036319],[56.30928383667115, 37.7942120428063],[54.04610024292115, 37.7942120428063],[54.04610024292115, 36.26824729036319]
];// 创建多边形区域
var roi = ee.Geometry.MultiPolygon(cor);// 将多边形添加到地图上
Map.addLayer(roi, {color: 'red'});// 定义时间范围
var time_start = '2000';
var time_end = '2020';// 创建CHIRPS图像集合并筛选数据
var chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY").filterDate(time_start, time_end);// 定义一个函数来创建时间序列的图像集合
function temporal_collection(collection, start, count, interval, unit) {var seq = ee.List.sequence(0, ee.Number(count).subtract(1));var origin_date = ee.Date(start);return ee.ImageCollection(seq.map(function(i) {var start_date = origin_date.advance(ee.Number(interval).multiply(i), unit);var end_date = origin_date.advance(ee.Number(interval).add(1).multiply(i), unit);return collection.filterDate(start_date, end_date).sum().set('system:time_start', start_date.millis()).set('system:time_end', end_date.millis());}));
}// 创建月降水量图像集合
var monthly = temporal_collection(chirps, time_start, 240, 1, 'month');// 计算月降水量平均值
var pr_mean = monthly.mean();// 将平均降水量图层添加到地图上
Map.addLayer(pr_mean.clip(roi), {min: 0, max: 10, palette: ['blue', 'green', 'yellow']}, 'Mean Precipitation');// 计算降水量异常
var anomaly = monthly.map(function(img) {return img.subtract(pr_mean).copyProperties(img, img.propertyNames());
});// 打印降水量异常的图表
print(ui.Chart.image.series({imageCollection: anomaly,region: roi,reducer: ee.Reducer.mean(),scale: 5000,xProperty: 'system:time_start'}).setChartType('ColumnChart')
);// 将2010年的降水量异常图层添加到地图上
Map.addLayer(anomaly.filterDate('2010', '2011').toBands().clip(roi), {min: -5, max: 5, palette: ['red', 'yellow', 'green']}, 'Precipitation Anomaly 2010');// 导出2010年的降水量异常图像到Google Drive
Export.image.toDrive({image: anomaly.filterDate('2010', '2011').toBands().clip(roi).float(),description: 'Precipitation Anomaly 2010',scale: 5000,region: roi,folder: 'Precipitation',crs: 'EPSG:4326'
});

代码详解

1. 定义研究区域

创建一个多边形区域roi,用于限定分析的地理范围。

2. 创建CHIRPS图像集合

获取CHIRPS数据集,并根据指定的时间范围筛选图像。

3. 时间序列图像集合

定义temporal_collection函数,用于生成按月汇总的降水量图像集合。

4. 计算月降水量平均值

使用mean方法计算整个时间序列的平均月降水量。

5. 计算降水量异常

通过从每月的降水量中减去平均值来计算降水量异常。

6. 可视化降水量异常

使用ui.Chart.image.series打印降水量异常的图表,并将其添加到地图上。

7. 导出数据

将2010年的降水量异常图像导出到Google Drive。

结论

本教程展示了如何使用GEE分析特定区域内的降水量异常。通过CHIRPS数据集,我们能够监测和可视化降水量的变化趋势,这对于理解气候变化和水资源管理至关重要。

进一步探索

GEE是一个强大的平台,可以用来分析各种环境和气候变化相关的问题。在后续的教程中,我们将继续探索GEE在不同领域的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/43074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人员定位系统的功能,你知道多少呢?

在此前的文章中,说到了人员定位系统用于化工厂定位这一用途来完善工厂管理,但同时,基于人员定位系统的强大功能,该系统的应用范围也要宽范的多,那么,本篇文章就来为大家介绍一下吧。 人员定位系统的功能简介…

C++、QT企业管理系统

目录 一、项目介绍 二、项目展示 三、源码获取 一、项目介绍 人事端: 1、【产品中心】产品案列、新闻动态的发布; 2、【员工管理】新增、修改、删除、搜索功能;合同以图片的方式上传 3、【考勤总览】根据日期显示所有员工上班、下班时间…

[每周一更]-(第104期):Go中使用Makefile的经验

文章目录 1. 项目结构2. Makefile的基础知识什么是 Makefile 3. Go项目的Makefile示例4. 详细解释每个Makefile目标5. 使用Makefile执行常见任务 在Go项目中,使用Makefile可以简化和自动化常见的开发和部署任务,如编译、测试、格式化和清理。深入认识及实…

javascript如何实现两个变量值互换

javascript如何实现两个变量值互换。 核心思路是在定义第三个变量 第一个变量值赋值给第三个变量 第二个变量赋值给第一个变量 第三个变量值赋值给第二个变量 代码如下 var a10 var b20 var c ca ab bc

SRS流媒体服务器概述

SRS/5.0(Bee) is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH and GB28181. 翻译:SRS/5.0(Bee)是一款简洁、高效、实时的视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DAS…

Ubuntu开源软件LibreOffice将Excel多表转PDF多目录示例

一、实现的起因: Windows平台下,常见的WPS办公自动化套件中电子表格软件,其中具备将Excel工作表中数据转为PDF文档表格的功能。现在进一步的需求是:像PDF标准的电子书那样,具备一本书的目录结构或章节结构&#xff0c…

怎么才能选到好的猫咪主食冻干?公认顶尖优秀主食冻干总结

如今,主食冻干市场纷繁多样,质量水平却大相径庭。部分品牌盲目追求高营养值和利润增长,却忽略了猫咪健康饮食的本质需求,导致市场上充斥着以次充好、虚假标注日期等不法行为。更有甚者,部分产品未经权威第三方检测便匆…

vue安装总是失败原因剖析

今天要用vue2的环境开发,当前环境是vue3。 错误尝试: 直接在应用里面卸载nodejs,然后安装新的nodejs。这样做会出现node与npm都安装成功,但是vue怎么都安装不成功。这时我还怀疑是环境变量等的问题,结果设置完还是不起…

Docker——简介、安装(Ubuntu22.04)

1、简介 Docker 是一个开源的容器化平台,旨在简化应用程序的开发、交付和运行。它通过将应用程序及其所有依赖项打包到一个称为容器的标准化单元中,使应用程序能够在任何环境中一致地运行。Docker 解决了“在我的机器上能运行”的问题,使开发…

【AI大模型】跌倒监控与健康:技术实践及如何改变未来

文章目录 1. **背景与意义**2. **关键技术与方法**2.1 传感器数据融合2.2 深度学习模型2.3 行为模式识别2.4 预测与预防 3. **应用场景**3.1 老年人跌倒预警3.2 康复患者监测3.3 高风险职业防护 4. **实践案例**案例1:某老年社区的跌倒预警系统案例2:康复…

Redis存储原理与数据模型

Redis存储结构 存储转换 redis-value编码 string int:字符串长度小于等于20切能转成整数raw:字符串长度大于44embstr:字符串长度小于等于44 list quicklist(双向链表)ziplist(压缩链表) hash …

意得辑ABSJU202优惠15%啦,新用户注册直减哦

不得不说,还得是意得辑,钱不白花,润色的挺好~ 第一篇SCI终于成功见刊!!! 都来接accept!!!谢谢accept小狗,接accept 求求accept小狗,真的想要双证毕…

站常用金属材料检测试题

一、单选题 1.正火采用的哪一种冷却方式( ) A.风冷 B.炉冷 C.油冷 D.空冷 参考答案:D 2.哪个合金属于弹簧钢?( ) A.20Cr B.9SiCr C.65Mn D.W18Cr4V 参考答案:C 3.T8A是什么工具钢?( ) A.碳素工具钢 B

OS-HACKNOS-2.1

确定靶机IP地址 扫描靶机开放端口信息 目录扫描 访问后发现个邮箱地址 尝试爆破二级目录 确定为wordpress站 利用wpscan进行漏洞扫描 #扫描所有插件 wpscan --url http://192.168.0.2/tsweb -e ap 发现存在漏洞插件 cat /usr/share/exploitdb/exploits/php/webapps/46537.txt…

关于QFontMetrics的使用时机

QFontMetrics 是一个非常有用的类,用于测量字体的各种属性,如文本的宽度、高度以及字符的尺寸等。它在 Qt 中的许多场景下都非常有用,特别 是在需要精确控制文本布局和绘制的情况下。以下是一些 QFontMetrics 最常用的时机: 1. …

location匹配和rewrite重定向

目录 location 匹配 location匹配的分类和优先级 优先级细分 实际网站中的使用规则 1.用精确匹配来实现网站的首页 访问网站的首页 ( /) 2.用正则匹配来实现静态请求的页面和图片 匹配静态页面 访问图片或者指定的后缀名 3.用一般匹配转发.php…

树状数组

树状数组 树状数组的核心思想:分治。将数组以二叉树的形式进行维护区间之和。 设 a a a为原数组, t r e e tree tree为树状数组。 t r e e tree tree数组用于存储树上该结点下严格直连的子节点之和(例: t [ 1 ] a [ 1 ] , t [ 2 ] t [ 1 …

SQL面试题练习 —— 连续签到领金币

目录 1 题目2 建表语句3 题解 题目来源:百度。 1 题目 有用户签到记录表,t_coin_signin,记录用户当天是否完成签到,请计算出每个用户的每个月获得的金币数量; 签到领金币规则如下: 用户签到获得1金币&…

LinearLayout的测量流程

在日常开发中我们常常使用LinearLayout作为布局Group,本文从其源码实现出发分析测量流程。大家可以带着问题进入下面的分析流程,看看是否能找到答案。 垂直测量 View的测量入口方法是onmeasure方法。LinearLayout的onMeasure方法根据其方向而做不同的处…

使用C++实现ATM系统,谈谈思路及代码实现

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…