chenxingfeng的个人博客分享 http://blog.sciencenet.cn/u/chenxingfeng

博文

MODIS数据批量下载方法20200415 需要密钥

已有 7064 次阅读 2020-4-15 14:30 |系统分类:科研笔记

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

  1. Linux

    1. Launch a command-line terminal

    2. Type yum install wget -y

  2. macOS

    1. Install Homebrew  (admin privileges required)

    2. Launch Applications > Utiliites > Terminal

    3. Type brew install wget

  3. Windows

    1. Download the latest 32-bit or 64-bit binary (.exe) for your system 

    2. Move it to C:\Windows\System32 (admin privileges will be required)

    3. Click the Windows Menu > Run

    4. Type cmd and hit Enter

    5. In the Windows Command Prompt, type wget -h to verify the binary is being executed successfully

    6. If 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://blog.sciencenet.cn/blog-474887-1228488.html

上一篇:IDL+ENVI和C#联调的注意问题
收藏 IP: 159.226.117.*| 热度|

1 宁利中

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 08:28

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部