GEE实战1:利用GEE获取流域内的月均降水量【降水量分析】
- GEE实战系列之降水量分析:
- GEE实战1:利用GEE获取流域内的月均降水量【降水量分析】
- 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、小结
- 使用 sum() 计算每个月的总降水量
- 使用 mean() 计算月平均降水量。
参考:
- https://mygeoblog.com/2018/09/30/precipitation-in-river-basin/
GEE实战1:利用GEE获取流域内的月均降水量【降水量分析】相关推荐
- GEE实战2:利用GEE获取流域内的年总降水量【降水量分析】
GEE实战系列之降水量分析: GEE实战1:利用GEE获取流域内的月均降水量[降水量分析] GEE实战2:利用GEE获取流域内的年总降水量[降水量分析] (持续更新中--) 1.目标 利用GEE,获取 ...
- 安全学习概览——恶意软件分析、web渗透、漏洞利用和挖掘、内网渗透、IoT安全分析、区块链、黑灰产对抗...
1 基础知识 1.1 网络 熟悉常见网络协议: https://www.ietf.org/standards/rfcs/ 1.2 操作系统 1.3 编程 2 恶意软件分析 2.1 分类 2.1.1 木 ...
- 如何利用Smartbi做数据分析:2018内5月热销乘用车分析报告
在2018年第一季度热销乘用车分析报告中,SUV以总体销量15.4%的同比增长率让人不可小觑,Smartbi刚得到5月分析的数据就迫不及待的来看看是否热度不减,结果在5月这个所谓汽车销售淡季,轿车以9 ...
- 利用pd时间序列计算日均、月均、年均的快捷方式
1.parse_dates=True设置为时间索引 2.分组函数df.groupby().mean()求平均 3.设置参数,df.index.day/hour/year
- GEE实战 | LULC获取与处理
GEE实战 | LULC获取与处理 LULC数据库 MCD12Q1.006 GlobCover CGLS-LC100 collection 2 Copernicus CORINE Land Cover ...
- GEE学习笔记一 利用GEE获取Sentinel-2 1C与2A级影像
GEE学习笔记一 利用GEE获取Sentinel-2 1C与2A级影像 博主最近在学习利用GEE获取Sentinel-2影像时,发现有两种不同的数据集,下面记录一下利用GEE获取两种数据集的方法. S ...
- GEE在ERA5数据集中提取流域日均温度
GEE在ERA5数据集中提取流域日均温度 主要思路 代码 结果 致谢 主要思路 当我们要提取国外影像的长时间序列.或大尺度地理信息时,可以考虑利用GEE快速实现,免去数据下载和本地存储.运算的麻烦.本 ...
- GEE实战 | 各种指数分析(植被、水体、建筑)
GEE实战 | 各种指数分析(植被.水体.建筑) 指数 植被指数(NDVI | SAVI | IVI) 代码 对比 结论 水体指数(NDWI | MNDWI) 代码 对比 结论 建筑指数(NDBI | ...
- 实战教程!利用Python获取数据,并在地图上批量标注
我们想要在地图上批量标注某一类的大量点位,该怎么操作呢?没有它的坐标数据,就没有办法批量标注.今天给大家介绍下,来自图新地球用户王泽的原创教程--利用Python获取数据,并在地图上批量标注的方法! ...
- 内网渗透-实战|手把手教你如何进行内网渗透
实战|手把手教你如何进行内网渗透 x00 Preface 内网渗透主要是基于前期外围打点getshell的webserver,通过收集webserver上的信息,然后对其他内网主机进行口令上的攻击,当 ...
最新文章
- C++智能指针剖析(上)std::auto_ptr与boost::scoped_ptr
- 病毒汇编逆向分析实例赏析
- 不带参数的SQL语句执行方法
- 函数调用关系图如何画_乌鲁木齐126中一校三址关系图出炉!佳源和绿谷应该如何选择?...
- jca使用_使用JCA的密码学–提供者中的服务
- Java—简单的图书管理系统
- 你想知道的动态URL、静态URl、伪静态URL概念及区别都在这里!
- 使用Maven把项目打包成可执行jar在Idea里
- Linux设备树 .dtb文件,内核使用dtb文件的过程
- Java学习资源、视频教程汇总
- linux解析器错误权限不够,实例解析Linux下目录的权限
- C语言学习——编程软件安装和使用
- thinkpad X230 黑屏折腾
- CDHD驱动器——ServoStudio配置高创伺服速度模式不转
- python基础知识补充
- 基于bp的神经网络算法,bp神经网络是什么算法
- Docker教程01
- 使用批处理修改Floppy image - 免费小工具EXTRACT.EXE介绍
- 中国新材料产业园区投资分析及竞争战略咨询报告2022年版
- CAD是什么?CAD制图软件功能大汇总