Google Earth Engine谷歌地球引擎提取多波段长期反射率数据后绘制折线图并导出为Excel

  本文介绍在谷歌地球引擎GEE中,提取多年遥感影像多个不同波段反射率数据,在GEE内绘制各波段的长时间序列走势曲线图,并将各波段的反射率数据与其对应的成像日期一起导出为.csv文件的方法。

  本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第十六篇,更多GEE文章请参考专栏:GEE学习与应用(https://blog.csdn.net/zhebushibiaoshifu/category_11081040.html)。

  首先,我们来看一下本文需要实现的需求。我们现在希望获取某一个点位置上,Landsat 7遥感影像数据的可见光近红外4个波段的反射率数据,时间跨度是从2013年到2022年。其中,我们在提取出来指定波段、指定空间区域、指定时间范围的数据后,为了保证数据大致无误,因此希望首先可以在GEE内绘制一张包含了上述各波段在这一段时间内反射率数据的走势图,随后将反射率数据导出为.csv文件。

  知道了需求,我们即可开始代码的撰写。本文需要用到的代码如下。

var point = ee.Geometry.Point([-95.363271, 38.640067]);
var startDate = "2013-01-01";
var endDate = "2022-12-31";var rCollection = ee.ImageCollection("LANDSAT/LE07/C02/T1_L2").select(["SR_B1", "SR_B2", "SR_B3", "SR_B4"]).filterBounds(point).filterDate(startDate, endDate);
print(rCollection)var trueCollection = rCollection.map(function(image) {var trueImage = image.multiply(0.0000275).subtract(0.2);var trueImageP = image.addBands(trueImage, null, true)return trueImageP;
});print(ui.Chart.image.series({imageCollection: trueCollection,region: point,reducer: ee.Reducer.mean(),scale: 250,
}));var rTable = ee.FeatureCollection(trueCollection.map(function(image) {var date = image.date().format("yyyy-MM-dd");var BValue = image.reduceRegion(ee.Reducer.mean(), point, 500).get("SR_B1");var GValue = image.reduceRegion(ee.Reducer.mean(), point, 500).get("SR_B2");var RValue = image.reduceRegion(ee.Reducer.mean(), point, 500).get("SR_B3");var NValue = image.reduceRegion(ee.Reducer.mean(), point, 500).get("SR_B4");return ee.Feature(null, {date: date, Blue: BValue, Green: GValue, Red: RValue, NIR: NValue});
}));Export.table.toDrive({collection: rTable,description: "data_table_5",folder: "GEE_Export",fileFormat: "CSV"
});

  上述代码的具体含义如下。

  首先,我们通过var point = ee.Geometry.Point([-95.363271, 38.640067]);定义一个点位point,也就是我们希望提取数据的点。随后,通过var startDate = "2013-01-01";定义起始日期startDate,表示数据获取的起始日期;var endDate = "2022-12-31";则是定义结束日期endDate,表示数据获取的结束日期。紧接着,我这里是选择通过var rCollection = ee.ImageCollection("LANDSAT/LE07/C02/T1_L2"),获取LANDSAT 7Level-2表面反射率数据集LANDSAT/LE07/C02/T1_L2

  随后,基于.select(["SR_B1", "SR_B2", "SR_B3", "SR_B4"])选择感兴趣的波段,我们这里是选择了BlueGreenRed3个可见光波段,和NIR这一近红外波段;这里我们需要用4个波段在遥感影像数据产品中的名称(也就是上述"SR_B1"这种),来获取对应的数据。接下来,我们对数据集进行空间、时间过滤,保留包含指定点位、处于指定时间范围的数据。

  其次,我们在var trueCollection = rCollection.map(function(image) { ... });这里,使用map函数对rCollection中的每个图像应用函数,并将结果保存在trueCollection中。这里的函数就是对原始的遥感影像加以辐射定标,将每个像素值乘以0.0000275,并减去0.2,得到新的图像trueImage。随后,注意需要将原始图像image和处理后的图像trueImage连接起来,形成新的图像trueImageP——这样使得我们定标后的遥感影像数据集包含有原始图像的各项属性信息(例如开始、结束时间等),才可以进行后续的绘图、导出工作。在这里,我选择通过设置image.addBands(trueImage, null, true)中第3个参数为true,直接将辐射定标的图像覆盖原有的图像,避免不必要的数据冗余。

  接下来,我们ui.Chart.image.series函数绘制时间序列图;随后使用map函数对trueCollection中的每个图像应用函数,并将结果保存在rTable中。这个函数计算了每个图像的日期和各个波段的具体数值,并将这些值作为属性添加到rTable中的每个要素。

  最后,我们即可将rTable导出为.csv文件,保存在Google Drive的指定文件夹中。

  运行上述代码,首先我们可以在GEE中看到具体的长时间序列曲线走势图;如下图所示。可以看到,走势图中的数据都已经是做过了辐射定标之后的了。

  随后,我们打开导出的.csv文件,可以看到其中具体的数据信息如下——包括了我们需要导出的4个波段与日期信息,以及其他2个系统默认导出的图像信息。

  至此,大功告成。

欢迎关注:疯狂学习GIS

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

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

相关文章

图为科技T501赋能工业机器人 革新传统工业流程

工业机器人已成为一个国家制造技术与科技水平的重要衡量标准,在2019年,中国工业机器人的组装量与产量均位居了全球首位。 当前,工业机器人被广泛用于电子、物流、化工等多个领域之中,是一种通过电子科技和机械关节制作出来的智能机…

浏览器端代理proxy 解决跨域

一.环境:使用expresshttp-proxy-middleware 直接上代码 // include dependencies const express require( express);//node内置的path模块导入 const path require("path")const { createProxyMiddleware } require( http-proxy-middleware); // 需要代理后端服…

行为型设计模式之策略模式【设计模式系列】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 设计模式系列 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everythi…

【万字长文】SpringBoot整合SpringSecurity+JWT+Redis完整教程(提供Gitee源码)

前言:最近在学习SpringSecurity的过程中,参考了很多网上的教程,同时也参考了一些目前主流的开源框架,于是结合自己的思路写了一个SpringBoot整合SpringSecurityJWTRedis完整的项目,从0到1写完感觉还是收获到不少的&…

K8s Service网络详解(二)

K8s Service网络详解(二) Kube Proxy调度模式Kube-proxy IptablesKube-proxy IPVS Service SelectorPod DNS种常见的 DNS 服务Kube-DNSCoreDNSCorefile 配置 DNS 记录DNS 记录 ServiceDNS 记录 PodDNS 配置策略 Pod 的主机名设置优先级 Ingress Kube Pro…

Appium+python自动化(二十五)-获取控件ID(超详解)

简介 在前边的第二十二篇文章里,已经分享了通过获取控件的坐标点来获取点击事件的所需要的点击位置,那么还有没有其他方法来获取控件点击事件所需要的点击位置呢?答案是:Yes!因为在不同的大小屏幕的手机上获取控件的坐…

ModStartCMS v6.9.0 后台多标签改进,主题色自动切换修复

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…

Redis学习2--使用java操作Redis

1、java操作Redis库的比较 Redis有各种语言的客户端可以来操作redis数据库,其中java语言主要有Jedis与lettuce ,Spring Data Redis封装了上边两个客户端,优缺点如下: 2、使用Jedis操作Redis Jedis使用的基本步骤: 引…

企业服务器数据库被360后缀勒索病毒攻击后采取的措施

近期,360后缀勒索病毒的攻击事件频发,造成很多企业的服务器数据库遭受严重损失。360后缀勒索病毒是Beijingcrypt勒索家族中的一种病毒,该病毒的加密形式较为复杂,目前网络上没有解密工具,只有通过专业的技术人员对其进…

原生html—摆脱ps、excel 在线绘制财务表格加水印(html绘制表格js加水印)

文章目录 ⭐前言⭐html标签💖table表格的属性💖实现财务报表 ⭐结束 ⭐前言 大家好,我是yma16,本文分享原生html——绘制表格报表加水印。 背景:解决没有ps的情况下使用前端html制作表格报表。 html介绍 HTML&#xf…

【Android知识笔记】UI体系(一)

Activity的显示原理 setContentView 首先开发者Activity的onCreate方法中通常调用的setContentView会委托给Window的setContentView方法: 接下来看Window的创建过程: 可见Window的实现类是PhoneWindow,而PhoneWindow是在Activity创建过程中执行attach Context的时候创建的…

Kotlin多平台最佳架构指南

在这篇文章中,我们将对 Kotlin 多平台移动端的最佳架构进行深入探讨。在2023年,作为 Android 开发者,我们会倾向于采用 MVVM 架构,因为它简单、灵活且易于测试。而作为 iOS 开发者,我们可能会选择 MVC、Viper 等架构。…

QT基于TCP协议实现数据传输以及波形绘制

这个玩意我做了两个,一个是安卓app,一个是Windows程序。代码并非全部都是由我从无到有实现,只是实现了我想要的功能。多亏了巨人的肩膀,开源万岁!!! 我把程序放到GitHub上,需要的可…

Vue项目如何生成树形目录结构

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一手。 前言 项目的目录结构清晰、可以帮助我们更快理顺项目的整体构成。在写文档之类的时候也比较方便。生成树形目录的方式有多种,我这里简单介绍其中一种较为简单的实现 过…

学习数学助手Schooltech Math Resource Studio 7.0 Crack

数学资源工作室 数学工作表生成器:快速轻松地创建数学工作表 使用易于使用的数学工作表生成器软件创建可打印的数学练习工作表。通过练习、谜题、问题等提高数学技能。 瞄准学习需求并激励学生 Math Resource Studio 是个性化数学教学的理想软件解决方案&#xff0c…

【SDOF振荡器的非线性-非弹性多轴时间响应分析】用于SDOF振荡器非线性非弹性时程分析的鲁棒性分析研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 💥1 概述 进行SDOF振荡器的非线性非弹性时程分析的鲁棒性分析研究,旨在探究该方法对不同系统参数和分析条件变化的稳定性和可靠性。以下是一…

几百本常用计算机开发语言电子书链接

GitHub - XiangLinPro/IT_book: 本项目收藏这些年来看过或者听过的一些不错的常用的上千本书籍,没准你想找的书就在这里呢,包含了互联网行业大多数书籍和面试经验题目等等。有人工智能系列(常用深度学习框架TensorFlow、pytorch、keras。NLP、…

用HTML写一个简单的静态购物网站

实现代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>购物网站</title> &l…

FRR+VPP

安装 三者的结合&#xff0c;实际上编译安装好就行了&#xff0c;不需要做任何代码上的修改&#xff0c;只需要安装和配置&#xff0c;然后你就有了一台路由器。 FRRouting使用frr-8.5.2版本&#xff0c;VPP使用23.06版本&#xff0c;DPDK和lcpng是VPP的插件&#xff0c;安装…

DataEase开源BI工具安装_数据全量_增量同步_大屏拖拽自动生成_多数据源支持_数据血缘分析---大数据工作笔记0183

我这里用的是Centos7.9安装的 可以通过uname -p来查看一下我们的电脑架构,可以看到是x86_64架构的 我们下第一个,这个是x86架构的,第二个arm架构的 然后解压到/opt/module中 然后再去重命名一下文件夹. 推荐200G 本地模式的功能比较多 推荐100G