Google Earth Engine谷歌地球引擎GEE批量下载ImageCollection遥感影像数据合集的方法

news2024/11/17 13:33:32

  本文介绍在谷歌地球引擎GEE中,批量导出、下载ee.ImageCollection格式的多张栅格遥感影像数据的简便方法。

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

  在前面的文章Google Earth Engine谷歌地球引擎GEE外部栅格矢量数据导入管理与下载及数据与代码共享(https://blog.csdn.net/zhebushibiaoshifu/article/details/119211676)中,我们介绍了谷歌地球引擎中,矢量栅格数据的上传与下载方法;而对于ee.ImageCollection格式数据批量下载到本地(这里需要注意:是下载到本地,而不是传到Assets中;Assets中的数据只是方便我们在GEE中调用的,其不能下载到本地),我们当时并没有涉及,所以这一篇文章中我们就对这一需求的实现方式加以介绍。

  对于ee.Image格式的数据,我们一般情况下通过如下所示的代码,借助Export.image.toDrive()函数将其保存到谷歌Drive中,随后自行将谷歌Drive中的数据再下载到本地即可。

var exportParams = {
  image: ndvi_china,
  description: 'ndvi_every_8_days',
  scale: 500,
  region: chinaBoundary,
  maxPixels: 10000000000000
};
Export.image.toDrive(exportParams);

  但是,对于ee.ImageCollection格式的数据,GEE官方并没有提供批量下载的方式;这就导致我们需要通过手动写循环等方式,逐一提交下载ee.ImageCollection格式数据中每一景遥感影像的任务请求,然后再逐一下载。那么,能不能借助类似于Export.image.toDrive()这样的函数,对ee.ImageCollection格式的数据加以批量下载呢?

  答案是可以的,一位GitHub用户提供了一系列常用的GEE工具合集,其中就包含了一个批量下载ee.ImageCollection格式数据的方法;我们这里暂时只介绍批量下载ee.ImageCollection格式数据的方法,关于该用户提供的其他GEE实用工具,大家参考其GitHub的主页(https://github.com/fitoprincipe/geetools-code-editor)即可。

  首先,我们需要加载这个GEE工具合集对应的模块,具体格式如下代码所示。这个就有些类似Python中,通过import加载他人写好的第三方库文件(下面这个不是可以执行的代码,而只是代码的格式)。

var module = require('users/fitoprincipe/geetools:NAME_OF_FILE');

  其中,因为我们这里只需要获取这个GEE工具合集中,批量下载ee.ImageCollection格式数据的工具;那么对于我们的需求而言,用如下所示的代码来加载模块文件即可。

var batch = require('users/fitoprincipe/geetools:batch');

  输入上述代码,如下所示。

  随后,在其中添加如下的代码。这个代码就是执行batch.Download.ImageCollection.toDrive()函数的语句,其中options表示这个函数的一个参数。

var options = {
  name: '{system_date}',
  dateFormat: 'yyyy-MM-dd',
  scale: 500,
  maxPixels: 10000000000000,
  region: chinaBoundary
};
batch.Download.ImageCollection.toDrive(ndvi_china, "ndvi_8_days", options)

  其中,batch.Download.ImageCollection.toDrive()函数就是这一位GitHub用户提供的批量下载ee.ImageCollection格式数据的函数,他已经封装好了这个函数,我们直接调用即可。此外,options中的name,是之后导出的每一景遥感影像的名称,dateFormat是每一景遥感影像时间的格式,scale是空间分辨率,maxPixels是最大导出的像元个数,region则是需要导出的遥感影像的空间范围(注意,我这里的chinaBoundary是自己定义的一个空间范围,大家依据自己的需求自行设置即可);而在函数中,第一个ndvi_china就是要保存的ee.ImageCollection格式数据的名称,第二个参数为谷歌Drive中保存这些数据的文件夹名称。

  输入上述代码,如下图所示。

  可以看到,这个batch.Download.ImageCollection.toDrive()函数,其实用起来就和GEE自带的Export.image.toDrive()函数差不多;用了这个函数,自然就不用自己手写循环来下载ee.ImageCollection格式数据了。

  在我这里,执行上述代码后,会在“Tasks”一栏中看到,每一景遥感影像都已经处于任务待提交的状态了;如下图所示。

  此时,我们可以手动逐一点击每一个任务的“Run”,也可以用网上各类批量点击“Run”的脚本,来执行这些任务。对于每一个任务,点击“Run”后,会看到如下图所示的界面;确认无误后,再点击下图中的“Run”,就可以运行程序了。

  等待任务提交并执行完毕后,就可以在自己的谷歌Drive中看到对应的文件了(在我这里,这些文件就保存在ndvi_8_days文件夹中),如下图所示。

  至此,大功告成。

欢迎关注:疯狂学习GIS

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

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

相关文章

[最后一个月征稿、ACM独立出版】第三届密码学、网络安全和通信技术国际会议(CNSCT 2024)

第三届密码学、网络安全和通信技术国际会议(CNSCT 2024) 2024 3rd International Conference on Cryptography, Network Security and Communication Technology 一、大会简介 随着互联网和网络应用的不断发展,网络安全在计算机科学中的地…

pycharm运行正常,但命令行执行提示module不存在的多种解决方式

问题描述 在执行某个测试模块时出现提示,显示自定义模块data不存在,但是在PyCharm下运行正常。错误信息如下: Traceback (most recent call last):File "/run/channelnterface-autocase/testcases/test_chanel_detail.py", line 2…

基于ssm高校推免报名系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把高校推免报名管理与现在网络相结合,利用java技术建设高校推免报名管理系统,实现高校推免报名的信息化。则对于进一步提高高校推免报名管理发展,丰富高校推免报名管理经验能起到不少的促进作用。…

XZ_iOS 之 M1 M2 M3的M系列芯片的Mac苹果电脑安装cocoapods

安装的前提,应用程序->终端->右键-显示简介->勾选 使用Rosetta打开,如下图,然后重启终端 安装的顺序如下:Homebrew->rvm->ruby->cocoapods 1、安装Homebrew /bin/bash -c "$(curl -fsSL https://raw.git…

算法02哈希法

算法01之哈希法 1.哈希法理论基础1.1哈希表(1)哈希表(2)哈希函数(3)哈希碰撞 1.2哈希法基本思想1.3哈希法适用场景与最常用的哈希结构 2.LeetCode242:有效的字母异位词(1&#xff09…

Kafka核心参数(带完善)

客户端 api Kafka提供了以下两套客户端API HighLevel(重点)LowLevel HighLevel API封装了kafka的运行细节,使用起来比较简单,是企业开发过程中最常用的客户端API。 而LowLevel API则需要客户端自己管理Kafka的运行细节,Partition&#x…

【Axure RP9】中继器应用及相关案例

一 中继器简介 1.1 中继器是什么 中继器(Repeater)是一种高级的组件(Widget),用于显示文本、图像和其他元素的重复集合。它是一个容器,容器中的每一个项目称作“item”,由于“item”中的数据由…

open3d bug:pcd转txt前后位姿发生改变

1、open3d bug:pcd转txt前后位姿发生改变 open3d会对原有结果进行一个微小位姿变换 import open3d as o3d import numpy as np# 读取PCD点云文件 pcd o3d.io.read_point_cloud(/newdisk/darren_pty/zoom_centered_s2.pcd)# 获取点云坐标 points pcd.points# 指定…

多维时序 | MATLAB实现SSA-CNN-LSTM-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现SSA-CNN-LSTM-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现SSA-CNN-LSTM-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-LST…

我的创作纪念日——成为创作者第1024天

机缘 一、前言 早上收到CSDN的推送信息,今天是我成为创作者的第1024天,回想起自己已经好久没有写博客了,突然间很有感触,想水一篇文章,跟小伙伴们分享一下我的经历。 二、自我介绍 我出生在广东潮汕地区的一个小城…

IntelliJ IDE 插件开发 | (三)消息通知与事件监听

系列文章 IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听 前言 在前两篇文章中讲解了关于插件开发的基础知识&…

Python Pandas Excel/csv文件的保存与读取(第14讲)

Python Pandas Excel/csv文件的读取于保存(第14讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

1.【分布式】分布式事务详解

分布式事务 1.分布式事务是什么?数据库事务 2.分布式事务产生的原因?存储层拆分服务层拆分 3.分布式事务解决方案4.分布式事务有哪些开源组件SeateTCC 分布式服务组件基于消息补偿的最终一致性 5.两阶段提交,三阶段协议详解二阶段提交协议三阶…

Excel怎样统计一列中不同的数据分别有多少个?

文章目录 1.打开Excel数据表2.选择“插入”,“数据透视表”3.选择数据透视表放置位置4.将统计列分别拖到“行”和“数值”区间5.统计出一列中不同的数据分别有多少个 1.打开Excel数据表 2.选择“插入”,“数据透视表” 3.选择数据透视表放置位置 4.将统计…

设计模式(三)-结构型模式(5)-外观模式

一、为何需要外观模式(Facade)? 要实现一个大功能,我们需要将它拆分成多个子系统。然后每个子系统所实现的功能,就由一个称为外观的高层功能模块来调用。这种设计方式就称为外观模式。该模式在开发时常常被使用过,所…

每日一练 | 华为认证真题练习Day150

1、IEEE802.1Q定义的VLAN帧格式总长度为多少字节? A. 4 B. 2 C. 3 D. 1 2、运行STP的交换机会发送BPDU。下面关于BPDU的说法正确的是()(多选) A. BPDU帧的Control字段值为3 B. BFDU使用的是IEEE 802.3标准的帧 …

<软考>软件设计师-5计算机网络(总结)

1 网络功能和分类 1-1计算机网络的功能 计算机网络是计算机技术与通信技术相结合的产物,它实现了远程通信、远程信息处理和资源共享。计算机网络的功能:数据通信、资源共享、负载均衡、高可靠性。 1-2计算机网络按分布范围划分 1-3网络的拓扑结构 总线型&#xff0…

Linux常用基本命令操作

目录 一、认识shell 1、什么是shell 2、命令的本质 3、内部命令和外部命令 4、harsh缓存 5、命令执行的过程 6、如果打了一个命令,提示该命令不存在 7、命令提示符 8、Linux系统文件夹 二、Linux常用命令 1、通用Linux命令行格式 2、编辑Linux命令行的辅…

代码随想录第三十六天(一刷C语言)|背包问题理论基础分割等和子集

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。 一、背包问题 题目:有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装…

PostgreSQL入门指南:快速学会创建和管理数据库!

当谈到数据库管理系统时,PostgreSQL是一个功能强大且广泛使用的开源关系型数据库。在本次讲解中,我将为您介绍如何创建和管理数据库,并提供一些有关PostgreSQL的基本概念和最佳实践的指导。 创建数据库 在开始之前,请确保您已经成…