GEE必须会教程—蒸散发数据时间序列分析与下载

今天带来的有关蒸散发数据的下载代码,蒸散发数据在气象气候,农业干旱监测等领域应用广泛,那么在GEE上如何方便快捷获取蒸散发数据呢?今天跟着小编分享代码,快来学习吧!!

A.定义研究区域

//定义研究区域 
var geometry = ee.FeatureCollection('users/hesuixinya511/ganzhou');
//聚焦研究区域 
Map.centerObject(geometry,6); 

这里小编以赣州市作为研究区域。

B.影像调用与数据筛选

//加载MODIS蒸发量数据,按照2001-2020年赣州市的研究区域范围完成数据筛选和裁剪  
var collection = ee.ImageCollection('MODIS/006/MOD16A2').filter(ee.Filter.date('2001-01-01', '2023-12-31')).filterBounds(geometry).select('ET');//选择PET(潜在蒸发量)波段数据 

小编选择的是MODIS的数据产品,为MOD16A2,该数据产品提供ET、PET等近20年的数据,以下显示的是该数据的波段信息,我们挑了ET即总的蒸散发作为例子:

C.年度蒸发量数据合成

//合成年总蒸发量数据
var years = ee.List.sequence(2001, 2023);
var collectYear = ee.ImageCollection(years.map(function(y) {var start = ee.Date.fromYMD(y, 1, 1);var end = start.advance(12, 'month');return collection.filterDate(start, end).reduce(ee.Reducer.sum()).float().set('system:time_start',y).set('year',y);
}));
print(collectYear);

D.影像批量裁剪

//利用赣州市的行政边界裁剪蒸散发数据
var clip_Collection=collectYear.map(function(img){return img.clip(geometry);
});
print(clip_Collection);

E.影像的可视化

var palettes = require('users/gena/packages:palettes');
var evapotranspirationVis = {min: 0,max: 300,palette: palettes.colorbrewer.RdYlBu[11]
};
Map.addLayer(clip_Collection.median(), evapotranspirationVis, 'Evapotranspiration');

F.年度时间序列展示

//时间序列展示
var Yearly_Chart = ui.Chart = ui.Chart.image.series({imageCollection:clip_Collection.select("ET_sum"),region:geometry,reducer:ee.Reducer.mean(),scale:500,xProperty:"year",
}).setOptions({interpolateNulls:true,lineWidth:2,pontSize:3,title:"PET Yearly Series",vAxis:{title:"PET"},hAxis:{title:"Date"},trendlines:{0:{title:"PET_trend",type:"linear",showR2:true,color:"red",visibleInLegend:true}}
});
print(Yearly_Chart);

G.影像批量下载

