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 7的Level-2表面反射率数据集LANDSAT/LE07/C02/T1_L2。
随后,基于.select(["SR_B1", "SR_B2", "SR_B3", "SR_B4"])选择感兴趣的波段,我们这里是选择了Blue、Green、Red等3个可见光波段,和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
相关文章:
Google Earth Engine谷歌地球引擎提取多波段长期反射率数据后绘制折线图并导出为Excel
本文介绍在谷歌地球引擎GEE中,提取多年遥感影像多个不同波段的反射率数据,在GEE内绘制各波段的长时间序列走势曲线图,并将各波段的反射率数据与其对应的成像日期一起导出为.csv文件的方法。 本文是谷歌地球引擎(Google Earth Engi…...
第三大的数
414、第三大的数 class Solution {public int thirdMax(int[] nums) {Arrays.sort(nums);int tempnums[0];int ansnums[0];int count 0;// if(nums.length<3){// return nums[nums.length-1];// }// else {for(int inums.length-1;i>0;i--){if (nums[i]>nums[i…...
正则表达式中的方括号[]有什么用?
在正则表达式中,方括号 [] 是用于定义字符集合的元字符。它在正则表达式中有以下作用: 匹配字符集合中的任意一个字符:方括号中列出的字符,表示在这个位置可以匹配这些字符中的任意一个。例如,[abc] 将匹配任意一个字符…...
SQL编写规范
文章目录 1.命名规范:2.库表设计:3.查询数据:4.修改数据:5.索引创建: 1.命名规范: 1.库名、表名、字段名,必须使用小写字母或数字,不得超过30个字符。 2.库名、表名、字段名&#…...
Azure pipeline自动化打包发布
pipeline自动化,提交代码后,就自动打包,打包成功后自动发布 第一步 pipeline提交代码后,自动打包。 1 在Repos,分支里选择要触发的分支,这里选择cn_china,对该分支设置分支策略 2 在生产验证中增加新的策略 3 在分支安…...
【算法提高:动态规划】1.4 状态机模型 TODO
文章目录 例题列表1049. 大盗阿福(其实就是打家劫舍)1057. 股票买卖 IV(k笔交易)1058. 股票买卖 V(冷冻期)1052. 设计密码⭐⭐⭐🚹🚹🚹(TODO)1053…...
ip link add 命令
ip link add veth0 type veth peer name veth1 这条命令主要用于在 Linux 操作系统中创建一个新的 veth(虚拟以太网) 对,这是一种虚拟网络设备,用于在 Linux 命名空间(namespaces)之间创建网络连接。此命令将创建两个设备…...
unity事件处理
方法调用 //发送事件 【发送事件码,发送消息内容】 EventCenterUtil.Broadcast(EventCenterUtil.EventType.Joystick, ui);//监听无参事件 EventCenterUtil.AddListener(EventCenterUtil.EventType.Joystick, show); public void show(){}//发送事件 有参事件 Eve…...
《ChatGPT原理最佳解释,从根上理解ChatGPT》
【热点】 2022年11月30日,OpenAI发布ChatGPT(全名:Chat Generative Pre-trained Transformer), 即聊天机器人程序 ,开启AIGC的研究热潮。 ChatGPT是人工智能技术驱动的自然语言处理工具,它能够…...
大数据Flink(五十):流式计算简介
文章目录 流式计算简介 一、数据的时效性 二、流式计算和批量计算...
13-4_Qt 5.9 C++开发指南_基于QWaitCondition 的线程同步_Wait
在多线程的程序中,多个线程之间的同步实际上就是它们之间的协调问题。例如上一小节讲到的3个线程的例子中,假设 threadDAQ 写满一个缓冲区之后,threadShow 和 threadSaveFile 才能对缓冲区进行读操作。前面采用的互斥量和基于 OReadWriteLock…...
STM32(HAL)多串口进行重定向(printf函数发送数据)
目录 1、简介 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 串口外设配置 2.3 项目生成 3、KEIL端程序整合 4、效果测试 1、简介 在HAL库中,常用的printf函数是无法使用的。本文通过重映射实现在HAL库多个串口可进行类似printf函数的操作。 2.1 基础配置 2.…...
29_互联网(The Internet)(IP数据包;UDP;TCP;DNS;OSI)
上篇介绍了计算机网络的基础知识,也提到互联网(The Internet),本篇将会详细介绍互联网(The Internet)。 文章目录 1. 互联网(The Internet)组成及数据包传输过程2. IP 数据包的不足3…...
xShell常用命令
xShell常用命令 一、文件夹目录1、cd-更改目录2、mkdir-建立目录3、rm-删除目录4、pwd-查看当前路径5、rmdir-删除空目录 二、文件操作1、cat-显示文件内容2、diff-比较文件内容3、查看文件的名字和后缀4、ls-列出文件5、cp-复制文件6、mv-移动和重命名文件找不同:选…...
React性能优化之Memo、useMemo
文章目录 React.memo两种方式参数应用场景 拓展useMemouseMemo(calculateValue, dependencies) 参考资料 React.memo React 的渲染机制,组件内部的 state 或者 props 一旦发生修改,整个组件树都会被重新渲染一次,即时子组件的参数没有被修改&…...
IDEA开启并配置services窗口
前言: 一般一个spring cloud项目中大大小小存在几个十几个module编写具体的微服务项目。此时,如果要调试测需要依次启动各个项目比较麻烦。 方法一: 默认第一次打开项目的时候,idea会提示是否增加这个选项卡,如果你没…...
vue2企业级项目(三)
vue2企业级项目(三) 引入mockjs,i18n 1、mockjs 项目下载依赖 npm install --save-dev mock根目录创建mock文件夹,并创建mock/index.js import Mock from "mockjs";// 设置全局延时 没有延时的话有时候会检测不到数据…...
QT 在label上透明绘图
一、新建TransparentDemo工程 二、在界面上添加label,修改样式表,将底色置为红色,作为北京 三、新建一个TransparentLabel类,继承自QLabel 此时,工程包括文件 五、在transparentlabel.h中添加 头文件 #include …...
SAM(Segment Anything)大模型论文汇总
A Comprehensive Survey on Segment Anything Model for Vision and Beyond 论文:https://arxiv.org/abs/2305.08196 25页综述,198篇参考文献!52个开源项目!本文第一个全面回顾了分割一切模型(SAM)的研究和应用进展,…...
金融翻译难吗,如何做好金融翻译?
我们知道,金融翻译涉及企业经济这块的,是影响各公司发展很重要的一方面,翻译做得好,可以促进公司内外的交流,及时掌握各种信息,做好应对。那么,金融翻译难吗,如何做好金融翻译&#…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
