接上文,由于NASA官方棄用了FTP改用HTTPS服務,所以關于MODIS數(shù)據(jù)的下載方式有所改變。完整系列博客可以參照以下鏈接轮蜕。本篇主要接著上一篇沒有講完的應用密鑰的腳本下載介紹昨悼。
MODIS數(shù)據(jù)的簡介和下載(一)——MODIS數(shù)據(jù)簡介
MODIS數(shù)據(jù)的簡介和下載(二)——MODIS數(shù)據(jù)下載方式(FTP)
MODIS數(shù)據(jù)的簡介和下載(三)——MODIS數(shù)據(jù)下載方式(基于MODIS Web Service)
MODIS數(shù)據(jù)的簡介和下載(番外篇)——MODIS Web Service的Python客戶端應用
MODIS數(shù)據(jù)的簡介和下載(四)——HTTPS服務下載說明
1 官方教程與說明
接著上文的部分往下蝗锥,上一篇博客已經(jīng)講了一小部分應用密鑰。本篇主要針對以下部分介紹(紅框部分)率触。
1 應用密鑰
1 申請一個應用密鑰
任何注冊了Earthdata賬戶(注冊鏈接)的人都可以申請應用密鑰终议。通過以下步驟就可以申請一個應用密鑰。
1.首先轉(zhuǎn)到對應的頁面:LAADS DAAC葱蝗,登陸Earthdata穴张。
2.接著點擊Profile→App Keys(見截圖)。
3.通過輸入你對keys的描述并且點擊 "Create New App Key"按鈕創(chuàng)建一個新的應用密鑰两曼。
當然如果以前你就有應用密鑰皂甘,但是你忘記了,那就按照如下的步驟操作:
1.登陸Earthdata(同上)悼凑。
2.接著點擊Profile→App Keys(同上)偿枕。
3.復制你的密鑰。
總的來說這個操作跟國內(nèi)百度地圖户辫、高德地圖API也沒太大差別渐夸。
2 我有一個應用密鑰后,應該怎么樣呢?
應用密鑰可以通過HTTPS GET服務請求數(shù)據(jù)渔欢。關于HTTPS的GET和POST服務墓塌,可以看一下我找的幾個帖子吧,對于做過爬蟲奥额,調(diào)用過API的人應該不陌生苫幢。
HTTP 方法:GET 對比 POST
知乎:get和post區(qū)別?
官方給了個樣例垫挨,是用“curl”命令行工具來創(chuàng)建帶請求的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是個適用于所有操作系統(tǒng)的命令行工具棒拂。curl簡介伞梯,也就是說通過curl可以下載對應訂單的數(shù)據(jù)玫氢。
它給出了使用這個方式下載的一些要點:
1.所有的字符串都很重要,包括破折號谜诫、冒號和引號漾峡;
2.將'MY_APP_KEY'替換成你的應用密鑰;
3.把“PATH_TO_MY_FILE”替換成你所需要的文件的路徑喻旷。
4.通常LAADS DAAC的文件路徑像下面的形式:
archive/allData/COLLECTION/PRODUCT/YEAR/DAY_OF_YEAR/FILENAME
這里給出一個URL的示例:
在發(fā)送請求之后會返回給你一個2007年第18天MODIS Terra250m的大氣頂層反射率產(chǎn)品生逸。
筆者常用系統(tǒng)是Ubuntu和Windows10,這里就演示下如何用curl下載數(shù)據(jù)吧(以Ubuntu為例)且预。以給出的URL為樣例槽袄。
Ubuntu上可以直接用apt-get install命令安裝curl。網(wǎng)上有帖子锋谐,這里不細述了遍尺。接著按照上面所說的改寫命令行,如果不要“> result”涮拗,是按照原來的文件名下載乾戏。
下載中。
結(jié)果數(shù)據(jù)三热。
Windows下的嘗試不是很愉快鼓择。當然curl也不是主要下載方式,所以我就不繼續(xù)探索了就漾,如果后面有機會再來說這個吧呐能。
2 自動化
如果你需要的數(shù)據(jù)是單個文件,并且你知道它位于LAADS數(shù)據(jù)存檔的路徑抑堡,那么點擊并下載它是很簡單的摆出。如果你需要下載的文件非常多(比如上個月整個月的VIIRS數(shù)據(jù)),你可能更愿意利用腳本來下載夷野。因此這里給出了一些代碼的示例:Shell腳本懊蒸、Perl和Python版的。
兩條警告:1.不要把全部數(shù)據(jù)下到你的硬盤悯搔。2.盡可能在你的腳本里避免錯誤骑丸,以防下載過多導致IP被封。
3 代碼示例
大多數(shù)語言都可以進行HTTPS通信妒貌,下面有些樣例通危。使用方式是點擊“下載源代碼”以下載或復制代碼并將其粘貼到反映語言的文件中(Shell腳本為.sh,Perl為.p1.灌曙,Python為.py)菊碟。 確保為文件設置了執(zhí)行權限。 最后在刺,打開終端或使用您的首選運行時執(zhí)行文件逆害。
示例:
perl laads-data-download.pl
Perl我不是特別懂头镊,本篇主要介紹Python腳本,Shell腳本也會提一下魄幕。
2 使用Python腳本下載
首先下載下來laads-data-download.py相艇,然后放到一個文件夾里,接著打開cmd纯陨,輸入如下的命令坛芽。
python laads-data-download.py -h
這句代碼的意思就是,-h是指help翼抠,也就是說關于這個Python函數(shù)的使用說明咙轩。
laads-data-download.py [-h] -s URL -d DIR -t TOK
簡單地說這個函數(shù)有幾個參數(shù)需要傳進去,-s就是下載源阴颖,URL就是你要下載的數(shù)據(jù)的URL路徑活喊,-d就是下載路徑,也就是數(shù)據(jù)應該下載到哪個路徑里膘盖,-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
第一個紅框就是你訂購數(shù)據(jù)的ID(如下圖)。
第二個紅框是你數(shù)據(jù)存放在電腦里的路徑损晤。
第三個紅框是你的app keys软棺。
接下來就只需要等待數(shù)據(jù)下載完即可。
順帶提下Shell腳本尤勋,也是下載laads-data-download.sh文件喘落。事實上語法都相同。但是Shell腳本呢還需要依賴‘jq’來下載最冰。
./laads-data-download.sh [-h] -s URL -d PATH -t TOKEN
'jq'的安裝用命令即可瘦棋。
apt-get install jq
等待下載結(jié)束。
所以事實上暖哨,Python腳本下載其實并不難赌朋。只需要替換對應的URL、路徑篇裁、App Keys即可沛慢。其他的也如此,如果你懂了就可以開始嘗試了达布。當然筆者之前還用過另一種方式來進行批量下載团甲。接下來可能會就這個部分也來介紹一下。另外一點就目前筆者測試結(jié)果黍聂,感覺Shell腳本和Ubuntu下載速度要明顯快于Python腳本和Windows躺苦。