LAADS DAAC的MODIS订单下载—Python与Windows10 Wget
动机
做遥感不可能不接触MODIS数据,MODDIS数据分为两类,上午星(Terra)与下午星(Aqua),详细参数都可以去NASA官网去查看(我建议自己去官网看最准确,另外MODIS数据使用的是当地时间,不是UTC)。由于项目需要,今天我需要从LAADS DAAC下载MOD16A2数据,来对我研究区蒸散发分析。数据是可以一个一个点击下载,但是作为一个写代码的人,本身就是一种懒人,所以必须得得批量下载,原来一直使用的是Python脚本下载,但是习惯了Ubuntu的Wget,恰好又看到了支持wget下载,因此又试用了下Wget下载!并且遇到了几个小坑,怕大家也和我一样,因此写此博客。
此外,出于对一个同学给我的任务,我也写此博文,让她学习下,顺便作为笔记,分享给大家。
详细步骤
1.账号及订单准备
1.账号注册。账号注册成果后,才能获得免费下载数据的服务。
2.生成app keys。后面使用Python脚本下载需要用到。
3.根据自己的需求(产品、时间范围、空间范围等),提交订单。提交订单后约10分钟左右就会给处理好。
4.查看订单详情,准备下载!
2.数据下载
第一种下载方式:.py 脚本下载
1.下载 .py 脚本
LAADS DAAC的python脚本下载地址,但是下载之后,把.txt删除,保留.py结尾,如“laads-data-download.py”。如果我表达的不清楚,请查看官网,滑动到图1界面,我其实也就是个搬运工!
2.运行 laads-data-download.py 脚本,查看帮助
首先,进入 laads-data-download.py 所在目录,shift+左键,打开powershell;
之后,输入 python .\laads-data-download.py ,弹出帮助(如下图1)。-s 后填写订单所在服务器文件夹,如 https://ladsweb.modaps.eosdis.nasa.gov/archive/orders/501545478/;-d 后填写 本地下载文件夹,即目标文件夹;-t 后填写所申请账号后,自己账号独有的token,详细查看方式参照下图2:
1.保证python已安装,且拥有argparse、os、shutil、sys包,但是这几个都是python自带的包,也就是安装了python,默认有这几个包。
2.将python设置进入环境变量,否则这里的运行 laads-data-download.py 的方式有所差别。
3 运行脚本,对订单进行下载。
你如果感觉开一个 powershell 单进程下载较慢,你可以多打开几个powershell,同时运行,就能实现多进程下载了啦!!!哈哈哈
第二种下载方式:wget 下载
windows的wget安装
1.下载wget,网址https://eternallybored.org/misc/wget/。下载最新版64位的zip格式,解压直接就能用。(比较懒的人,可以关注我,然后去我的 “资源” 栏下载 附件 wget-1.20.3-win64.zip)
2.如何使用
1)解压,将wget.exe所在文件夹,添加至环境变量。
2)将 wget-1.20.3-win64.zip解压出来的所有文件,复制至 C:\Windows\System32
3)直接解压,但是每次使用wget命令时,需要 cd 至 wget.exe所在目录。
前两种方式,一次操作,后续再使用wget,直接在命令行中调用即可,第三种方法每次调用,都需要将进入wget.exe所在文件夹。
订单的wget下载
1.以管理员身份进入“命令提示符工具”,我们俗称“cmd”;cd 至 目标文件夹。图2以进入D盘的“D:\YUTING”为例
2.进入订单页面,点击 see wget download command,复制下面内容;
3.尝试将复制内容,粘贴至 cmd(直接复制过来的代码,只能下载下来1个文件)
80%应该是不能成功的,但是其他博文有人成功了,我也不知道为什么,我试了很多次,包括国外的服务器,一次都没成功,这样的代码只能下载1个文件,下载结束后就不会继续下载了。
如果像我一样尝试没有成功,进行 第4步
4.将复制过来的代码前面加
## 循环次数略大于需要下载文件的个数
for /l %x in (1,1, 循环次数) do
样例代码如下
for /l %x in (1,1,400) do wget -e robots=off -m -np -R .html,.tmp -nH --cut-dirs=3 "https://ladsweb.modaps.eosdis.nasa.gov/archive/orders/501545478/" --header "Authorization: Bearer bmltYWthbmc6TVRNMk16azRPVEEwTWtCeGNTNWpiMjA9OjE2MTE0NjQ1OTk6ZjRhNmUzMjBjYzAwMmMyM2QyMTVjM2MxNDdlY2ZlNjUxYjdiYTY5ZA" -P .
-P 后也可放自己的目标文件夹,如下:
for /l %x in (1,1,400) do wget -e robots=off -m -np -R .html,.tmp -nH --cut-dirs=3 "https://ladsweb.modaps.eosdis.nasa.gov/archive/orders/501545478/" --header "Authorization: Bearer bmltYWthbmc6TVRNMk16azRPVEEwTWtCeGNTNWpiMjA9OjE2MTE0NjQ1OTk6ZjRhNmUzMjBjYzAwMmMyM2QyMTVjM2MxNDdlY2ZlNjUxYjdiYTY5ZA" -P D:/YUTING
二、结语
python及wget两种方式,到这里就给大家讲述完了;中间有自己一直以来使用 LAADS 数据的心得、摸索,如加入for循环来避免服务器的中断导致单次只能下载1个,但更多的是将官网的一些英文教程总结在这里,供大家参考。
此外,此教程,可能前后下载订单与下载的截图,对不上;主要是因为不是我一次性将本博文写完的。大家对于图片中下载的内容仅供参考,但是操作流程顺序没问题。