1. 使用Python批量下载MODIS数据

大名鼎鼎的卫星数据MODIS是Terra和Aqua两颗卫星上搭载的成像传感器,因此我们一般又成这两课卫星所获取得数据为MODIS数据,该数据具有的有低空间分辨率(250m、500m、1000m)与高时间分辨率(大多是1天的重放周期)的特点。在平常的研究中,MODIS数据常作为地物时空变化监测(时序分析)研究中的重要常用数据源之一。在本文中,小编将介绍一下,如何在Windows平台下,使用一个Python脚本文件和一条命令来下载几年的MODIS数据。


注册EarthData账号

如下图,打开网站:https://ladsweb.modaps.eosdis.nasa.gov/,点击页面右上角的“Profile”,选择“EarthData Login”,如果你已有EarthData的账号,则输入账号密码登录即可;如果没有账号,则选择注册!

注册EarthData账号

  • 注意事项

  • (1)尽量选择国外的邮箱来注册,比如微软的Outlook邮箱,谷歌的gmail邮箱,因为使用国内的qq邮箱、163邮箱有可能会收不到注册账号的激活邮件!

  • (2)在点击激活按钮后,如果没收到激活邮件,请在垃圾箱里看看有没有,有些时候,激活邮件可能被自动识别为垃圾邮件!

创建或查询App Keys

App keys是一串字符,一般下载数据的时候,会要求用户输入注册的账号和密码,EarthData为了方便,使用了App Keys来替代账号和密码!简单来说,App Keys的作用类似于账号加账号密码,会在后边下载数据时用以验证你的身份!具体如何创建一个App Key,如下图所示,其中“描述(Description)”随便填写即可,只要方便你便是该App Key的用途即可!

创建App Keys
创建App Keys 01

下载Python脚本

下载Python脚本的方式如下面一系列图所示:

下载Python脚本
下载Python脚本 01
下载Python脚本 02

下载Python脚本 03

如下图所示,下载了Python脚本后,可以在终端(cmd或者powershell0)中,查看该脚本的用法!具体的方式是输入以下命令:

python laads-data-download.py -h

下载Python脚本 04
下载Python脚本 05

须要主要的是,GIS遥感相关专业的小伙伴门电脑上应该都装了ArcGIS Desktop,由于ArcGIS Desktop,由于ArcGIS Desktop自带了Python2.7,并且在安装ArcGIS的时候,会注册到系统的注册表内,因此,在使用上述命令时,请务必保证自己使用的Python是Python3.x版本!查看Python版本的方法可以使用Python -V或者Python直接回车来查看!

检索MODIS数据

检索MODIS数据需要“MODIS产品类型”、“成像时间(起始时间和终止时间)”、“地理空间范围”3个条件,具体的操作按下面一些列的图来即可:

检索MODIS数据01
检索MODIS数据02
检索MODIS数据03
检索MODIS数据04
检索MODIS数据05
检索MODIS数据07
检索MODIS数据08
检索MODIS数据09
检索MODIS数据11
检索MODIS数据11
检索MODIS数据12

  • 注意事项

  • (1)该网站一次性只能下载不超过2000个文件的数据,因此,一般将时间范围设置得短一些,否则超过2000个文件后,将不能下载数据!
    检索MODIS数据06

  • (2)空间范围的选择可以使用矩形框、经纬度范围、瓦片(MODIS数据的条代号,条代号如下图所示)等方式。
    检索MODIS数据13


批量下载MODIS数据

批量下载MODIS数据的方式是,在终端(cmd或者PowerShell中)使用Python命令运行下载下来的脚本,须要向脚本传递-s、-d、-t三个参数,具体的命令如下所示,至于如何获取下面命令中的网址,请看下文:

python laads-data-download.py -s 网址 -d 数据保存路径 -t 你的App Key

具体的操作如下面一系列的图所示:
批量下载MODIS数据
批量下载MODIS数据 01
批量下载MODIS数据 02
批量下载MODIS数据 03

  • 注意事项: 如下图,在未下载完数据之前不要点击“Release Order”,否则,即遍上述被一切操作都正确,也Python脚本不会有任何反应,不会任何下载数据!此外,下载完数据后,请及时释放请求,即点击“Release Order”,当然,以后如需要重新下载数据,点击“Re-Order”来重新提交请求!
    批量下载MODIS数据 04

关注我的微信公众号——GIS遥感研究与开发

更多关于“Python编程与GIS遥感数据处理”的文章,您可以扫描以下二维码或者搜索“PyGIRS”来关注我的微信公众号:
微信公众号二维码

### 使用 Python 实现批量下载 MODIS 数据 #### 方法概述 可以利用 Python 编写脚本来完成 MODIS 数据批量下载任务。这种方法基于 HTTP 请求技术,能够自动化搜索和下载指定的数据集,并支持多线程加速以及错误重试等功能[^2]。 以下是实现此功能的关键步骤说明: 1. **获取访问权限**: 需要先注册并申请 NASA 提供的应用程序密钥 (APP_KEY),这是为了验证身份以便合法访问 LAADS DAAC 或其他数据源的服务接口[^3]。 2. **编写脚本逻辑**: - 构建请求 URL 地址; - 设置目标存储路径; - 添加必要的参数(如时间范围、地理区域等)来筛选所需的具体产品; - 处理可能遇到的各种异常情况,比如网络中断等问题; 3. **执行命令行操作**: 下面给出了一条典型指令作为例子展示如何运行此类脚本: ```bash python laads-data-download.py \ --search-url=https://ladsweb.modaps.eosdis.nasa.gov/archive/orders/YOUR_ORDERS_ID \ --destination=Path_TO_MY_FILE \ --token=MY_APP_TOKEN ``` 4. **优化性能考虑因素** 如果计划大规模采集,则建议引入并发控制手段提升效率,例如采用 `concurrent.futures` 模块下的 ThreadPoolExecutor 来管理多个同时工作的线程池实例。 #### 示例代码片段 下面是一段简单的示范代码用于启动基本的功能框架: ```python import requests from concurrent.futures import ThreadPoolExecutor, as_completed def download_file(url, dest_folder): local_filename = url.split('/')[-1] with requests.get(url, stream=True) as r: r.raise_for_status() file_path = os.path.join(dest_folder, local_filename) with open(file_path, 'wb') as f: for chunk in r.iter_content(chunk_size=8192): if chunk: # filter out keep-alive new chunks f.write(chunk) urls_to_download = ["http://example.com/file1.hdf", "http://example.com/file2.hdf"] dest_directory = "/path/to/save/files" with ThreadPoolExecutor(max_workers=5) as executor: future_to_url = {executor.submit(download_file, url, dest_directory): url for url in urls_to_download} for future in as_completed(future_to_url): try: data = future.result() except Exception as exc: print('%r generated an exception: %s' % (future_to_url[future], exc)) ``` 上述代码展示了通过创建五个工作线程同步抓取远程服务器上的 HDF 文件资源到本地磁盘的过程。 --- #### 注意事项 当实际部署解决方案时需要注意几个方面的问题: - 网络稳定性直接影响最终成果质量,在不稳定环境下应加入自动恢复机制; - 对于大容量传输作业而言,合理规划带宽消耗至关重要; - 定期更新认证令牌以防失效影响正常流程进展。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值