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

    ./configure  '--prefix=/alidata/server/php' '--enable-opcache' '--with-config-file-path=/alidata/ser ...

  2. Tomcat虚拟主机配置

    3.1.配置虚拟主机 配置虚似主机就是配置一个网站. 在Tomcat服务器配置一个虚拟主机(网站),需要修改conf文件夹下的server.xml这个配置文件,使用Host元素进行配置,打开serve ...

  3. Linux on ASUS N550JK4700

    实际上,ASUS N550JK对Ubuntu 14.04的兼容性是相当好的,包括无线网卡.蓝牙.键盘背光的调节.触摸板的开关.音量的键盘调节都是安装后无需配置直接可以使用的,这是出乎意料的,因为这些功 ...

  4. PHP学习之中数组--创建数组【1】

    在PHP中数组的定义有三种写法,分别是: <?php //第一种方式是用关键字 array来创建的 $username = array("demo1","demo2 ...

  5. ASP.NET MVC轻教程 Step By Step 3 ——使用ViewBag

    在上一节我们创建了与Index动作方法对应的Index视图,那么Index动作方法该如何向Index视图传送数据呢?其中一个方法是使用ViewBag(视图包).让我们试试看. 在Index动作方法中添 ...

  6. bootstrap js插件

    导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaScri ...

  7. 代码之美——Doom3源代码赏析1

    http://www.csdn.net/article/2013-01-17/2813778-the-beauty-of-doom3-source-code/1 摘要:Dyad作者.资深C++工程师S ...

  8. ZABBIX安装官方指南

    慢慢,把这块业务要玩熟悉~~~~事前,事中,事后,它都能发挥自己的一些作用. From Zabbix official repository Zabbix SIA provides official ...

  9. 分页查询SQL

    SELECT * FROM ( SELECT   T.*,   ROWNUMBER() OVER() AS ROWNUM   FROM   ( SELECT     L4_GDS_GROUP_CD C ...

  10. 一句话改变TWinControl控件的left坐标的前世今生(入口函数是SetBounds,然后调用SetWindowPos起作用,并发消息更新Delphi的left属性值)

    Delphi的重要属性,主要是Enable,  Visible, Color, left等等.这里分析left,因为TWinControl里有些覆盖函数的原因,虽然起点都是TControl.SetLe ...