GEE实战1:利用GEE获取流域内的月均降水量【降水量分析】

2023-11-09 11:20

本文主要是介绍GEE实战1:利用GEE获取流域内的月均降水量【降水量分析】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • GEE实战系列之降水量分析:
  1. GEE实战1:利用GEE获取流域内的月均降水量【降水量分析】
  2. GEE实战2:利用GEE获取流域内的年总降水量【降水量分析】

(持续更新中……)


 1、目标

利用GEE,获取流域内的月均降水量,或者月均降水量的最大值、最小值、平均值?

2、实现步骤



llhydrosheds.org拥有区域和全球范围应用的水文信息数据。

第 1 步:下载此文件并将其摄取到地球引擎: 盆地

步骤2:导入数据并将数据添加到地图中。

Step 3 : 使用inspector 选择一个流域。

var myBasin = basins.filter(ee.Filter.eq("BASIN_ID",420525));

第 4 步:设置感兴趣的期间。

// variables for start and end year
var startyear = 2000;
var endyear = 2016; // variables for start and end month
var startmonth = 1;
var endmonth = 1;// define start and end date
var startdate = ee.Date.fromYMD(startyear,startmonth,1);
var enddate = ee.Date.fromYMD(endyear+1,endmonth,1);// create list for years
var years = ee.List.sequence(startyear,endyear);

第5步:导入啁啾并过滤时间段。

// select precipitation for time range
var P = chirps.filterDate(startdate, enddate)// Sort chronologically in descending order..sort('system:time_start', false)

第6步:导入chirps并过滤时间段。
 

// select precipitation for time range
var P = chirps.filterDate(startdate, enddate)// Sort chronologically in descending order..sort('system:time_start', false)

第 7 步:包括以下代码段以计算年降水量。我们在哪里需要什么?最小值、最大值、平均值、总和?
 

// calculate yearly P
var yearlyP =  ee.ImageCollection.fromImages(years.map(function (y) {var w = P.filter(ee.Filter.calendarRange(y, y, 'year')).???();return w.set('year', y).set('date', ee.Date.fromYMD(y,1,1)).set('system:time_start',ee.Date.fromYMD(y,1,1)); }));

第 8 步:现在我们将设置图像和条形图的可视化。
 

// set visualizaton parameters
var p_viz = {min:0.0, max:2400, palette:"000000,0000FF,FDFF92,FF2700,FF00E7"};// Predefine the chart titles.
var title = {title: 'Yearly precipitation',hAxis: {title: 'Time'},vAxis: {title: 'Precipitation (mm)'},
};

第 9 步 我们根据年降水量数据创建图表,使用盆地多边形作为区域,并使用缩减器来计算该区域的平均降水量。
 

var chart = ui.Chart.image.seriesByRegion(yearlyP,myBasin, ee.Reducer.mean(), 'precipitation', 2500, 'system:time_start', 'SITE')
.setOptions(title)
.setChartType('ColumnChart');

第 9 步:显示结果。我们在哪里需要什么?最小值、最大值、平均值、总和?
 

// plot the chart
print(chart)// center the map
Map.centerObject(myBasin, 5);// plot the map
Map.addLayer(yearlyP.mean().clip(myBasin),p_viz, "mean yearly P")

 3、完整代码

(1)JavaScrip代码

Map.addLayer(myBasin,{},"my basin");// variables for start and end year
var startyear = 2000;
var endyear = 2016; // variables for start and end month
var startmonth = 1;
var endmonth = 1;// define start and end date
var startdate = ee.Date.fromYMD(startyear,startmonth,1);
var enddate = ee.Date.fromYMD(endyear+1,endmonth,1);// create list for years
var years = ee.List.sequence(startyear,endyear);// select precipitation for time range
var P = chirps.filterDate(startdate, enddate)// Sort chronologically in descending order..sort('system:time_start', false)// calculate yearly P
var yearlyP =  ee.ImageCollection.fromImages(years.map(function (y) {var w = P.filter(ee.Filter.calendarRange(y, y, 'year')).sum();return w.set('year', y).set('date', ee.Date.fromYMD(y,1,1)).set('system:time_start',ee.Date.fromYMD(y,1,1)); }));// set visualizaton parameters
var p_viz = {min:0.0, max:3400, palette:"000000,0000FF,FDFF92,FF2700,FF00E7"};// Predefine the chart titles.
var title = {title: 'Yearly precipitation',hAxis: {title: 'Time'},vAxis: {title: 'Precipitation (mm)'},
};var chart = ui.Chart.image.seriesByRegion(yearlyP,myBasin, ee.Reducer.mean(), 'precipitation', 2500, 'system:time_start', 'SITE').setOptions(title).setChartType('ColumnChart');// plot the chart
print(chart)

(2)python代码

(3)结果如下

4、小结

  1.  使用 sum() 计算每个月的总降水量
  2. 使用 mean() 计算月平均降水量。


参考:

  • https://mygeoblog.com/2018/09/30/precipitation-in-river-basin/

这篇关于GEE实战1:利用GEE获取流域内的月均降水量【降水量分析】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

【青龙面板辅助】JD商品自动给好评获取京豆脚本

1.打开链接 开下面的链接进入待评价商品页面 https://club.jd.com/myJdcomments/myJdcomments.action?sort=0 2.登陆后执行脚本 登陆后,按F12键,选择console,复制粘贴以下代码,先运行脚本1,再运行脚本2 脚本1代码 可以自行修改评价内容。 var content = '材质很好,质量也不错,到货也很快物流满分,包装快递满

PyTorch模型_trace实战:深入理解与应用

pytorch使用trace模型 1、使用trace生成torchscript模型2、使用trace的模型预测 1、使用trace生成torchscript模型 def save_trace(model, input, save_path):traced_script_model = torch.jit.trace(model, input)<

打包体积分析和优化

webpack分析工具:webpack-bundle-analyzer 1. 通过<script src="./vue.js"></script>方式引入vue、vuex、vue-router等包(CDN) // webpack.config.jsif(process.env.NODE_ENV==='production') {module.exports = {devtool: 'none

Spring 内部类获取不到@Value配置值问题排查(附Spring代理方式)

目录 一、实例问题 1、现象 2、原因 3、解决 二、Spring的代理模式 1、静态代理(Static Proxy) 1)原理 2)优缺点 3)代码实现 2、JDK动态代理(JDK Dynamic Proxy) 1)原理 2)优缺点 3)代码实现 3、cglib 代理(Code Generation Library Proxy) 1)原理 2)优缺点 3)代码实

Java中的大数据处理与分析架构

Java中的大数据处理与分析架构 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来讨论Java中的大数据处理与分析架构。随着大数据时代的到来,海量数据的存储、处理和分析变得至关重要。Java作为一门广泛使用的编程语言,在大数据领域有着广泛的应用。本文将介绍Java在大数据处理和分析中的关键技术和架构设计。 大数据处理与

段,页,段页,三种内存(RAM)管理机制分析

段,页,段页         是为实现虚拟内存而产生的技术。直接使用物理内存弊端:地址空间不隔离,内存使用效率低。 段 段:就是按照二进制文件的格式,在内存给进程分段(包括堆栈、数据段、代码段)。通过段寄存器中的段表来进行虚拟地址和物理地址的转换。 段实现的虚拟地址 = 段号+offset 物理地址:被分为很多个有编号的段,每个进程的虚拟地址都有段号,这样可以实现虚实地址之间的转换。其实所谓的地

获取Windows系统版本号(转)

https://blog.csdn.net/sunflover454/article/details/51525179