基于MODIS數(shù)據(jù)的NDVI與LST相關(guān)性分析(IDL代碼實現(xiàn))


1 數(shù)據(jù)預(yù)處理


(1)數(shù)據(jù)提取
我們可以選取2018年5月初華東地區(qū)MODIS中的MOD11A2和MOD13A2的16天合成LST和NDVI產(chǎn)品數(shù)據(jù),下載地址:MODIS數(shù)據(jù)下載
網(wǎng)站下載數(shù)據(jù)需要注冊趁舀,在此聲明忍燥,下載數(shù)據(jù)不需要“科學(xué)上網(wǎng)”巷疼,但注冊需要谷歌Gmail郵箱奶浦,注冊Gmail郵箱需要“科學(xué)上網(wǎng)”蜜暑。以下是我們下載數(shù)據(jù)晨川,數(shù)據(jù)下載中可以通過Python腳本的方法對數(shù)據(jù)進(jìn)行批量下載画恰,由于我們只需要少量數(shù)據(jù)彭谁,不必批量下載,所以在此不加贅述允扇。以下是我們的原始數(shù)據(jù)在ENVI中的顯示:

圖1 原始數(shù)據(jù) Modis的NDVI產(chǎn)品數(shù)據(jù)

圖2 原始數(shù)據(jù) Modis的LST產(chǎn)品數(shù)據(jù)

由于MODIS產(chǎn)品數(shù)據(jù)下載之后不能直接使用缠局,因此需要對數(shù)據(jù)進(jìn)行預(yù)處理。

首先EarthData網(wǎng)站上獲取的數(shù)據(jù)為*.hdf格式考润,此時不能直接有ENVI軟件直接處理狭园,需要批量提取,這時就要用到NASA提供的MODIS Reprojection Tool糊治,此工具雖不能實現(xiàn)全自動的批量提取唱矛,但是可以實現(xiàn)按月進(jìn)行數(shù)據(jù)的提取及拼接,以下是利用MRT軟件提取數(shù)據(jù)參數(shù)設(shè)置:


圖3 MRT軟件提取MODIS產(chǎn)品參數(shù)設(shè)置

NDVI產(chǎn)品數(shù)據(jù)也用以上同樣的方法輸入MOD11A2數(shù)據(jù)提取井辜,輸出LST和NDVI數(shù)據(jù)绎谦。

(2)數(shù)據(jù)復(fù)原
此時數(shù)據(jù)依然不能直接使用,由于LST數(shù)據(jù)是16bit的粥脚,其顯示范圍是0-65535窃肠,有效范圍則是7500-65535,需要乘以0.02才能得到開爾文溫度刷允。而NDVI數(shù)據(jù)為了減少儲存空間冤留,也是正常值的10000倍,所以應(yīng)該給其乘以0.0001得到正常值树灶,以上都是利用EMVI的Bandmath工具進(jìn)行纤怒,在此不加贅述。

圖4 數(shù)據(jù)復(fù)原統(tǒng)計NDVI

l圖5 數(shù)據(jù)復(fù)原統(tǒng)計LST

(3)數(shù)據(jù)裁剪
由于涉及范圍比較廣天通,所以我們對數(shù)據(jù)進(jìn)行裁剪處理泊窘,裁取山東地區(qū)的一小部分作為分析樣本進(jìn)行數(shù)據(jù)回歸分析與相關(guān)性分析,具體范圍如下專題圖:

圖6 裁剪后的NDVI產(chǎn)品彩色分級顯示

圖7 裁剪后的LST產(chǎn)品彩色分級顯示


2 代碼與步驟


Pro Regress_ndvi_lst

;input the image

fn_ndvi=**dialog_pickfile**(title='Please Input the NDVI Image:')

fn_lst=**dialog_pickfile**(title='Please Input the LST Image:')

;read the image

ndvi_img=**read_image**(fn_ndvi)

lst_img=**read_image**(fn_lst)

;get the size of image

sz_ndvi=**size**(ndvi_img)

;get the image's numbers of columns and rows

ndvi_columns=sz_ndvi[**1**] & ndvi_rows=sz_ndvi[**2**]

;get the size of image

sz_lst=**size**(lst_img)

;get the image's numbers of columns and rows

lst_columns=sz_lst[**1**] & lst_rows=sz_lst[**2**]

;samples

random_c=**randomu**(seed,ndvi_columns)

random_r=**randomu**(seed,ndvi_rows)

