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

效果图:

转载于:https://www.cnblogs.com/ahnucao/p/4938752.html

根据提供的引用[1],IDL是一种交互式数据分析和可视化环境,可以用于绘制各种类型的图形,包括时序图。下面是绘制IDL时序图的步骤: 1.首先,需要定义x轴和y轴的数据。假设我们有两个数组,分别为kp和dst,表示某个系统的关键性能指标和目标性能指标。 2.然后,使用IDL中的plot函数绘制时序图。plot函数的基本语法如下: ```idl plot, x, y, /xstyle, /ystyle, title='title', xtitle='xtitle', ytitle='ytitle' ``` 其中,x和y分别是x轴和y轴的数据,/xstyle和/ystyle表示是否使用默认的坐标轴样式,title、xtitle和ytitle分别是图形的标题、x轴标题和y轴标题。 3.接下来,可以使用IDL中的axis函数设置坐标轴的范围、刻度和标签。axis函数的基本语法如下: ```idl axis, /xstyle, /ystyle, xtickformat=format, ytickformat=format, xtickv=xtickv, ytickv=ytickv, xtitle='xtitle', ytitle='ytitle', xrange=[xmin, xmax], yrange=[ymin, ymax] ``` 其中,/xstyle和/ystyle表示是否使用默认的坐标轴样式,xtickformat和ytickformat分别是x轴和y轴刻度的格式,xtickv和ytickv分别是x轴和y轴刻度的值,xtitle和ytitle分别是x轴和y轴的标题,xrange和yrange分别是x轴和y轴的范围。 下面是一个绘制kp和dst时序图的IDL代码示例: ```idl ; 定义x轴和y轴的数据 kp = [1, 2, 3, 4, 5] dst = [0.8, 0.9, 0.95, 0.98, 1] ; 绘制时序图 plot, kp, dst, /xstyle, /ystyle, title='Performance', xtitle='Time', ytitle='Value' ; 设置坐标轴范围和刻度 axis, /xstyle, /ystyle, xtickv=[1, 2, 3, 4, 5], ytickv=[0.8, 0.9, 0.95, 0.98, 1], xtitle='Time', ytitle='Value', xrange=[1, 5], yrange=[0.8, 1] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值