关于批量下载MODIS数据的坑

关于批量下载MODIS数据的坑与正确姿势

1. 第一个坑

1.1 Ladsweb的坑

由于之前做项目的时候去Ladsweb官网下载数据的时候还好好的,于是经过被批评改正之后回来就信心满满地去Ladsweb下数据了,于是。

这是打开Ladsweb之后的正常操作,可能被爬的太狠了,于是鄙人考虑是封了这边的人登陆,于是鄙人请那边的人用那边的网登陆那边的网络,结果是同样的操作,emmmm那么就不用想了,网炸了。中间其实还有选择之后选不出条带的情况或者选完了还爆error的情况我就不放图了。红色不大好。

1.2 NASA search不友好

为啥那么说呢,第一个是因为这个Bad Gateway守门员,第二个就是如果批量下载数据的话你需要一个earthdata的账户,嗯,虽然许多blog都说需要gmail或者Facebook但经过同僚与我的验证,其实只要能科学上网就OK了,主要是有个人机交互界面,如果没有科学上网就会注册不了。

2. 第二个坑

如果历尽千幸万险之后Get到了订单之后,后面处理的效率还是挺高的,不像之前去气象网下数据,2个txt处理了半个小时,然后数据还只有6组数据能用,但是要下下来就没有那么舒服了,如果你有足够的耐心的话可以手动点,之前下载10年数据的时候不懂事就10个慢慢点,但是这次10年的数据需要大概300多个数据,每个数据200多M所以单点就不合适了。于是鄙人开始了踩雷之旅。

2.1 IDM

什么是 IDM 呢,全称是(Internet Download Manager),类似爬虫爬数据再自己选择需要的数据下载。
在这里插入图片描述
这个是IDM下载的官网,全英虽可还行但是下面可能就不太舒服了。
在这里插入图片描述
嗯,下载之后只是试用,如果想try的话还是要支援下作者,毕竟智力劳动毕竟辛苦。
那么也附上IDM下载链接吧!
link.http://www.internetdownloadmanager.com/
下完之后有傻瓜式的操作让你配谷歌的拓展工具,当然你也可以用别人blog里的方法来配置,这里就不再多叙述了。
当你信心满满地爬到链接数据的时候,你却发现。
在这里插入图片描述
没错,因为这个插件还是需要上NASA的官网,所以还是会error,那么照样得GG。所以两位斗士放弃了这种choice.

3 第三个坑

3.1 pyhton结合wget方法下载

如果有Arcgis的话自带python2.7所以下载的时候要注意配环境,至于配环境,移步另外blog。
在NASA download script里有一个python 脚本,下载下来,这个只是部分截图,但是下载下来是.txt需要改后缀名为.py
在这里插入图片描述
用这个script之前你需要下载wget,由于是用mac电脑下的,为不闲麻烦就用homebrew再 brew了wget,比较方便,外面的帖子都是挺成熟的,只要去看就行。NASA官网有代码有三个参数要改。只要看看,然鹅鄙人尝试了半天就给我报错。

wget -e robots=off -m -np -R .html,.tmp -nH --cut-dirs=3 "https://ladsweb.modaps.eosdis.nasa.gov/archive/orders/501383976/" --header "B75F2548-F310-11E9-9BEB-C905D05A9C21" -P /Users/dadadadahuang/Desktop/modis

前面是一些附加的改正参数。在邮箱里或者官网都给解释了。在这里插入图片描述
对照下前面参数就行,dir=3后面有3个要改正的,第一个是下载的链接,这个在发给你的信息里有。第二个是一个appKey,这个在NASA里生成,第三个是你要放置文件的地址。
在cmd或者终端输入。然而鄙人还没成功,还需要尝试。在这里插入图片描述
以后成功再写blog。已经成功了,详情请看我后面的博客
利用python批量下载MODIS数据

4. Downthemall的坑

后来看到blog就想用firefox的这个插件,一开始看到下图
在这里插入图片描述
很开心,终于要成功了,然鹅,看这个数据量,154B后面,不用想知道有问题了,于是在Modis Tool里放入想重投影于世。在这里插入图片描述
之后这堆文件就静静地躺在鄙人的回收站里里。
对了downthemall这个插件只要在firefox的插件里搜索一下即可下载了

5. 最后成功

在这里插入图片描述

这堆数据还在下,等着上课就让它去跑就ok了,至于如何下载的话需要看我同僚的blog,利用earthdata和downthemall,链接的话。

传送门: https://blog.csdn.net/weixin_43010839/article/details/102653105 .替他推销下,顺便也安慰下为批量下载奋斗一天的两个斗士。
后期批量重投影和重采样等成功了也会有blog记录的。天黑了,该休息了。

### 如何通过调用API接口实现批量下载MODIS卫星数据 为了实现批量下载MODIS卫星数据,可以利用NASA提供的Web服务接口以及Python编程语言来完成这一任务。以下是详细的说明和示例代码。 #### 使用HTTP请求与多线程技术 可以通过编写一个Python脚本来自动化MODIS数据的检索与下载过程[^1]。此脚本的核心功能包括发送HTTP请求以获取所需的数据列表,并采用多线程机制提高下载效率。此外,还可以集成代理设置、断点续传等功能以便于复杂网络环境下的操作。 #### 应用密钥的身份验证 在实际开发过程中,通常需要注册并获得个人的应用程序访问令牌(即APP_KEY),这是连接到某些受保护资源所必需的安全措施之一[^2]。下面展示了一个命令行工具的例子,它接受几个参数如订单ID路径目标目录及认证token来进行指定范围内的文件抓取: ```bash python laads-data-download.py \ -s https://ladsweb.modaps.eosdis.nasa.gov/archive/orders/{YOUR_ORDERS_ID} \ -d /path/to/my/file/destination \ -t {MY_APP_KEYS} ``` 这段指令展示了如何配置基本的信息字段以启动自动化的资料收集流程[^3]。 #### 示例代码:基于Python的MODIS数据下载器 这里给出一段简单的Python代码片段作为参考,演示了如何构建这样一个应用程序框架: ```python import requests from concurrent.futures import ThreadPoolExecutor, as_completed def download_file(url, destination_folder, app_key): headers = {'Authorization': f'Bearer {app_key}'} response = requests.get(url, stream=True, headers=headers) if response.status_code == 200: file_name = url.split('/')[-1] full_path = f"{destination_folder}/{file_name}" with open(full_path, 'wb') as f: for chunk in response.iter_content(chunk_size=8192): f.write(chunk) print(f"Downloaded {file_name}") else: print(f"Failed to retrieve {url}. Status code: {response.status_code}") urls_to_download = [...] # List of URLs obtained from the API call. app_key = "your_app_key_here" dest_dir = "/local/path" with ThreadPoolExecutor(max_workers=5) as executor: future_to_url = { executor.submit(download_file, url, dest_dir, app_key): url for url in urls_to_download } for future in as_completed(future_to_url): try: future.result() except Exception as exc: print(f"Generated an exception: {exc}") ``` 上述代码定义了一个`download_file()`函数用来执行单个文件的获取动作;并通过创建线程池对象(`ThreadPoolExecutor`)实现了并发处理多个URL地址的任务分配策略^。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值