Google Earth Engine谷歌地球引擎计算遥感影像在每个8天间隔内的多年平均值

本文主要是介绍Google Earth Engine谷歌地球引擎计算遥感影像在每个8天间隔内的多年平均值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,求取多年时间中,遥感影像在每18天时间间隔内的多年平均值的方法。

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

  首先,来明确一下本文的需求。我们现在希望,计算Landsat 7Landsat 82个遥感影像,在指定的研究区域中,于2014年至2020年里,从每1年的第1天开始,到每1年的最后1天结束,其中每18时间间隔内的平均值。换句话说,我们希望计算研究区域中,2014年至2020年这7年中,每1年的第001天至008天这8天内,所有遥感影像的平均值(相当于先对每1年的这8天内的遥感影像求平均,然后再对这7年里的7个结果进一步做平均;随后,计算这7年中,每1年的第009天至016天这8天内,所有遥感影像的平均值;再计算这7年中,每1年的第017天至024天这8天内,所有遥感影像的平均值,以此类推。

  因为这个需求涉及到大量的遥感影像,如果我们在本地操作的话需要下载大量的遥感影像数据,较为不便。因此,这里就介绍一下在GEE中实现这一需求的方法。本文所需代码如下。

var selectedDays = ee.List.sequence(1, 366, 8);
var roi = ee.Geometry.Rectangle(101, 31, 103.5, 33.5);var landsat_7 = ee.ImageCollection("LANDSAT/LE07/C02/T1_L2")
.filterDate("2014-01-01", "2021-01-01")
.select(["SR_B1", "SR_B2", "SR_B3", "SR_B4"])
.map(function(image) {return image.clip(roi).rename(["B1", "B2", "B3", "B4"]);
});
var landsat_8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
.filterDate('2014-01-01', '2021-01-01')
.select(["SR_B2", "SR_B3", "SR_B4", "SR_B5"])
.map(function(image) {return image.clip(roi).rename(["B1", "B2", "B3", "B4"]);
});
var landsat = landsat_7.merge(landsat_8);
// Map.addLayer(landsat, {}, "Landsat 7 and 8");var filterAndClip = function(day) {var start = ee.Number(day);var end = start.add(7);var filtered = landsat.filter(ee.Filter.calendarRange(start, end, 'day_of_year'));// Map.addLayer(filtered, {}, 'Landsat');var filtered_mean = filtered.mean();// Map.addLayer(filtered_mean, {}, "Landsat Mean");// print(filtered_mean);return filtered_mean;
};for (var i = 0; i < selectedDays.length().getInfo(); i++) {var day = selectedDays.get(i);var filtered = filterAndClip(day);var exportParams = {image: filtered,description: ee.Number(day).format('%03d').getInfo(),folder: "landsat_ref_8_days",scale: 30,region: roi,maxPixels: 10000000000000};Export.image.toDrive(exportParams);
}

  其中,我们创建了一个名为selectedDays的变量,它是一个包含了从1366的列表,步长为8;这表示选择了每年的第1917天等等,作为处理的开始日期。接下来,我们创建了一个名为roi的变量,它表示感兴趣区域的范围。

  随后,我们创建了两个变量landsat_7landsat_8,分别表示LANDSAT 7LANDSAT 8的图像集合;通过filterDate方法来筛选指定日期范围内的图像,并使用select方法选择特定的波段,且使用map方法对每个图像进行剪裁与重命名。这里之所以需要重命名,是因为接下来我们将使用merge方法将2个图像集合合并为1个;而merge方法需要保证待合并的2ImageCollection具有相同的波段名称。

  接下来,创建了一个名为filterAndClip的函数,用于对Landsat影像进行过滤和剪裁,并返回过滤后图像的平均值。这个函数具体的功能如下——首先,其接受一个参数day,表示处理的日期;随后,创建一个名为start的变量,使用ee.Numberday转换为数字类型;同时创建一个名为end的变量,使用start.add(7)计算start加上7的结果,表示8天的时间段。接下来,使用calendarRange方法对landsat数据集进行过滤,根据startend的日期范围,筛选出满足条件的影像;这里使用'day_of_year'表示按照1年中的天数进行筛选;创建一个名为filtered的变量,将过滤后的影像集合赋值给它。接下来,通过.mean()方法计算过滤后影像集合的平均值,创建一个名为filtered_mean的变量来存储结果。最后,返回filtered_mean,即过滤后影像集合的平均值。

  接下来,使用for循环遍历selectedDays列表中的每1个日期;在循环内部,使用filterAndClip函数对指定日期的影像进行过滤和剪裁,得到过滤后的影像的平均值。同时,创建一个exportParams对象,其中包含导出图像所需的参数,包括图像、描述、保存位置、像元分辨率、区域范围和最大像素数等。最后,使用Export.image.toDrive方法将图像导出到Google Drive

  其中,我们可以将上述代码中所有Map.addLayer()函数取消注释,并通过Inspector方法对地图数据加以查看。

  首先对于Landsat 7 and 8这个图层(也就是第1.addLayer()函数),可以看到其为研究区域中的所有Landsat遥感影像,如下图所示。

  其次对于Landsat这个图层(也就是第2.addLayer()函数),可以看到其为研究区域中,各年中所有落入当前8天时间间隔内的Landsat遥感影像;如下图所示,这里就是每1年中处于001天至008天的遥感影像。

  而如下图所示,这里就是每1年中处于073天至081天的遥感影像。

  其次对于Landsat Mean这个图层(也就是第3.addLayer()函数),可以看到其为研究区域中,7年里当前8天时间间隔内的所有Landsat遥感影像的平均值;具体如上图与上上图所示。

  执行上述代码,我们将在Tasks栏看到自动生成的遥感影像导出任务,其中各任务导出的遥感影像就以其所代表8天时间间隔的开始日期为名称;如下图所示。

  由于要导出的遥感影像文件比较多,即任务比较多;我们可以在GEE网页中,按下F12按钮,选择“Console”,并将下方的代码复制到下图下方的紫色框内。

  要复制的就是以下代码。