//定义下载影像函数 
function exportImage(image, region, fileName) {  Export.image.toDrive({  image: image,  description: "Drive-"+fileName,//影像名称   fileNamePrefix: fileName,  folder: "GanzhouET",  //文件夹名称 scale: 500,  region: region,  maxPixels: 1e13,  crs: "EPSG:4326"  });  
}
//生成时间序列按照循环迭代下载数据集的每一张影像 
var indexList = clip_Collection.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");  
print("indexList", indexList);  
indexList.evaluate(function(indexs) {  for (var i=0; i<indexs.length; i++) {  var image = clip_Collection.filter(ee.Filter.eq("system:index", indexs[i])).first();  exportImage(image, geometry, "20"+indexs[i+1]);  }  
}); 

H.导出为CSV格式

//导出为CSV格式
var table = ee.FeatureCollection(clip_Collection.map(function(image){var date = image.get("year");return ee.Feature(null,{"date":date,"value":image.reduceRegion(ee.Reducer.mean(),geometry,500).get("ET_sum")});
}));
Export.table.toDrive({collection:table,description:"Yearly_series",folder:"ET",fileNamePrefix:"ET_Year",fileFormat:"CSV"
});

I.本篇案例完整代码

//定义研究区域 
var geometry = ee.FeatureCollection('users/hesuixinya511/ganzhou');
//聚焦研究区域 
Map.centerObject(geometry,6); 
//加载MODIS蒸发量数据,按照2001-2020年赣州市的研究区域范围完成数据筛选和裁剪  
var collection = ee.ImageCollection('MODIS/006/MOD16A2').filter(ee.Filter.date('2001-01-01', '2023-12-31')).filterBounds(geometry).select('ET');//选择PET(潜在蒸发量)波段数据 
//合成年总蒸发量数据
var years = ee.List.sequence(2001, 2023);
var collectYear = ee.ImageCollection(years.map(function(y) {var start = ee.Date.fromYMD(y, 1, 1);var end = start.advance(12, 'month');return collection.filterDate(start, end).reduce(ee.Reducer.sum()).float().set('system:time_start',y).set('year',y);
}));
print(collectYear);
//利用赣州市的行政边界裁剪蒸散发数据
var clip_Collection=collectYear.map(function(img){return img.clip(geometry);
});
print(clip_Collection);
var palettes = require('users/gena/packages:palettes');
var evapotranspirationVis = {min: 0,max: 300,palette: palettes.colorbrewer.RdYlBu[11]
};
Map.addLayer(clip_Collection.median(), evapotranspirationVis, 'Evapotranspiration');
//时间序列展示
var Yearly_Chart = ui.Chart = ui.Chart.image.series({imageCollection:clip_Collection.select("ET_sum"),region:geometry,reducer:ee.Reducer.mean(),scale:500,xProperty:"year",
}).setOptions({interpolateNulls:true,lineWidth:2,pontSize:3,title:"PET Yearly Series",vAxis:{title:"PET"},hAxis:{title:"Date"},trendlines:{0:{title:"PET_trend",type:"linear",showR2:true,color:"red",visibleInLegend:true}}
});
print(Yearly_Chart);
//定义下载影像函数 
function exportImage(image, region, fileName) {  Export.image.toDrive({  image: image,  description: "Drive-"+fileName,//影像名称   fileNamePrefix: fileName,  folder: "GanzhouET",  //文件夹名称 scale: 500,  region: region,  maxPixels: 1e13,  crs: "EPSG:4326"  });  
}
//生成时间序列按照循环迭代下载数据集的每一张影像 
var indexList = clip_Collection.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");  
print("indexList", indexList);  
indexList.evaluate(function(indexs) {  for (var i=0; i<indexs.length; i++) {  var image = clip_Collection.filter(ee.Filter.eq("system:index", indexs[i])).first();  exportImage(image, geometry, "20"+indexs[i+1]);  }  
}); 
//导出为CSV格式
var table = ee.FeatureCollection(clip_Collection.map(function(image){var date = image.get("year");return ee.Feature(null,{"date":date,"value":image.reduceRegion(ee.Reducer.mean(),geometry,500).get("ET_sum")});
}));
Export.table.toDrive({collection:table,description:"Yearly_series",folder:"ET",fileNamePrefix:"ET_Year",fileFormat:"CSV"
});

关于GEE下载蒸散发数据的代码到这里就结束了,如果对你有帮助,不要忘记了给小编点赞哦!

代码链接:https://code.earthengine.google.com/c1c7de2ae0a8a4992f4fe1051b71ec98

谢谢大家!!下期再见!!

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

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

相关文章

【前端素材】推荐优质数据统计后台管理系统网页Cleopatra.平台模板(附源码)

一、需求分析 在线后台管理系统是指供管理员或运营人员使用的Web应用程序&#xff0c;用于管理和监控网站、应用程序或系统的运行和数据。它通常包括一系列工具和功能&#xff0c;用于管理用户、内容、权限、数据等。下面是关于在线后台管理系统的详细分析&#xff1a; 1、功…

ssh简介以及 windows 安装ssh教程

SSH&#xff08;Secure Shell&#xff09;是一种网络协议&#xff0c;用于计算机之间的加密登录和其他安全网络服务。通过 SSH&#xff0c;用户可以安全地访问远程计算机&#xff0c;执行命令、传输文件等操作。SSH 使用公钥加密技术&#xff0c;确保数据传输的安全性。本文将从…

TypeScript 哲学 - 2、Narrowing

四种类型守卫 1、truthiness narrowing 2、 3、 4、 control flow analysis

C语言:结构体(自定义类型)知识点(包括结构体内存对齐的热门知识点)

和黛玉学编程呀&#xff0c;大家一起努力呀............. 结构体类型的声明 回顾一下 struct tag { member-list; }variable-list; 创建和初始化 我们知道&#xff0c;在C语言中&#xff0c;对于一些数据是必须初始化的&#xff0c;但是结构体怎么创建并且初始化呢&#xff1…

【计算机网络】TCP 如何实现可靠传输

TCP通过三次握手建立连接&#xff0c;四次挥手释放连接&#xff0c;确保连接建立和连接释放的可靠。 序列号、检验和、确认应答信号、重发机制、连接管理、窗口控制、流量控制、拥塞控制 标准回答 可靠传输就是通过TCP连接传送的数据是没有差错、不会丢失、不重复并且按序到达的…

springboot+vue+mysql项目使用的常用注解

实体类常用注解 Data Data 是一个 Lombok 提供的注解&#xff0c;使用 Data 注解可以简化代码&#xff0c;使代码更加简洁易读。 作用&#xff1a;自动为类生成常用的方法&#xff0c;包括 getter、setter、equals、hashCode 和 toString 等需要加Lombok的依赖 <depende…

rk3568-一种基于wifi的网络环境搭建方案

前言&#xff1a; PC--Ubuntu--开发板 三者之间的网络互相ping通很重要&#xff0c;尤其是ubuntu和开发板互ping成功最关键&#xff0c;关系到nfs&#xff0c;tftp等常用的开发手段。现在大多数开发板都带有wifi芯片&#xff0c;现在提供一种方案可以三个设备无线地搭建网络环境…

Open3D0.14.1编译、安装、demo使用教程

写在前面 本文内容 Open3D在0.15版之前&#xff0c;没有提供编译好的包&#xff0c;要使用C版本必须自己编译&#xff0c;本文是Open3D0.14.1在Windows下和Linux(Ubuntu1804)下的编译、使用教程&#xff1b; Open3D其他版本的编译和使用相关教程见 各个版本的Open3D、PCL的编译…

STL常见容器(map/multimap容器)---C++

STL常见容器目录&#xff1a; 8.map/ multimap容器8.1 map基本概念8.2 map构造和赋值8.3 map大小和交换8.4 map插入和删除8.5 map查找和统计8.6 map容器排序8.6.1 内置类型排序8.6.2 自定义类型排序8.6.3 自定义和内置类型混合排序 8.map/ multimap容器 两者基本一致&#xff…

用node写后端环境运行时报错Port 3000 is already in use

解决方法:关闭之前运行的3000端口,操作如下 1.WindowR输入cmd确定,打开命令面板 2.查看本机端口详情 netstat -ano|findstr "3000" 3.清除3000端口 taskkill -pid 41640 -f 最后再重新npm start即可,这里要看你自己项目中package.joson的启动命令是什…

Flink:动态表 / 时态表 / 版本表 / 普通表 概念区别澄清

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

Python+PySide6实现一个选择文件并做处理的GUI办公小工具(完整代码)

目录 专栏导读背景安装注意事项完整代码结尾专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅 🕷 此外还…

天翼云登录参数JavaSrcipt逆向

天翼云登录参数 password 、comParam_curTime、comParam_seqCode、comParam_signature JavaSrcipt逆向 目标网站 https://m.ctyun.cn/wap/main/auth/login?redirect/my 目标参数 要逆向的有 password、comParam_curTime、comParam_seqCode、comParam_signature 四个参数 …

安卓使用ExoPlayer出现膨胀类异常

1.导包 implementation com.google.android.exoplayer:exoplayer-core:2.15.1implementation com.google.android.exoplayer:exoplayer-ui:2.15.1 2.在Androidifest.xml加入权限&#xff0c;我这里加了忘了与读写权限 <uses-permission android:name"android.permissio…

Tomcat服务部署、优化

一 Tomcat的基本介绍 Tomcat概念 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试 JSP 程序的首选。 当在一台机器上配置好Apache 服务器…

VMwareWorkstation17.0虚拟机搭建WindowsXP虚拟机(完整安装步骤详细图文教程)

VMwareWorkstation17.0虚拟机搭建WindowsXP虚拟机&#xff08;完整安装步骤详细图文教程&#xff09; 一、Windows XP1.Windows XP简介2.Windows XP 的下载地址 二、配置 Windows XP 虚拟机运行环境1.新建虚拟机2.选择类型配置3.插入WinXP光盘映像文件(ISO)4.选择操作系统5.命名…

Home Assistant:基于Python的智能家居开源系统详解

Home Assistant&#xff1a;基于Python的智能家居开源系统详解 在数字化和智能化的时代&#xff0c;智能家居系统成为了现代家庭的新宠。它们能够让我们更加方便地控制家中的各种设备&#xff0c;实现自动化和个性化的居住体验。其中&#xff0c;Home Assistant作为一款基于Pyt…

【二分】二分模板+二分题目

一、朴素二分 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/binary-search/description/ int left 0, right nums.…

【leetcode】随机链表的复制

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 点击查看题目 思路: struct Node* copyRandomList(struct Node* head) {struct Node* curhead;//1.copy原链…

MWC 2024丨美格智能CEO杜国彬出席中国联通创新成果发布会并发表主题演讲

2月26日&#xff0c;中国联通在MWC2024 巴塞罗那期间举办了以“算网为基&#xff0c;智领未来”为主题的创新成果发布会&#xff0c;集中展示最新的创新成果与最佳实践。 中国通信标准化协会理事长闻库、GSMA首席财务官Louise Easterbrook、中国联通副总经理梁宝俊、华为ICT销…