司國新,周堯治
(1.西藏農牧學院高原生態(tài)研究所,西藏 林芝 860000 ;2.西藏高原森林生態(tài)教育部重點實驗室,西藏 林芝 860000;3.西藏林芝高山森林生態(tài)系統(tǒng)國家野外科學觀測研究站,西藏 林芝 860000;4.西藏自治區(qū)生態(tài)安全聯(lián)合實驗室,西藏 林芝 860000)
植被物候是與大氣界面能量交換、全球物質循環(huán)、植被生產力等密切相關的關鍵參數[1,2]。植被物候的影響因子研究更是物候研究中的一個熱點。已有研究表明,月平均溫度、年均溫、生物溫度、溫暖指數、寒冷指數和大陸度指數等是植被物候的重要影響因子[3~5]。
由于獲取這些指標的數據源體量龐大,依靠人工運算較為繁瑣,并不適用于大范圍的物候研究。因此需要更為準確和高效的運算方法。IDL平臺大數據的處理能力強,有良好的可視化界面,是非常方便的程序設計平臺[6]。
為了簡化植被物候影響因子運算處理過程,計劃基于1951~2018年的氣象數據和IDL平臺編寫批量處理植被物候影響因子的代碼。
本文使用的氣象數據均來自于中國氣象數據網(http://data.cma.cn/)的V3數據集。所有數據均以txt格式按年份存儲。
研究的大多數植被物候影響因子均與各月的平均溫度相關。所以,算法的第一步應當是計算各站點每個月的平均溫度。然后加入溫度閾值以計算生物溫度、溫暖指數和寒冷指數,加入經緯度信息以計算大陸度指數。整個代碼應當采用環(huán)境設置、文件輸入、文件循環(huán)、指標計算、數據輸出等幾個模塊的架構。
由于代碼中需要大量調用ENVI的數學函數,所以應當在代碼首段加入“compile_optidl2”語句,以確保穩(wěn)定調用。使用read_ascii函數從txt文件讀入數據源,并以結構體的形式存儲在mete_para變量中。由于氣象數據是按照年份的順序存儲的,必須要設置一個循環(huán)才能從大量文件中提出植被物候影響因子。事先設置了用于存放最終結果的outsum變量。對于每一個指標,都需要借助where函數從mete_para變量中篩選符合條件的原始數據,然后計算并傳給outsum變量。最后調用WRITE_CSV函數以csv文件的形式輸出計算結果。由于篇幅原因,下面只給出計算各個指標的核心代碼:
fori=0,sizestation[1]-1dobegin
outsum[0,hang+i]=kustationall[0,i]
outsum[1,hang+i]=data[4,0]
forj=1,12dobegin
outsum[j+1,hang+i]=mean(mete[where((mete.stationeqkustationall[0,i])and(mete.temlt30000)and(mete.montheqj))].tem)
endfor
;計算每個月的平均溫度
outsum[17,hang+i]=mean(mete[where((mete.stationeqkustationall[0,i])and(mete.temlt30000))].tem)
;年均溫
fork=2,13dobegin
if(outsum[k,hang+i]gt0)and(outsum[k,hang+i]le300)thenbegin
outsum[18,hang+i]=outsum[18,hang+i]+outsum[k,hang+i]
endifelseif(outsum[k,hang+i]gt300)thenbegin
outsum[18,hang+i]=outsum[18,hang+i]
endifelsebegin
outsum[18,hang+i]=outsum[18,hang+i]
endelse
endfor
outsum[18,hang+i]=outsum[18,hang+i]/12
;生物溫度
fork=2,13dobegin
if(outsum[k,hang+i]GE50)thenbegin
outsum[19,hang+i]=outsum[19,hang+i]+outsum[k,hang+i]-50
endifelseif(outsum[k,hang+i]lt50)thenbegin
outsum[20,hang+i]=outsum[20,hang+i]+50-outsum[k,hang+i]
endif
endfor
;溫暖指數和寒冷指數
form=2,21dobegin
outsum[m,hang+i]=outsum[m,hang+i]/10
endfor
;轉化為正常單位
outsum[21,hang+i]=1.7×outsum[16,hang+i]/sin(kustationall[1,i]×PI/180)-20.4
;計算大陸度指數
Endfor
為了驗證代碼的有效性,挑取青海省班瑪氣象站的原始氣象數據,手動計算了其5條植被物候影響因子。又用代碼計算了這幾個指標,對比如表1。結果顯示,代碼計算準確。
表1 班瑪氣象站2018年植被物候影響因子
植被物候研究需要使用大量氣象因子指標,這些指標大多不易計算。所以基于IDL平臺設計了物候影響因子的驅動程序。結果顯示:代碼運算準確高效。