runTasks = function() {const evt = new MouseEvent('click', {bubbles: true, cancelable: true, ctrlKey: true})$$('.run-button' ,$$('ee-task-pane')[0].shadowRoot).forEach(function(e) {e.dispatchEvent(evt)})
}
runTasks()

  复制完毕后,按下回车键,即可批量提交任务,无需手动提交了。

  待任务都处理完毕后,我们进入Google Drive即可在指定文件夹下看到刚刚导出的结果图像。

  至此,大功告成。

欢迎关注:疯狂学习GIS

这篇关于Google Earth Engine谷歌地球引擎计算遥感影像在每个8天间隔内的多年平均值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/971870

相关文章

轻量级在线服装3D定制引擎Myway简介

我写的面向web元宇宙轻量级系列引擎中的另外一个,在线3D定制引擎Myway 3D。 用于在线商品定制,比如个性化服装的定制、日常用品(如杯子)、家装(被套)等物品的在线定制。 特性列表: 可更换衣服款式,按需定制更换模型可实时更改材质颜色可实时添加文本,并可实时修改大小、颜色和角度,支持自定义字体可实时添加艺术图标,并可实时修改大小、颜色和角度,支持翻转、各种对齐可更改衣服图案,按需求定制

计算绕原点旋转某角度后的点的坐标

问题: A点(x, y)按顺时针旋转 theta 角度后点的坐标为A1点(x1,y1)  ,求x1 y1坐标用(x,y)和 theta 来表示 方法一: 设 OA 向量和x轴的角度为 alpha , 那么顺时针转过 theta后 ,OA1 向量和x轴的角度为 (alpha - theta) 。 使用圆的参数方程来表示点坐标。A的坐标可以表示为: \[\left\{ {\begin{ar

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

【云计算 复习】第1节 云计算概述和 GFS + chunk

一、云计算概述 1.云计算的商业模式 (1)软件即服务(SaaS) 有些景区给游客提供烧烤场地,游客需要自己挖坑或者砌烧烤台,然后买肉、串串、烧烤。 (2)平台即服务(PaaS) 有些景区给游客提供烧烤场地,同时搭建好烧烤台,游客只需要自己带食材和调料、串串、烧烤。 (3)基础设施即服务(IaaS) 有些景区给游客提供烧烤场地,同时搭建好烧烤台,还有专门的厨师来烧烤,用户不需要关心前面的所有

什么是dB?dBm、dBc、dBi、dBd怎么计算,有什么区别?

什么是dB?dBm、dBc、dBi、dBd怎么计算,有什么区别? 引言 在电子工程、通信和音频领域,dB(分贝)是一个常见的术语。许多人刚接触时可能会感到困惑,因为它不仅仅是一个简单的单位,还有多种不同的形式,如dBm、dBc、dBi和dBd。这篇文章将详细解释这些概念,并介绍如何计算它们,帮助初学者更好地理解和应用。 什么是dB? dB,即分贝,是一种表示两个数值比值的对数单位。分贝的基

google-自我插件

1. Bitwarden 密码管理器 2. React Developer Tools 3. Vue.js devtools 4. YouTube™ 双字幕 5. 沉浸式翻译 - 网页翻译插件 6. FeHelper(前端助手) 7. IDM Integration Module 8. Redux DevTools - Next 9. 待续…

google gemini1.5 flash视频图文理解能力初探(一)

市面能够对视频直接进行分析的大模型着实不多,而且很多支持多模态的大模型那效果着实也不好。 从这篇公众号不只是100万上下文,谷歌Gemini 1.5超强功能展示得知,Gemini 1.5可以一次性处理1小时的视频、11小时的音频或100,000行代码,并衍生出更多的数据分析玩法。能力覆盖: 跨模式理解和推理,当给出一部 44 分钟的巴斯特-基顿(Buster Keaton)无声电影时,该模型能准

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解 码客 卢益贵 ygluu 关键词:游戏策划 可配置化 模块化配置 数据引擎 条件系统 红点系统 一、前言 在插件式模块化软件开发当中,既要模块高度独立(解耦)又要共享模块数据,最好的方法是有个中间平台(中间件)提供标准的接口来进行数据的交换,这在很多行业软件开发中已经广泛应用。但是,由于中间件的抽象和封

Class 对象在执行引擎中的初始化过程

一个 class 文件被加载到内存中需要经过 3 大步:装载、链接、初始化。 装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流,然后根据字节流创建 java.lang.Class 对象的过程。 链接 链接过程分为 3 步:验证、准备、解析。 验证: 初始化 这是 class 加载的最后一步,这一阶段是执行类构造器方法的过程,并真正初始化类变量。 1.文件格式检验:检

我国目前常用的卫星影像星座有哪些(高分二号、高分七号、吉林一号、高景一号······)

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合+系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGIS+ENVI+Erdas+eCognition 中国目前的遥感卫星在数量、种类和应用领域上都取得了显著进展,覆盖了陆地、气象、海洋等多个工作领域,数量与质量均达到了世界先进水平。   下面我们要列出20个我们国内常用的