MODIS數(shù)據(jù)的簡介和下載(三)——MODIS數(shù)據(jù)下載方式(基于MODIS Web Service)

這是MODIS數(shù)據(jù)的簡介和下載的最后一篇,下載方式的進(jìn)階版——基于MODIS Web Service的下載方式。
這篇是筆者課程上機(jī)實(shí)習(xí)內(nèi)容之一,做些簡要總結(jié)和整理。
事實(shí)上MODIS產(chǎn)品系列就如前面提到的,由于搭載在Terra星和Aqua星上,所以產(chǎn)品就包括了Terra星、Aqua星以及二者集成的產(chǎn)品。分別以MOD(Terra星)、MYD(Aqua星)、MCD(二者集成)作區(qū)分。具體的產(chǎn)品查詢網(wǎng)站除了前面文章簡單提到的之外,還可以查看官網(wǎng)。

https://lpdaac.usgs.gov/dataset_discovery/modis/modis_products_table/

當(dāng)然這一次進(jìn)階版的下載方式是基于Web Service的。那么Web Service是什么呢?這邊引用了課程ppt的一段話。

Web service是一個(gè)平臺(tái)獨(dú)立的,低耦合的,自包含的、基于可編程的web的應(yīng)用程序,可使用開放的XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)子集)標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序。

Web Service技術(shù), 能使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數(shù)據(jù)或集成。依據(jù)Web Service規(guī)范實(shí)施的應(yīng)用之間, 無論它們所使用的語言、 平臺(tái)或內(nèi)部協(xié)議是什么, 都可以相互交換數(shù)據(jù)。Web Service是自描述、 自包含的可用網(wǎng)絡(luò)模塊, 可以執(zhí)行具體的業(yè)務(wù)功能。Web Service也很容易部署, 因?yàn)樗鼈兓谝恍┏R?guī)的產(chǎn)業(yè)標(biāo)準(zhǔn)以及已有的一些技術(shù),諸如標(biāo)準(zhǔn)通用標(biāo)記語言下的子集XML、HTTP。Web Service減少了應(yīng)用接口的花費(fèi)。Web Service為整個(gè)企業(yè)甚至多個(gè)組織之間的業(yè)務(wù)流程的集成提供了一個(gè)通用機(jī)制。

簡單說,這是個(gè)方便你下載的插件。具體的下載地址就在下面了。官方提供了多種語言的客戶端,包括Java,Perl,Python,Kepler,Matlab和R。本篇主要介紹Matlab和R的客戶端如何下載MODIS數(shù)據(jù)。

https://modis.ornl.gov/data/modis_webservice.html

先介紹Matlab的客戶端,首先在官網(wǎng)下載Matlab的客戶端。


客戶端壓縮包文件:

客戶端在Matlab的部署非常簡單。只需要拷貝到Matlab的工作目錄即可。當(dāng)然使用的時(shí)候要求位于如圖的路徑中。

接下來就可以愉快地使用了。當(dāng)然,由于官方的鏡像搬遷的問題,需要更新對(duì)應(yīng)的鏡像地址。

對(duì)應(yīng)在Matlab客戶端的modisClient.m文件中找到替換的鏡像地址,保存后即可開始使用。

在Matlab中調(diào)用不含任何參數(shù)的modisClient,可以看到可供下載的MODIS產(chǎn)品列表。

modisClient()

用產(chǎn)品名稱作為參數(shù),則可以看到該產(chǎn)品下所有數(shù)據(jù)集。

modisClient('MOD15A2')
modisClient('MOD15A2','Lai_1km',36.833,116.567)

加上數(shù)據(jù)集名稱(以1 km的葉面積指數(shù)數(shù)據(jù)為例)以及經(jīng)緯度坐標(biāo)。結(jié)果為對(duì)應(yīng)的數(shù)據(jù)集(該數(shù)據(jù)8天為間隔)所在的時(shí)間范圍。

在前面的基礎(chǔ)上加上時(shí)間范圍即可用客戶端下載對(duì)應(yīng)的MODIS數(shù)據(jù)。數(shù)據(jù)的下載格式是一個(gè)多元結(jié)構(gòu)體。包括了數(shù)據(jù)、轉(zhuǎn)換因子、對(duì)應(yīng)時(shí)間序列和單位等等。這樣我們就用Matlab下載到了對(duì)應(yīng)的MODIS數(shù)據(jù)。

YC_LAI2009=modisClient('MOD15A2','Lai_1km',36.833,116.567,2009000,2009365)

接下來我們講的是R語言的客戶端及其下載方式。R語言的客戶端有兩種配置方法,一個(gè)是基礎(chǔ)設(shè)置(基于SSOAP來進(jìn)行),一個(gè)是高級(jí)設(shè)置(MODISTools包)。
筆者個(gè)人使用的是高級(jí)設(shè)置,基礎(chǔ)設(shè)置沒有配置過。只是對(duì)官方給出的例子做了下翻譯,具體的demo如下:

