资源描述:
《地表温度反演IDL程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PROLST ;从文件夹中读取输入数据的文件名,数据顺序为2、4、6..... imagenames=findfile('E:rsld2热岛*',count=count) outpath='E:rsld2200802sz_lst'fork=3,count-1,2dobegin print,imagenames[k];得到图像的行列数目及投影信息 envi_open_file,imagenames[k],R_FID=image_fid,/no_realize if(image_fideq-1)t
2、henreturn envi_file_query,image_fid,ns=ns,nl=nl map_info=envi_get_map_info(fid=image_fid) dims=[-1,0,ns-1,0,nl-1];1,2,19波段的反射率 data_1=envi_get_data(fid=image_fid,dims=dims,pos=0) data_2=envi_get_data(fid=image_fid,dims=dims,pos=1) data_19=envi_get_data(fid=i
3、mage_fid,dims=dims,pos=20);31,32波段的亮温 data_31=envi_get_data(fid=image_fid,dims=dims,pos=32) data_32=envi_get_data(fid=image_fid,dims=dims,pos=33)index_bad1=where((data_1eq65534)or(data_2eq65534)or(data_19eq65534)or$ (data_31eq65534)or(data_3
4、2eq65534))envi_file_mng,id=image_fid,/remove;计算大气水含量 ;w=((alfa-ln(ref19/ref2))/beta)22次幂 ;alfa=0.02beta=0.651 a=data_19*1.0/data_2 b=ALOG(a) w=((0.02-b)/0.651)^2;计算大气透过率;传感器视角为10度的星下大气透过率,在水汽含量为0.4-2.0,2.0-4.0,4.0-6.0的计算方程 index_w1=where((wge0.4)and(wlt2.0))
5、 index_w2=where((wge2.0)and(wlt4.0)) index_w3=where((wge4.0)and(wle6.0)) index_bad2=where((wlt0.4)or(wgt6.0))t10_31=fltarr(ns,nl) t10_32=fltarr(ns,nl)ifindex_w1[0]ne-1thenbegin t10_31[index_w1]=0.99513-0.08082*w[index_w1] t10_32[index_w1]=0.99376-0.11369
6、*w[index_w1] endififindex_w2[0]ne-1thenbegin t10_31[index_w2]=1.08692-0.12759*w[index_w2] t10_32[index_w2]=1.07900-0.15925*w[index_w2] endififindex_w3[0]ne-1thenbegin t10_31[index_w3]=1.07268-0.12571*w[index_w3] t10_32[index_w3]=0.93821-0.12613*w[index_w
7、3] endif;大气透过率温度校正函数 ;因数据中亮温为实际亮温的10倍,阈值都乘以10倍,如318k在计算中用3180 index_31_t1=where(data_31gt3180) index_31_t2=where((data_31le3180)and(data_31ge2780)) index_31_t3=where(data_31lt2780)dt_31=fltarr(ns,nl)ifindex_31_t1[0]ne-1thenbegin dt_31[index_31_t1]=0.08 endif
8、ifindex_31_t2[0]ne-1thenbegin ;下面的公式中的0.000325原公式中为0.00325,因本计算数据中亮温为实际值的10倍,所以多乘一个0.1 dt_31[index_31_t2]=-0.05+0.000325*(data_31[index_31_t2]-2780) endififindex_31_t3[0]ne-1thenbegin dt_31[inde