本文介紹在GEE中基於Landsat遙感影像實現地表溫度(LST)單窗演算法反演的程式碼。
1 背景知識
基於遙感資料的地表溫度(LST)反演目前得到了廣泛的應用,尤其是面向大尺度、長時間範圍的溫度資料需求,遙感方法更是可以凸顯其優勢。目前,基於各類遙感資料來源的地表溫度反演方法不斷得以改進,精度亦不斷提升。而利用遙感影像處理軟體,對地表溫度加以反演,其操作整體較為繁瑣,尤其是需要處理大量遙感資料時,其資料下載、操作步驟與結果儲存等,都是很大的問題。因此,本文介紹一種基於谷歌地球引擎(Google Earth Engine,GEE)的地表溫度反演演算法及其程式碼。
該方法基於Landsat 4/5/7/8衛星反演地表溫度。基於該演算法,我們可以直接在GEE中獲取遙感影像、計算LST,並選擇下載結果檔案,非常方便快捷。
本文所依據的文獻為:Google Earth Engine Open-Source Code for Land Surface Temperature Estimation from the Landsat Series,發表於Remote Sensing。
2 演算法介紹
該論文基於Statistical Mono-Window(SMW)演算法,對地表溫度加以求解。其中,簡單地說,SMW演算法即是透過簡單的線性關係,對由單熱紅外波段所得的大氣表觀亮溫與地表溫度之間的經驗關係加以表示,從而計算得到LST。
3 程式碼
程式碼在這裡。
點選連結,瀏覽器將自動進入你的GEE帳號;而程式碼則將會自動出現在左側Script的Reader中:
其中,modules
為計算LST的綜合程式碼庫,我們僅僅需要修改、執行其下方example_1.js
或example_2.js
的內容即可;其中,依據作者的註釋我們可以知道,example_1.js
用以計算單時相LST,而example_2.js
則為多時相LST。
我們就以example_1.js
為例。其中,在程式碼的這一部分:
// select region of interest, date range, and landsat satellite
var geometry = ee . Geometry . Rectangle([-8.91, 40.0, -8.3, 40.4]);
var satellite = 'L8' ;
var date_ start = '2018-05-15' ;
var date_ end =' 2018-05-31' ;
var use_ ndvi= true;
由上到下分別是修改ROI區域(即需要計算LST的區域)、基於的衛星(即Landsat 4/5/7/8)、所依據遙感影像開始和結束的時間,以及是否引入NDVI計算。大家在實際操作時,依據自己的需要自行修改這部分內容即可。
4 效果
在這裡,我們將作者原定的位於美國的ROI修改為武漢市區域性地區,以此為例執行程式碼,效果如下:
其中,黑色區域是我的ROI,底圖便是已經計算出的溫度資料圖層了(由此可知,程式碼預設計算整個可見範圍的LST,這裡的ROI僅僅是方便我們檢視、對比感興趣區域內是否各柵格點均有LST資料)。整個程式碼執行的過程僅僅需要幾秒鐘,和用遙感影像處理軟體操作比起來真的快了很多。
隨後,依據需要自行選擇下載結果資料的範圍、儲存方法等即可。是不是非常方便~
最後,大家在使用上述程式碼時,也要記得按照論文作者的相關要求來,需要規範引用的場合要引用清楚,尊重大家的勞動成果。