##確定你安裝了SSOAP包,否則先安裝SSOAP,用install.packages("SSOAP")
##接著你就可以嘗試用命令行的方式來下載裁切你想要的MODIS影像數(shù)據(jù)了

## 載入包
library(SSOAP)

## 獲取SOAP服務(wù)
ornlMODIS = processWSDL("http://daac.ornl.gov/cgibin/MODIS/GLBVIZ_1_Glb_subset/MODIS_webservice.wsdl")

## 定義函數(shù)設(shè)置
ornlMODISFuncs = genSOAPClientInterface(operations=ornlMODIS@operations[[1]], def=ornlMODIS)

## 使用獲取裁切影像的函數(shù)設(shè)定
result = ornlMODISFuncs@functions$getsubset(40.115,-110.025,
"MOD11A2","LST_Day_1km","A2001001","A2001025",1,1)

##打印結(jié)果
print(result)

基礎(chǔ)設(shè)置R語言demo地址:

https://modis.ornl.gov/files/modiswebservice/R_getsubset.r

接下來用MODISTools包來做測(cè)試,GetProducts函數(shù)類似于Matlab的moidsClient():

GetProducts()

而對(duì)應(yīng)的查看數(shù)據(jù)集的函數(shù)并不是在GetProdcuts函數(shù)中填入?yún)?shù),而是使用GetBands函數(shù)。

GetBands("MOD15A2")

對(duì)應(yīng)查看數(shù)據(jù)時(shí)間范圍的函數(shù)為GetDates。

GetDates(36.833,116.567,"MOD15A2")

而類似于Matlab客戶端下載數(shù)據(jù)的函數(shù)則為GetSubset和MODISSubsets。

YC_LAI2009<-GetSubset(36.833,116.567,"MOD15A2","Lai_1km","A2009001","A2009081",KmAboveBelow = 0,KmLeftRight = 0)

GetSubset函數(shù)較為簡單。但筆者測(cè)試時(shí),發(fā)現(xiàn)終止時(shí)間僅能到達(dá)第81天(LAI數(shù)據(jù)為8天合成產(chǎn)品)。目前尚不清楚具體原因,故最后使用MODISSubsets獲取對(duì)應(yīng)的數(shù)據(jù)。MODISSubsets必須先建立一個(gè)數(shù)據(jù)框作為經(jīng)緯度(lat,long為字段名),時(shí)間限制范圍(start.date,end.date為字段名)的數(shù)據(jù)。而函數(shù)中比較重要的參數(shù)還包括了Size和TimeSeriesLength,Size可以用默認(rèn)值(經(jīng)緯度位置所處瓦片數(shù)量,c(0,0)表示像元中心值),TimeSeriesLength表示時(shí)間序列長度,等于1代表從一年的開頭到結(jié)尾。運(yùn)行程序,會(huì)發(fā)現(xiàn)在工作目錄下生成了一個(gè).asc文件(即對(duì)應(yīng)MODIS下載下來的數(shù)據(jù))。

yclai2009<-data.frame(lat=36.833,long=116.567,start.date=2009,end.date=2009)
MODISSubsets(LoadDat = yclai2009,Products = "MOD15A2",Bands = "Lai_1km",Size = c(0,0),StartDate = T,TimeSeriesLength = 1)

最后對(duì)獲取的LAI數(shù)據(jù)進(jìn)行繪圖可視化。

#Matlab中
Puredata=[YC_LAI2009.data(:,:)]
plot([0:(length(Puredata)-1)]*8+1,Puredata*YC_LAI2009.scale,'b-')
ylabel=(YC_LAI2009.units)
xlabel=('day of year')
title=('禹城站2009年LAI')

#R中
a<-read.table("Lat36.83300Lon116.56700Start2009-01-01End2009-12-31___MOD15A2.asc",sep = ",")
lai<-data.frame(day=seq(1,365,8),lai=a$V11*0.1)
plot(lai,type="l",pch=16,col="blue",xlab="day of year",ylab="LAI",main="禹城站2009年LAI")

Matlab繪圖結(jié)果


R繪圖結(jié)果


總的來說,Matlab和R的客戶端下載各有優(yōu)缺點(diǎn),而基于MODIS Web Service的下載方式最大好處就是在于它的Subset功能,而不是需要先下載整景影像再處理。在做單點(diǎn)模型的時(shí)候是非??旖莸摹.?dāng)然客戶端的其它函數(shù)還有很多,包括像質(zhì)量控制。本文沒有對(duì)數(shù)據(jù)進(jìn)行質(zhì)量控制。實(shí)際研究中這個(gè)是必須進(jìn)行的步驟(也可以基于客戶端的函數(shù)來進(jìn)行,譬如R里面的QualityCheck函數(shù),Matlab的modisClientGetQC等)。
此外地理所也開發(fā)了在線平臺(tái),研究人員只需填寫所需參數(shù)即可下載。

http://159.226.110.142/carboncloud/datetool/toolmethod?url=onlinedo&pId=3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容