• 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获取流域内的月均降水量【降水量分析】相关推荐

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

    GEE实战系列之降水量分析: GEE实战1:利用GEE获取流域内的月均降水量[降水量分析] GEE实战2:利用GEE获取流域内的年总降水量[降水量分析] (持续更新中--) 1.目标 利用GEE,获取 ...

  2. 安全学习概览——恶意软件分析、web渗透、漏洞利用和挖掘、内网渗透、IoT安全分析、区块链、黑灰产对抗...

    1 基础知识 1.1 网络 熟悉常见网络协议: https://www.ietf.org/standards/rfcs/ 1.2 操作系统 1.3 编程 2 恶意软件分析 2.1 分类 2.1.1 木 ...

  3. 如何利用Smartbi做数据分析:2018内5月热销乘用车分析报告

    在2018年第一季度热销乘用车分析报告中,SUV以总体销量15.4%的同比增长率让人不可小觑,Smartbi刚得到5月分析的数据就迫不及待的来看看是否热度不减,结果在5月这个所谓汽车销售淡季,轿车以9 ...

  4. 利用pd时间序列计算日均、月均、年均的快捷方式

    1.parse_dates=True设置为时间索引 2.分组函数df.groupby().mean()求平均 3.设置参数,df.index.day/hour/year

  5. GEE实战 | LULC获取与处理

    GEE实战 | LULC获取与处理 LULC数据库 MCD12Q1.006 GlobCover CGLS-LC100 collection 2 Copernicus CORINE Land Cover ...

  6. GEE学习笔记一 利用GEE获取Sentinel-2 1C与2A级影像

    GEE学习笔记一 利用GEE获取Sentinel-2 1C与2A级影像 博主最近在学习利用GEE获取Sentinel-2影像时,发现有两种不同的数据集,下面记录一下利用GEE获取两种数据集的方法. S ...

  7. GEE在ERA5数据集中提取流域日均温度

    GEE在ERA5数据集中提取流域日均温度 主要思路 代码 结果 致谢 主要思路 当我们要提取国外影像的长时间序列.或大尺度地理信息时,可以考虑利用GEE快速实现,免去数据下载和本地存储.运算的麻烦.本 ...

  8. GEE实战 | 各种指数分析(植被、水体、建筑)

    GEE实战 | 各种指数分析(植被.水体.建筑) 指数 植被指数(NDVI | SAVI | IVI) 代码 对比 结论 水体指数(NDWI | MNDWI) 代码 对比 结论 建筑指数(NDBI | ...

  9. 实战教程!利用Python获取数据,并在地图上批量标注

    我们想要在地图上批量标注某一类的大量点位,该怎么操作呢?没有它的坐标数据,就没有办法批量标注.今天给大家介绍下,来自图新地球用户王泽的原创教程--利用Python获取数据,并在地图上批量标注的方法! ...

  10. 内网渗透-实战|手把手教你如何进行内网渗透

    实战|手把手教你如何进行内网渗透 x00 Preface 内网渗透主要是基于前期外围打点getshell的webserver,通过收集webserver上的信息,然后对其他内网主机进行口令上的攻击,当 ...

最新文章

  1. C++智能指针剖析(上)std::auto_ptr与boost::scoped_ptr
  2. 病毒汇编逆向分析实例赏析
  3. 不带参数的SQL语句执行方法
  4. 函数调用关系图如何画_乌鲁木齐126中一校三址关系图出炉!佳源和绿谷应该如何选择?...
  5. jca使用_使用JCA的密码学–提供者中的服务
  6. Java—简单的图书管理系统
  7. 你想知道的动态URL、静态URl、伪静态URL概念及区别都在这里!
  8. 使用Maven把项目打包成可执行jar在Idea里
  9. Linux设备树 .dtb文件,内核使用dtb文件的过程
  10. Java学习资源、视频教程汇总
  11. linux解析器错误权限不够,实例解析Linux下目录的权限
  12. C语言学习——编程软件安装和使用
  13. thinkpad X230 黑屏折腾
  14. CDHD驱动器——ServoStudio配置高创伺服速度模式不转
  15. python基础知识补充
  16. 基于bp的神经网络算法,bp神经网络是什么算法
  17. Docker教程01
  18. 使用批处理修改Floppy image - 免费小工具EXTRACT.EXE介绍
  19. 中国新材料产业园区投资分析及竞争战略咨询报告2022年版
  20. CAD是什么?CAD制图软件功能大汇总

热门文章

  1. git仓库的操作命令
  2. 记一次求职U3D面试心得
  3. python如何求一个列表里所有数字的和_Python求一个数字列表的元素总和
  4. 前端工程师--系统学习文档
  5. U3D版本《暗黑世界V1.0》编译——图文教程!
  6. 如何组建一个合理的研发团队?
  7. 你对阿里人一无所知!!!
  8. 判断身份证号年龄大于80岁
  9. 错误:on path: DexPathList[[zip file /data/app
  10. 之前的良心云1C2G学生机和白女票机可以免费升2C4G