MODIS數據的簡介和下載(五)——應用密鑰的Python腳本下載

接上文,因爲NASA官方棄用了FTP改用HTTPS服務,因此關於MODIS數據的下載方式有所改變。完整系列博客能夠參照如下連接。本篇主要接着上一篇沒有講完的應用密鑰的腳本下載介紹。html

MODIS數據的簡介和下載(一)——MODIS數據簡介python

MODIS數據的簡介和下載(二)——MODIS數據下載方式(FTP)git

MODIS數據的簡介和下載(三)——MODIS數據下載方式(基於MODIS Web Service)github

MODIS數據的簡介和下載(番外篇)——MODIS Web Service的Python客戶端應用web

MODIS數據的簡介和下載(四)——HTTPS服務下載說明app

1 官方教程與說明

LAADS Data Download Scriptscurl

接着上文的部分往下,上一篇博客已經講了一小部分應用密鑰。本篇主要針對如下部分介紹(紅框部分)。函數

1 應用密鑰

1 申請一個應用密鑰

任何註冊了Earthdata帳戶(註冊連接)的人均可以申請應用密鑰。經過如下步驟就能夠申請一個應用密鑰。工具

1.首先轉到對應的頁面:LAADS DAAC,登錄Earthdata。 2.接着點擊Profile→App Keys(見截圖)。 3.經過輸入你對keys的描述而且點擊 "Create New App Key"按鈕建立一個新的應用密鑰。post

固然若是之前你就有應用密鑰,可是你忘記了,那就按照以下的步驟操做: 1.登錄Earthdata(同上)。 2.接着點擊Profile→App Keys(同上)。 3.複製你的密鑰。

總的來講這個操做跟國內百度地圖、高德地圖API也沒太大差異。

2 我有一個應用密鑰後,應該怎麼樣呢?

應用密鑰能夠經過HTTPS GET服務請求數據。關於HTTPS的GET和POST服務,能夠看一下我找的幾個帖子吧,對於作過爬蟲,調用過API的人應該不陌生。

HTTP 方法:GET 對比 POST 知乎:get和post區別?

官方給了個樣例,是用「curl」命令行工具來建立帶請求的URL。

https://ladsweb.modaps.eosdis.nasa.gov/PATH_TO_MY_FILE

curl -v -H 'Authorization: Bearer MY_APP_KEY' 'https://ladsweb.modaps.eosdis.nasa.gov/PATH_TO_MY_FILE' > result

-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。

相關文章
相關標籤/搜索