MODIS数据的简介和下载(五)——应用密钥的Python脚本下载

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/80056467 接上文,由于NASA官方弃用了FTP改用HTTPS服务,所以关于MODIS数据的下载方式有所改变。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/80056467

接上文,由于NASA官方弃用了FTP改用HTTPS服务,所以关于MODIS数据的下载方式有所改变。完整系列博客可以参照以下链接。本篇主要接着上一篇没有讲完的应用密钥的脚本下载介绍。

MODIS数据的简介和下载(一)——MODIS数据简介

MODIS数据的简介和下载(二)——MODIS数据下载方式(FTP)

MODIS数据的简介和下载(四)——HTTPS服务下载说明

1 官方教程与说明

LAADS Data Download Scripts

接着上文的部分往下,上一篇博客已经讲了一小部分应用密钥。本篇主要针对以下部分介绍(红框部分)。

1 应用密钥

1 申请一个应用密钥

任何注册了Earthdata账户(注册链接)的人都可以申请应用密钥。通过以下步骤就可以申请一个应用密钥。

1.首先转到对应的页面:LAADS DAAC,登陆Earthdata。
2.接着点击Profile→App Keys(见截图)。
3.通过输入你对keys的描述并且点击 “Create New App Key”按钮创建一个新的应用密钥。

当然如果以前你就有应用密钥,但是你忘记了,那就按照如下的步骤操作:
1.登陆Earthdata(同上)。
2.接着点击Profile→App Keys(同上)。
3.复制你的密钥。

总的来说这个操作跟国内百度地图、高德地图API也没太大差别。

2 我有一个应用密钥后,应该怎么样呢?

应用密钥可以通过HTTPS GET服务请求数据。关于HTTPS的GET和POST服务,可以看一下我找的几个帖子吧,对于做过爬虫,调用过API的人应该不陌生。

HTTP 方法:GET 对比 POST
知乎:get和post区别?

官方给了个样例,是用“curl”命令行工具来创建带请求的URL。

-v和-H属于附加的设置命令。

curl是个适用于所有操作系统的命令行工具。curl简介,也就是说通过curl可以下载对应订单的数据。

它给出了使用这个方式下载的一些要点:

1.所有的字符串都很重要,包括破折号、冒号和引号;
2.将’MY_APP_KEY’替换成你的应用密钥;
3.把“PATH_TO_MY_FILE”替换成你所需要的文件的路径。
4.通常LAADS DAAC的文件路径像下面的形式:

archive/allData/COLLECTION/PRODUCT/YEAR/DAY_OF_YEAR/FILENAME

这里给出一个URL的示例:

https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/6/MOD02QKM/2007/018/MOD02QKM.A2007018.0105.006.2014227230926.hdf

在发送请求之后会返回给你一个2007年第18天MODIS Terra250m的大气顶层反射率产品。

笔者常用系统是Ubuntu和Windows10,这里就演示下如何用curl下载数据吧(以Ubuntu为例)。以给出的URL为样例。

curl官网

Ubuntu上可以直接用apt-get install命令安装curl。网上有帖子,这里不细述了。接着按照上面所说的改写命令行,如果不要“> result”,是按照原来的文件名下载。

下载中。

结果数据。

Windows下的尝试不是很愉快。当然curl也不是主要下载方式,所以我就不继续探索了,如果后面有机会再来说这个吧。

2 自动化

如果你需要的数据是单个文件,并且你知道它位于LAADS数据存档的路径,那么点击并下载它是很简单的。如果你需要下载的文件非常多(比如上个月整个月的VIIRS数据),你可能更愿意利用脚本来下载。因此这里给出了一些代码的示例:Shell脚本、Perl和Python版的。
两条警告:1.不要把全部数据下到你的硬盘。2.尽可能在你的脚本里避免错误,以防下载过多导致IP被封。

3 代码示例

