GEE批量下载 Python本地快速下载GEE数据(比网页版保存到网盘再下载快几十倍,尤其是在下载几十年的长时间系列数据时,速度提升更加明显)

news2025/1/17 6:16:30

前言

可根据研究区直接裁剪数据以及进行一些计算处理后再下载,GEE成为了大家下载数据的重要途径,然而直接通过官网网页将数据先保存到网盘再下载的下载方法速度太慢,新号速度还好,越用速度越来越慢,本文提供了一种直接通过Python将数据直接下载到本地的方法,速度亲测大概为前者的几十倍,该种方法适用于单个数据小于32M的情况,不知道为什么批量下载的代码每次运行只能运行1小时,可能是gee限制。

一、环境配置

首先需要配置GEE本地Python开发环境,安装吴秋生老师的geemap库会自动安装gee相应的环境,比较简单方便,安装教程:Installation - geemap

此外还要安装几个python库:requests(访问网页)、retry(代码多次尝试)、multiprocessing(多线程)。

二、代码准备

主要需要编写两个代码:

download.py 这是主要代码,直接运行需要开通什么云计算平台,配置有些麻烦,尝试了几天没有成功,但是在jupyter中运行这个代码不需要开通云计算平台。这里也许有朋友要问了,直接用jupyter写Python代码不就好了吗,为什么要多此一举先写个.py再用jupyter调用?因为我们使用了多线程,jupyter中不能调用multiprocessing,其中的坑。。。。很多,我也是尝试了很久试出了现在的方法,唉,一言难尽。

download.ipynb 这个是通过jupyter来运行download.py

此处以下载近20年的ERA5-LAND雪深数据为例,代码下载地址见文末:

三、下载操作

准备好环境和代码后,就可以进行下载操作了,我使用的是anconda来管理的python包。

1.激活anconda的GEE环境

在anconda prompt 中输入 conda activate xxx(环境名称),激活并进入了配置的gee环境。

2.进入代码的文件夹

我的代码放在了D盘,首先键入“D:”回车,进入D盘,再键入“cd D:\geedownload”代码文件夹路径,回车进入文件夹

3.打开jupyter

键入 jupyter lab 打开jupyter,打开download.ipynb

4.运行jupyter 

运行到这

#登录谷歌账号,有一些操作
ee.Authenticate()
ee.Initialize(opt_url='https://earthengine-highvolume.googleapis.com')

会有一些登录认证GEE账号的操作

需要一个验证码,然后界面会跳转到 

 创建或者选择一个已存在的项目,操作很简单

 点击这个按钮

这些复选框全选上,继续

 将授权码复制到jupyter,回车,就认证完成了

运行  %run download.py就可以下载了,由于使用了多线程,界面内没有输出,可以去下载的文件夹或者anconda prompt 界面看看,在飞速地下载,我的下载范围为青藏高原,一分钟大概下载了140天的数据。

 本文为原创文章,探索了很久的下载方案,请大家尊重劳动成果与版权,文章和代码请勿随意转载!

代码链接:https://m.tb.cn/h.USIOROb?tk=Bx6jd2pN0Ed

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

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

相关文章

DolphinScheduler 机器学习工作流预测今年 FIFA 世界杯冠军大概率是荷兰!

点击蓝字,关注我们作者 | DolphinScheduler Committer 周捷光2022 FIFA 世界杯火热进行中!这段时间,这场盛宴吸引了全球球迷的目光。除了让人心跳加快的赛况和被大家调侃像馄饨皮的吉祥物之外,预测和投注哪支队伍将会夺冠绝对是球…

Antd中Table列表行默认包含修改及删除功能的封装

一、前言 ant-design是非常不错、方便的一款前端组件库,而这次用到的ProComponents则是在 Ant Design 上进行了自己的封装,更加易用,与 Ant Design 设计体系一脉相承,无缝对接 antd 项目,样式风格与 antd 一脉相承&am…

Java:多线程基础(二)-线程生命周期

目录 线程生命周期 Thread类的常用方法 构造方法 静态方法 常用实例方法 线程生命周期 线程有其创建、就绪、运行、阻塞、死亡的过程,将其称之为“线程的生命周期”。如下图所示, 对应以上5个状态,jdk-Thread类的源码中定义了枚举类Stat…

计算机网络第五章知识点回顾(自顶向下)

