可根据研究区直接裁剪数据以及进行一些计算处理后再下载,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