sort_c=**sort**(random_c)

sort_r=**sort**(random_r)

ndvi_samples=ndvi_img[sort_c[**0**:**10**],*]

lst_samples=lst_img[sort_c[**0**:**10**],*]

ndvi_get=**reform**(ndvi_samples,**11***ndvi_rows, **1**)

lst_get=**reform**(lst_samples,**11***ndvi_rows, **1**)

ref_ndvi=**reform**(ndvi_get)

ref_lst=**reform**(lst_get)

;ref_ndvi1=reform(ndvi_img,ndvi_columns*ndvi_rows,1)

;ref_lst1=reform(lst_img,lst_columns*lst_rows,1)

;ref_ndvi=ref_ndvi1[0:100]

;ref_lst=ref_lst1[0:100]

;regress analysis

fit_ndvi_lst=**regress**(ref_ndvi,ref_lst,const=b,correlation=r,yfit=lst_estimated)

;plot points picture

p1=**plot**(ref_ndvi,ref_lst,xtitle='NDVI',ytitle='LST(K)',dimensions=[**600**,**400**], symbol=**1**,color='red',sym_size=**1.0**,linestyle=**6**,$

   title='The Regress of NDVI & LST',window_title='NDVI & LST',$

    xrange=[**0**,**1**],yrange=[**290**,**310**])

;set the range of x and y axis

x=ref_ndvi

y=fit_ndvi_lst[**0**]*x+b

fit=**plot**(x,y,linestyle=**1**,color='blue',thick=**2**,/current,/overplot)

p2=**plot**([**0**,**1**],[**290**,**310**],linestyle=**6**,/current,/overplot)

str_equation='Y='+**string**(fit_ndvi_lst[**0**],format='(f6.2)')+'*X+'+**string**(b,format='(f6.2)')

str_correlation='R='+**string**(r,format='(f5.2)')

t1=**text**(**0.20**,**0.80**,str_equation,font_size=**12**,target=p1)

t2=**text**(**0.20**,**0.75**,str_correlation,font_size=**12**,target=p1)

;o_fn='Scatter_ndvi_lst.emf'

;p1.save,o_fn,border=40

;p2.save,o_fn,border=40

;**********

;plot points picture

p3=**plot**(ref_lst,lst_estimated,xtitle='LST(K)',ytitle='LST-Estimated(K)',dimensions=[**600**,**400**],$

    symbol=**24**,color='red',sym_size=**1.0**,title='LST & LST-Estimated',$

    window_title='Cal_LST_Linear',linestyle=**6**,xrange=[**290**,**310**],yrange=[**290**,**310**])

;set the range of x and y axis

p4=**plot**([**290**,**310**],[**290**,**310**],thick=**2**,color='blue',/current,/overplot)

MAE=**mean**(**abs**(ref_lst-lst_estimated))

RMSE=**sqrt**(**mean**((ref_lst-lst_estimated)^**2**))

str_MAE='MAE='+**string**(MAE,format='(f5.2)')

str_RMSE='RMSE='+**string**(RMSE,format='(f5.2)')

t3=**text**(**0.20**,**0.80**,str_MAE,font_size=**12**,target=p3)

t4=**text**(**0.20**,**0.75**,str_RMSE,font_size=**12**,target=p3)

;o_fn='Scatter_lst_lst_estimated.emf'

;p3.save,o_fn,border=40

;p4.save,o_fn,border=40

**End**

3 結(jié)果與分析:


由于代碼中是隨機(jī)數(shù)采樣,每次采樣訓(xùn)練樣本數(shù)據(jù)不同州既,所以每次運(yùn)行代碼可以得到不同的模型谜洽。以下是模型顯示:
模型1:

圖8 模型1線性回歸

圖9 模型1精確度與誤差分析

模型2:

圖10 模型2線性回歸
圖11 模型2精確度與誤差分析

模型3:

圖12 模型3線性回歸
圖13 模型3精確度與誤差分析

也可以修改代碼中的采樣數(shù)目萝映,來改變訓(xùn)練樣本數(shù)目吴叶,模型也會發(fā)生變化。如將其中的[0:10]改為[0:20],對應(yīng)的11修改為21就可增加訓(xùn)練樣本數(shù)目:

代碼:

ndvi_samples=ndvi_img[sort_c[**0**:**20**],*]

lst_samples=lst_img[sort_c[**0**:**20**],*]

ndvi_get=**reform**(ndvi_samples,**21***ndvi_rows, **1**)

