https://ladsweb.modaps.eosdis.nasa.gov/search
上面的网址是可以利用安全的http链接下载modis各级产品的。原来的时候通过完整的下载链接即可批量下载,使用迅雷等任何下载工具都可以。例如某个数据文件的链接地址为:
https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD35_L2/2019/015/MOD35_L2.A2019015.0300.061.2019015131648.hdf
仍然使用这种方式,会导致服务器拒绝几乎所有的下载任务。
该网站声称的“上级单位”ESDIS要求记录是哪些用户在下载,因此必须在下载连接中使用安全码。详情可见下面的网址。
https://ladsweb.modaps.eosdis.nasa.gov/tools-and-services/data-download-scripts/#samples
部分内容翻译后为:
使用LAADS DAAC应用程序密钥下载文件
我们的上级组织ESDIS要求我们跟踪谁下载文件。此外,MODIS和VIIRS Science团队要求我们保护某些数据,以防止公众下载,但允许授权用户使用。
为了满足这些要求,ESDIS已实施了Earthdata Profile(URS) ,一个档案管理员,可帮助我们记录使用我们服务的任何人的记录。除URS之外,LAADS还管理授权,这些授权可按用户和访问类型来限制对某些资源的访问。
为了访问受限制的资源(例如SENTINEL-3),用户首先需要获得该资源所有者的授权并登录。当前登录到LAADS的用户无需注销并重新登录即可查看更改。
根据网站的指导,在win10环境下,实现批量下载最好使用网站推荐的命令wget.exe。
具体使用方法也给了,下载wget.exe 32bit版本后,放到c:\windows\system32目录下。
wget is free and available for Linux, macOS, and Windows.
Installation
Linux
Launch a command-line terminal
Type
yum install wget -y
macOS
Install Homebrew (admin privileges required)
Launch Applications > Utiliites > Terminal
Type
brew install wget
Windows
Download the latest 32-bit or 64-bit binary (.exe) for your system
Move it to C:\Windows\System32 (admin privileges will be required)
Click the Windows Menu > Run
Type
cmd
and hit EnterIn the Windows Command Prompt, type
wget -h
to verify the binary is being executed successfullyIf any errors appear, the wget.exe binary may be not be located in correct directory or you may need to switch from 32-bit <-> 64-bit
Command-Line/Terminal Usage:
wget -e robots=off -m -np -R .html,.tmp -nH --cut-dirs=3 "https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/PATH_TO_DATA_DIRECTORY" --header "Authorization: Bearer APP_KEY" -P TARGET_DIRECTORY_ON_YOUR_FILE_SYSTEM
因此首先查询数据,比如要下载的数据有5000个hdf文件,可以得到待下载列表的csv文件,将文件名列整体拷贝到记事本中,然后通过替换在前面和后面添加上wget的命令即可。保存为*.bat,右键使用管理员权限运行,即可批量下载5000个文件。
***其中APP_KEY(密钥,或者说是授权码)需要用户登录,在网页的最右上角,点击profile,点击APP_KEY会得到一串字符,需要替换上述命令中的APP_KEY,例如4C3Q6786-7EK6-12EA-8982-CB0FCWW78F1E(此处仅为格式示例,如需密钥,请自行登录获取)
***其中第一个双引号中的网址即数据文件的链接地址
***其中,TARGET_DIRECTORY_ON_YOUR_FILE_SYSTEM为本地文件夹地址,例如D:\MODIS
上面的命令会出现一些问题,例如不支持断点续传,需要询问证书等,阻碍实现批量下载,这时候就需要对wget增加参数来避免出现问题。最终可用的命令为:
wget -c --no-check-certificate -e robots=off -m -np -R .html,.tmp -nH --cut-dirs=3 "https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/6/MOD09/2018/006/MOD09.A2018006.0200.006.2018009182521.hdf" --header "Authorization: Bearer 4C3Q6786-7EK6-12EA-8982-CB0FCWW78F1E" -P D:\images\
几千条这样的命令构成的*.dat文件可以批量下载,支持断点续传。
还有问题,nasa提供了wget.exe文件,有32bit和64bit两种版本,此处建议使用32bit,因为在win10下经常会跳出“wget.exe已停止工作”消息框,批量下载就会被阻断。
解决方法为:
*桌面右键“此电脑”,点击属性,点击高级系统设置,在系统属性对话框中,点击“高级”标签,在“性能”下点击“设置”,悬着“数据执行保护”,点选复选框“为除下列选定程序之外的所有程序和服务启用DEP(U):",点击添加,从c:\windows\system32添加wget.exe。就是这一步要求32bit,否则无法添加。
*找到wget.exe本身,右键属性,点击”以管理员身份运行“,点击兼容,选择以windows 7兼容运行。
如此,*.dat包含wget命令的方法可以实现批量下载。
转载本文请联系原作者获取授权,同时请注明本文来自陈兴峰科学网博客。
链接地址:https://wap.sciencenet.cn/blog-474887-1228488.html?mobile=1
收藏