大多数语言都可以进行HTTPS通信,下面有些样例。使用方式是点击“下载源代码”以下载或复制代码并将其粘贴到反映语言的文件中(Shell脚本为.sh,Perl为.p1.,Python为.py)。 确保为文件设置了执行权限。 最后,打开终端或使用您的首选运行时执行文件。

示例:

perl laads-data-download.pl

Perl我不是特别懂,本篇主要介绍Python脚本,Shell脚本也会提一下。

2 使用Python脚本下载

首先下载下来laads-data-download.py,然后放到一个文件夹里,接着打开cmd,输入如下的命令。

python laads-data-download.py -h

这句代码的意思就是,-h是指help,也就是说关于这个Python函数的使用说明。

laads-data-download.py [-h] -s URL -d DIR -t TOK

简单地说这个函数有几个参数需要传进去,-s就是下载源,URL就是你要下载的数据的URL路径,-d就是下载路径,也就是数据应该下载到哪个路径里,-t就是token,令牌,其实就是你的app keys。也就是说完整的运行代码应该是如下:

python laads-data-download.py -s https://ladsweb.modaps.eosdis.nasa.gov/archive/orders/YOUR ORDERS ID -d Paht TO MY FILE -t MY_APP_KEYS

第一个红框就是你订购数据的ID(如下图)。

第二个红框是你数据存放在电脑里的路径。

第三个红框是你的app keys。

接下来就只需要等待数据下载完即可。

顺带提下Shell脚本,也是下载laads-data-download.sh文件。事实上语法都相同。但是Shell脚本呢还需要依赖‘jq’来下载。

./laads-data-download.sh [-h] -s URL -d PATH -t TOKEN

‘jq’的安装用命令即可。

apt-get install jq

等待下载结束。

所以事实上,Python脚本下载其实并不难。只需要替换对应的URL、路径、App Keys即可。其他的也如此,如果你懂了就可以开始尝试了。当然笔者之前还用过另一种方式来进行批量下载。接下来可能会就这个部分也来介绍一下。另外一点就目前笔者测试结果,感觉Shell脚本和Ubuntu下载速度要明显快于Python脚本和Windows。

目录
相关文章
|
25天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
22天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
18天前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
64 7
21个Python脚本自动执行日常任务(2)
|
1天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
8天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
60 5
|
23天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
26天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
38 7
|
25天前
|
缓存 开发者 Python
深入探索Python中的装饰器:原理、应用与最佳实践####
本文作为技术性深度解析文章,旨在揭开Python装饰器背后的神秘面纱,通过剖析其工作原理、多样化的应用场景及实践中的最佳策略,为中高级Python开发者提供一份详尽的指南。不同于常规摘要的概括性介绍,本文摘要将直接以一段精炼的代码示例开篇,随后简要阐述文章的核心价值与读者预期收获,引领读者快速进入装饰器的世界。 ```python # 示例:一个简单的日志记录装饰器 def log_decorator(func): def wrapper(*args, **kwargs): print(f"Calling {func.__name__} with args: {a
37 2
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
探索未来编程:Python在人工智能领域的深度应用与前景###
本文将深入探讨Python语言在人工智能(AI)领域的广泛应用,从基础原理到前沿实践,揭示其如何成为推动AI技术创新的关键力量。通过分析Python的简洁性、灵活性以及丰富的库支持,展现其在机器学习、深度学习、自然语言处理等子领域的卓越贡献,并展望Python在未来AI发展中的核心地位与潜在变革。 ###
|
3天前
|
存储 缓存 算法
探索企业文件管理软件:Python中的哈希表算法应用
企业文件管理软件依赖哈希表实现高效的数据管理和安全保障。哈希表通过键值映射,提供平均O(1)时间复杂度的快速访问,适用于海量文件处理。在Python中,字典类型基于哈希表实现,可用于管理文件元数据、缓存机制、版本控制及快速搜索等功能,极大提升工作效率和数据安全性。
29 0