如何开心的使用java自动下载每天的NASA中的卫星数据(以MODIS为例)

     因为工作需要所以要通过爬虫自动下载NASA网站的卫星影像数据,但是一般爬虫下载是通过Python进行下载的,但是项目主体为JAVA环境,便于集成,所以用java写了爬虫程序。 

  因为是下载网页中的数据,所以需要通过网站找到对应的下载链接,然后通过代码程序去使用下载链接去下载。

  具体步骤如下

一.找到数据下载地址

首先我们进入NASA数据查询网站  https://search.earthdata.nasa.gov/search   然后输入自己查询所需的经纬度范围以及日期(已modis为例)

 

然后我们发现对应的Modis/Aqua 的数据以及显示在下面了,点击进入,显示具体的详细HDF数据

然后我们再点击下载按钮,(已登录状态)进入下载列表找到对应的HDF 进行下载,这时候就能下载到所需的hdf了,

当然,这是人工手动进行下载数据,如何进行自动爬虫下载呢,所以需要进行分析

1.下载需要知道下载链接,我们通过人工手动去下载,然后知道modis的数据的下载链接为

https://nrt3.modaps.eosdis.nasa.gov/archive/allData/61/MOD03/2019/232/MOD03.A2019232.0250.061.NRT.hdf

然后我们进行分析

其中“https://nrt3.modaps.eosdis.nasa.gov/archive/allData/61/”  应该是他的下载地址前缀,包含61类型之类的

MOD03” 遥感器 、  “2019/232” 日期 :   /年/一年的第多少天   、“MOD03.A2019232.0250.061.NRT.hdf” 具体的文件名

然后我们可以分析得出

下载链接为:可知参数(https://nrt3.modaps.eosdis.nasa.gov/archive/allData/61/MOD03/2019/232/)+未知文件名(MOD03.A2019232.0250.061.NRT.hdf

所以现在下载链接问题变为如何知道 如何知道某个时间段,某个未知,具体影像文件名为什么。(找文件名)

然后我们可以从查询完的结果发现查询的文件名的列表

 

然后打开控制台,筛选找到对应的列表JSON

 

但是,问题来了

这个JSON请求是个POST请求......有点难搞

但是不要慌,我们可以看到JSON中存在一个链接

具体为:

https://cmr.earthdata.nasa.gov/search/granules.json?bounding_box=118.24804687500001%2C33.908203125%2C123.46875%2C36.52734375&echo_collection_id=C1426422512-LANCEMODIS&page_num=1&page_size=20&sort_key%5B%5D=-start_date&temporal=2019-08-20T00%3A00%3A00.000Z%2C2019-08-21T23%3A59%3A59.000Z

然后输入地址栏发现,这就是对应的get请求,而且里面包含了对应的所有列表,和对应的信息

 

真棒,得来全不费工夫,然后我们可以发现这个链接里面包含了,经纬度、page_num、开始日期、结束日期

https://cmr.earthdata.nasa.gov/search/granules.json?bounding_box="+(经纬度)+" &echo_collection_id=C1426422512-LANCEMODIS&page_num=1&page_size=20&sort_key%5B%5D=-start_date&temporal="+(开始日期)+" T00%3A00%3A00.000Z%2C"+(结束日期)+" T23%3A59%3A59.000Z   

这样我们就能通过链接去查询对应的影像信息

二、如何去下载影像文件

得到具体的下载链接下载的方式有多种多样,我最开始通过HttpClient 下载 ,然后发现在网络波段不太好的情况下,emmm不好用。

然后我看到官网自带推荐的wget下载方式

wget -e robots=off -m -np -R .html,.tmp -nH --cut-dirs=4 "https://nrt3.modaps.eosdis.nasa.gov/api/v2/content/archives/allData/61/MYD02QKM/2019/189/MYD02QKM.A2019189.0450.061.NRT.hdf" --header "Authorization: Bearer 你的密钥" -O 下载地址

然后发现,哎哟,还挺好用的,当然,密钥是你登陆之后可以创建的东西,(至于怎么注册,应该很简单,应该过段时间就可以通过)

 

然后通过java去执行cmd 使用wget下载,也可以通过调整参数调整是否显示黑窗下载、下载改名灯。具体的下载方法不再这阐述,可自行百度。

出现吧,黑窗大军!!!!!!!!!!!!!!!!!

 

 然后具体的就这些,具体的代码就不粘贴了。。。。有点菜。只是把自己的思路记录一下

 

 

 

----20200604补充

一个就是MODIS数据的仓库

https://nrt3.modaps.eosdis.nasa.gov/archive/allData/61/MOD021KM/2020/156/

 

 

 

然后对应的下载代码

然后就是对应的appkey  https://nrt3.modaps.eosdis.nasa.gov/profile/app-keys

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值