IDL绘制黑体辐射曲线

  普朗克定律是热红外遥感中常常使用的三大定律之一,描述了黑体辐射能量的情况。绝对黑体的辐射光谱对于研究一切物体的辐射规律具有根本的意义。1900年普朗克引进量子概念,将辐射当做不连续的量子发射,成功地从理论上得出了与实验精确符合的绝对黑体辐射出射度随波长的分布函数。试着用IDL绘出了黑体辐射曲线,利于以后计算黑体辐射出射度,以备不时之需!

普朗克公式:
 
代码:
  ;+
  ; :Author: caozhigang
  ; :Copyright:UCAS
  ; :blog:blog.sina.com.cn/ahnucao
  ;-
 
PRO PLANK_SPECTRUMCURVES
  ;生成普朗克光谱曲线
  colors=['r','g','b','c','m','y','k']
  wavelengths=FINDGEN(1000,start = 1,increment = 0.1);1_100 um
  radiance = CALC_OMMITRADIANCE(wavelengths,250)
  plots = PLOT(wavelengths,radiance,Name = STRING(250)+'K',colors[0],$
    AXIS_STYLE = 1,xtitle ='wavelength(um)',ytitle = '辐射出射度/(m^2*um)')
  PLOTS.TITLE = '黑体辐射曲线'
  lege = legend(target = plots,$
    /DATA, /AUTO_TEXT_COLOR)
  c_index = 1
  FOR T= 270,340,20 DO BEGIN
    ;计算黑体辐射出射度
    radiance = CALC_OMMITRADIANCE(wavelengths,T)
    ;  ;随机产生一个颜色
    ;  colorNames = TAG_NAMES(!color)
    ;  index = ROUND(RANDOMU(seed,1)*N_ELEMENTS(colorNames)+0)
    ;  color = colorNames[index]
    plots = PLOT(wavelengths,radiance,Name = STRING(T)+'K',colors[c_index],$
      AXIS_STYLE = 1,xtitle ='wavelength(um)',ytitle = '辐射出射度/(m^2*um)',/OVERPLOT)
    lege.ADD,plots
    c_index = c_index+1
  ENDFOR
END
 
FUNCTION CALC_OMMITRADIANCE,wavelengths,T
  ;
  ;wavelengths=FINDGEN(1000,start = 1,increment = 0.1);1_100 um
  spectrum= FINDGEN(1000);保存强度
  colors = !color
  c = 3*10.0^14; m/s
  h = 6.6256*10.0^(-34);Plank statics num
  k = 1.38*10.0^(-23);S_P statics num
  FOR i = 0,N_ELEMENTS(wavelengths)-1 DO BEGIN
    ;
    first_factor = 2*!pi*c*c*h/(wavelengths[i]^5.0)
    sencond_factor = 1.0/(EXP(c*h/(k*wavelengths[i]*T))-1)
    spectrum[i] = first_factor * sencond_factor*10^12.0;这里乘上10^12次方,是为了将um2转换为转化为m2的单位
  ENDFOR
  RETURN,spectrum
END

效果图:

posted on 2015-11-05 10:55  未济的Lakers  阅读(2120)  评论(1编辑  收藏  举报

导航