lst_get=**reform**(lst_samples,**21***ndvi_rows, **1**)

模型4:

圖14 模型4線性回歸
圖15 模型3精確度與誤差分析

結(jié)論分析:

相關(guān)系數(shù)(R)序臂,是衡量兩個變量之間相關(guān)程度的系數(shù)蚌卤,是判定變量之間線性相關(guān)性的一個相對指標(biāo)。相關(guān)系數(shù)用字母R表示奥秆,相關(guān)系數(shù)R取值在±1之間逊彭,當(dāng)R為0時,表示兩個變量絕對不相關(guān)构订;當(dāng)R大于0時侮叮,兩個變量正相關(guān),即你增加我也增加悼瘾,你減少我也減少囊榜;當(dāng)R小于0時,兩個變量負(fù)相關(guān)亥宿,即你增加我減少卸勺,你減少我增加;當(dāng)R等于1或-1時烫扼,表示兩個變量絕對相關(guān)曙求。

相關(guān)系數(shù)R越接近于±1,兩個變量之間相關(guān)性越強(qiáng)映企。一般認(rèn)為:當(dāng)R的絕對值為0.7或更大時悟狱,兩個變量高度相關(guān),即強(qiáng)相關(guān)堰氓;當(dāng)R的絕對值在0.5-0.7之間時芽淡,兩個變量中度相關(guān);當(dāng)R絕對值在0.3-0.5之間時豆赏,兩個變量弱相關(guān)挣菲;當(dāng)R絕對值低于0.3時,說明兩個變量之間幾乎不存在相關(guān)關(guān)系掷邦。

平均絕對誤差(MAE)白胀,MAE 的值越小,說明預(yù)測模型擁有更好的精確度抚岗。范圍[0,+∞)或杠,當(dāng)預(yù)測值與真實值完全吻合時等于0,即完美模型宣蔚;誤差越大向抢,該值越大认境。

均方根誤差(RMSE),它表示誤差的平方的期望值挟鸠,范圍[0,+∞)叉信,當(dāng)預(yù)測值與真實值完全吻合時等于0,即完美模型艘希;誤差越大硼身,該值越大。

綜上覆享,以上四種模型的相關(guān)系數(shù)R的絕對值值均在0.5-0.7之間佳遂,說同一時間NDVI值與LST中度相關(guān)。其中第四種模型R的絕對值最大撒顿,相關(guān)性更高丑罪,進(jìn)一步說明,采樣數(shù)據(jù)越多模型相關(guān)性越好凤壁;對比四種模型的平均絕對誤差(MAE)和均方根誤差(RMSE)吩屹,第四種模型這兩個量較前三種較小,說明其擁有更好的精確度客扎,且誤差較小祟峦,更進(jìn)一步說明,樣本數(shù)據(jù)越多徙鱼,其擬合度越好宅楞,模型越精確。

CSDN分享

簡單書寫袱吆,

希望你十分美好厌衙!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绞绒,隨后出現(xiàn)的幾起案子婶希,更是在濱河造成了極大的恐慌,老刑警劉巖蓬衡,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喻杈,死亡現(xiàn)場離奇詭異,居然都是意外死亡狰晚,警方通過查閱死者的電腦和手機(jī)筒饰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壁晒,“玉大人瓷们,你說我怎么就攤上這事。” “怎么了谬晕?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵碘裕,是天一觀的道長。 經(jīng)常有香客問我攒钳,道長帮孔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任夕玩,我火速辦了婚禮你弦,結(jié)果婚禮上惊豺,老公的妹妹穿的比我還像新娘燎孟。我一直安慰自己,他們只是感情好尸昧,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布揩页。 她就那樣靜靜地躺著,像睡著了一般烹俗。 火紅的嫁衣襯著肌膚如雪爆侣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天幢妄,我揣著相機(jī)與錄音兔仰,去河邊找鬼。 笑死蕉鸳,一個胖子當(dāng)著我的面吹牛乎赴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播潮尝,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼榕吼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了勉失?” 一聲冷哼從身側(cè)響起羹蚣,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乱凿,沒想到半個月后顽素,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡徒蟆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年胁出,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片后专。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡划鸽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情裸诽,我是刑警寧澤嫂用,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站丈冬,受9級特大地震影響嘱函,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜埂蕊,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一往弓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸港谊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔑担,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工咽白, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留啤握,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓晶框,卻偏偏與公主長得像排抬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子三妈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350