zoukankan      html  css  js  c++  java
  • 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

    效果图:

  • 相关阅读:
    徒手用Java来写个Web服务器和框架吧<第二章:Request和Response>
    徒手用Java来写个Web服务器和框架吧<第一章:NIO篇>
    Linux使用小笔记<进程操作篇>
    shell条件判断
    rz和sz上传下载文件
    vim 快捷键
    while read读取文本内容
    云主机启动提示Booting from Hard Disk GRUB
    centos7进入单用户模式
    账号被锁无法ssh登陆
  • 原文地址:https://www.cnblogs.com/ahnucao/p/4938752.html
Copyright © 2011-2022 走看看