普朗克定律是热红外遥感中常常使用的三大定律之一,描述了黑体辐射能量的情况。绝对黑体的辐射光谱对于研究一切物体的辐射规律具有根本的意义。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

效果图:

IDL绘制黑体辐射曲线的更多相关文章

  1. 用html5的canvas画布绘制贝塞尔曲线

    查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

  2. Matlab 如何绘制复杂曲线的包络线

    Matlab 如何绘制复杂曲线的包络线 http://jingyan.baidu.com/article/aa6a2c14d36c710d4c19c4a8.html 如果一条曲线(比如声音波形)波动很 ...

  3. 4. 绘制光谱曲线QGraphicsView类

    一.前言 Qt的QGraphicsView类具有强大的视图功能,与其一起使用的还有QGraphicsScene类和QGraphicsItem类.大体思路就是通过构建场景类,然后向场景对象中增加各种图元 ...

  4. canvas绘制贝塞尔曲线

    原文:canvas绘制贝塞尔曲线 1.绘制二次方贝塞尔曲线 quadraticCurveTo(cp1x,cp1y,x,y); 其中参数cp1x和cp1y是控制点的坐标,x和y是终点坐标 数学公式表示如 ...

  5. 使用python和pygame绘制繁花曲线

    前段时间看了一期<最强大脑>,里面展示了各种繁花曲线组合成的非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合. 真实的繁花曲线使用一种称为繁花曲线规的小玩意 ...

  6. Matlab绘图基础——绘制三维曲线

    %% 绘制三维曲线 %plot3函数,其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同. %1.当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线. x0 = 0 ...

  7. 绘制ROC曲线

    什么是ROC曲线 ROC曲线是什么意思,书面表述为: "ROC 曲线(接收者操作特征曲线)是一种显示分类模型在所有分类阈值下的效果的图表." 好吧,这很不直观.其实就是一个二维曲线 ...

  8. C# 曲线控件 曲线绘制 实时曲线 多曲线控件 开发

    Prepare 本文将使用一个NuGet公开的组件来实现曲线的显示,包含了多种显示的模式和配置来满足各种不同的应用场景,方便大家进行快速的开发系统. 在Visual Studio 中的NuGet管理器 ...

  9. [转载] MFC绘制动态曲线,用双缓冲绘图技术防闪烁

    转载的原文地址 先上效果图 随着时间的推移,曲线向右平移,同时X轴的时间坐标跟着更新. 一.如何绘制动态曲线 所谓动画,都是一帧一帧的图像连续呈现在用户面前形成的.所以如果你掌握了如何绘制静态曲线,那 ...

随机推荐

  1. nginx——location 优先级

    一. location 的匹配符1.等于匹配符:=等于匹配符就是等号,特点可以概括为两点:精确匹配不支持正则表达式2.空匹配符空匹配符的特点是:匹配以指定模式开始的 URI不支持正则表达式3.正则匹配 ...

  2. Linux学习2

    第三讲Linux常用命令04 压缩:gzip: 1.只能压缩文件,不能压缩目录 2.不保留源文件 解压缩:gunzip   gzip -d ------------------------------ ...

  3. string.Format 日期格式化

    String.Format日期的格式化例子: DateTime dt = DateTime.Now;//2010年10月4日 17点05分 string str = ""; //s ...

  4. Recovery和Charger模式下屏幕旋转180度[转]

    如何让Recovery (系统固件升级),charger(关机充电动画)时屏幕旋转180度 解决方法: 1.在bootable\recovery\minui\Graphics.c 文件找到gr_fli ...

  5. 转载:.NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  6. java 反射 动态代理

    在上一篇文章中介绍Java注解的时候,多次提到了Java的反射API.与javax.lang.model不同的是,通过反射API可以获取程序在运行时刻的内部结构.反射API中提供的动态代理也是非常强大 ...

  7. codeforces C. Xor-tree

    http://codeforces.com/problemset/problem/430/C 题意:在一棵上有n个节点,有n-1条边,在每一个节点上有一个值0或1,然后给你一个目标树,让你选择节点,然 ...

  8. GPIO软件模拟I2C

    /***************************************************************************** * * Filename: * ----- ...

  9. Context Switch Definition

    A context switch (also sometimes referred to as a process switch or a task switch) is the switching ...

  10. 从ulimit命令看socket的限制

      从ulimit命令看socket的限制 在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,比如还有Squid做代理,当文 ...