ENVI/IDL (5.3版本)一键化实现LST-NDVI的干湿边方程拟合,并得到TVDI计算结果图
0 原理介绍
利用IDL将NDVI异常值进行剔除,NDVI取值范围为0.2~1(植被覆盖区),对反演的地表温度Ts选择5%的置信区间,构建NDVI-Ts特征空间,进行两种反演方法(单通道算法、单窗算法)的干湿边方程的拟合。
其中干湿边方程拟合公式和TVDI计算公式如下:
其中:其中Tsmin是湿边方程,Tsmax是干边方程,TVDI的值域为[0,1]。TVDI越大,土壤湿度越低,TVDI越小,土壤湿度越高。
以NDVI为横坐标,LST为纵坐标,得到NDVI-LST的散点图。根据NDVI-LST的散点图,就能得到每个NDVI值对应的LST的最大最小值,即要求的干边和湿边,最后根据干边和湿边的散点图,就能拟合到干边方程和湿边方程。
1 打开影像所在文件夹
// 格式为dat
ENVI,/RESTORE_BASE_SAVE_FILES
;ENVI批处理模式/RESTORE_BASE_SAVE_FILES
ENVI_BATCH_INIT
file_path=dialog_pickfile( get_path = newPath,$
/DIRECTORY,$
title='SELECT A DIRECTORY CONTAINS DAT-FILE')
file_path_list=file_search(file_path,'*.dat')
file_name_list=file_basename(file_path_list)
; print,file_path_list
filecount=N_ELEMENTS(file_path_list)
2 数据读取
//************************************** 数据读取*******************************************
ENVI_OPEN_FILE, LSTname, r_fid =fid_LST
;print,LSTname
ENVI_FILE_QUERY, fid_LST, $
nb = nb, $ ;波段数
ns = ns, $ ;列数
nl = nl ,$;行数
dims=dims
map_info=envi_get_map_info(fid=fid_LST)
ENVI_OPEN_FILE, NDVIname, r_fid =fid_NDVI
LST=ENVI_GET_DATA(fid = fid_LST, dims = dims, pos = 0)+273.15 //℃+273.15---K
NDVI=ENVI_GET_DATA(fid = fid_NDVI, dims = dims, pos = 0)
3 直方图统计
hist=Histogram(LST,min=273.16,Binsize=0.1)
;统计直方图,获取累计像元个数
totalCounts = TOTAL(hist, /CUMULATIVE)
;获取累积百分比
totalPercents