加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

IDL地表温度遥感反演

(2019-03-21 09:10:59)
标签:

envi

idl

 

地表温度遥感反演

基于TM数据运用单窗算法和单通道算法反演地表温度

pro LST

 

  打开TM数据文件并设置相关大气参数

  fn=dialog_pickfile(title='选择TM数据',get_path=work_dir)

  cd,work_dir

  envi_open_file,fn,r_fid=fid

  envi_file_query,fid,ns=ns,nl=nl,nb=nb,dims=dims,$

    data_type=data_type,interleave=interleave,offset=offset

  map_info=envi_get_map_info(fid=fid)

 

  设定大气水汽含量和近地表气温

  w=2.49

  T0=21 273.15

 

  辐射定标与亮温计算

  b6=envi_get_data(fid=fid,dims=dims,pos=5)

  L=0.055158*b6 1.2378

  TB=1260.56/alog(1 607.76/L)

 

  计算NDVI

  b3=envi_get_data(fid=fid,dims=dims,pos=2)

  b4=envi_get_data(fid=fid,dims=dims,pos=3)

  NDVI=(float(b4)-b3)/(float(b4) b3)

  计算MNDVI

  b2=envi_get_data(fid=fid,dims=dims,pos=1)

  b5=envi_get_data(fid=fid,dims=dims,pos=4)

  MNDWI=(float(b2)-b5)/(float(b2) b5)

  计算比辐射率

  Emiss=Cal_emiss(NDVI,MNDWI)

  删除中间变量

  b2=!null

  b3=!null

  b4=!null

  b5=!null

  NDVI=!null

  MNDWI=!null

 

 调用cal_LST_sc单通道算法计算地表温度

  LST_result=cal_LST_sc(Tb,L,w,Emiss)

 

  o_fn=dialog_pickfile(title='单通道算法的计算结果保存为')

  envi_write_envi_file,LST_result,out_name=o_fn,/no_copy,$

    ns=ns,nl=nl,nb=1,data_type=4,interleave=interleave,$

    offset=offset,map_info=map_info

 

调用cal_LST_sc 单窗算法计算地表温度

  LST_result=cal_LST_mw(Tb,T0,w,Emiss)

 

  o_fn=dialog_pickfile(title='单窗算法计算结果保存为')

  envi_write_envi_file,LST_result,out_name=o_fn,/no_copy,$

    ns=ns,nl=nl,nb=1,data_type=4,interleave=interleave,$

    offset=offset,map_info=map_info

    end

 

 

 

cal_Emiss,NDVI,MNDWI  计算比辐射率

 

result=1.0094 0.047*alog(NDVI)

 

w=where(NDVI lt 0.157,count)

if count gt 0 thenresult[w]=0.923

w=where(NDVI gt 0.727,count)

if count gt 0 thenresult[w]=0.994

w=where(MNDWI gt 0,count)

if count gt 0 thenresult[w]=0.995

return,result

end

 

 

 

function cal_LST_sc,Tb,L,w,Emiss

Tb,L,w,Emiss分别为亮温,辐亮度,水汽含量和地表比辐射率

  c1=1.19104E8

  c2=14387.7

  x1=0.14714D*w^2-0.15583*w 1.1234

  x2=-1.1836D*w^2-0.37607*w-0.52894

  x1=-0.04554D*w^2 1.8719*w-0.39071

 

  Y=(Tb^2)/(c2*L*(11.457^4*L/c1 1/11.457))

  Z=-Y*L Tb

  Result=Y*((x1*L x2)/(Emiss x3)) Z

  return,float(result)

end

 

 

 

 

 

function cal_LST_mw,Tb,T0,w,Emiss

Tb,T0,w,Emiss分别为亮温,近地表气温,水汽含量和地表比辐射率

 

  a=-67.35535

  b=0.458608

 

  Trans=1.031412-0.11536D*w

  Ta=16.011 0.91118*T0

 

  C=Trans*Emiss

  D=(1-Trans)*(1 Trans*(1-Emiss))

  result=(a*(1-C-D) (b*(1-C-D) C D)*Tb-D*Ta)/C

  return,float(result)

end

IDL地表温度遥感反演

IDL地表温度遥感反演


TM数据

链接:https://pan.baidu.com/s/1-fv9U4vLG6oYwdkA5zV8og 

提取码:41ey 


IDL代码

链接:https://pan.baidu.com/s/1HOSeg9L1EaDUhTZPBReukQ 

提取码:r5m9 


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有