1. 网络层控制面 1.1 网络层功能 1.2选路问题 选路问题的描述: 给定一组路由器和连接路由器的链路,寻找一条从源路由器到目的路由器的最佳路径。 1.3 什么是最佳路径? 1.4 图抽象 1.5 选路算法分类 1.6 链路状态(LS&#xff0…

“生成式技术”正在颠覆人类创作!

整理 | 王启隆在过去的半年里,AI 写小说、绘画和剪视频等热点新闻火爆全球,现在只需要在键盘上敲几个关键词,AI 就能在烧着我们显卡的同时画出一幅幅优美的图画,一个全新的应用世界向未来的初创公司敞开了大门。人类现在拥有着一大…

碳中和专利创新专题:各省市县专利面板(原始文件)、低碳专利授权数等多指标数据

一、各省市县专利面板含原始文件 1、数据来源:国家知识产权局 2、时间跨度:1985-2019年 3、区域范围:全国 4、指标说明: 来源 序号 标题 合享价值度 链接到incoPat 公开(公告)号 公开&#xff08…

数据结构之线性表中的栈和队列【详解】

文章目录引言:栈和队列的讲解(一、)什么是栈1.栈的概念、结构和图解:(1.)顺序表和链表的对比(严格来说这两个结构是相辅相成的)(2.)栈的概念和结构&#xff0…

[MyBatis]一级缓存/二级缓存/三方缓存

缓存是一种临时存储少量数据至内存或者是磁盘的一种技术.减少数据的加载次数,可以降低工作量,提高程序响应速度 缓存的重要性是不言而喻的。mybatis的缓存将相同查询条件的SQL语句执行一遍后所得到的结果存在内存或者某种缓存介质当中,当下次遇到一模一样的查询SQL时…

[附源码]Python计算机毕业设计Djangossm新能源电动汽车充电桩服务APP

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

UICollectionView

文章目录前言基础概念UICollectionView与相关对象关系注意事项强大的控件相关的类重新使用视图提高性能例子一些方法前言 本篇:进行UICollectionView的学习 提示:以下是本篇文章正文内容,下面案例可供参考 基础 概念 UICollectionView是我…

【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计(原理图工程+源码工程+仿真工程+答辩论文+答辩PPT)

typora-root-url: ./ 【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计(原理图工程源码工程仿真工程答辩论文答辩PPT) 文章目录typora-root-url: ./【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计(原理图工程源…

NetCore OpenIdConnect验证为什么要设置Authority?

在使用Identity Server作Identity Provider的时候,我们在NetCore的ConfigureServices((IServiceCollection services))方法中,常需要指定options的Authority,如下代码所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 …

基于PHP+MYSQL酒店管理系统的设计与开发

随着人们生活条件的提高,旅游和出差已经成了家常便饭,但是因为他向异地所以第一个要解决的问题就是吃住问题,吃先对是比较好解决的一个问题,随便一个超市或者饭店甚至地摊就能解决这一问题,但是总不能露宿街头吧,所以很多人在到达目的地的第一时间就是去寻找一个能够入住的酒店…

一文彻底搞懂Mysql索引优化

专属小彩蛋:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站(前言 - 床长人工智能教程) 目录 一、索引介绍 二、性能分析 三、查询优化 一、索引介绍…

Python使用矩阵分解法推荐系统找到类似的音乐

这篇文章是如何使用几种不同的矩阵分解算法计算相关艺术家。最近我们被客户要求撰写关于的矩阵分解法推荐系统研究报告,包括一些图形和统计输出。代码用Python编写,以交互方式可视化结果。 加载数据 这可以使用Pandas加载到稀疏矩阵中: # r…

Jmeter 使用BeanShell断言,实现自动获取文章列表,并判断文章是否为当天发布的

系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录系列文章目录前言一、正则表达式提取器,提取所有文章id二、循环控制器,读取每篇文章的创建时间三、JSON提取器,提取创建时间,然后进行判断四、运行结…

Java设计模式七大原则-里氏替换原则

里氏替换原则 OO中的继承性的思考和说明 继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对…

1540_AURIX_TriCore内核架构_FPU

全部学习汇总: GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com) 这一次看一下TriCore的FPU,浮点处理单元。说起来,这算是很多MCU中的一个高级模块了。 1. 在TriCore中FPU其实是可选实现的&a…

动画演示选择排序(Selection Sort)

1、排序规则 1.1 一句话总结选择排序 从数组中第一个数字开始,数组中每个数字都要和后面所有数字比一次大小,每每次循环遍历当前最小值,放在当前循环范围内的最小位置。当完成第 N - 1 次循环之后,排序完成。N 数组长度 - 1。 …