⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 planck.pro

📁 basic median filter simulation
💻 PRO
字号:
function planck,wave,temp;+; NAME:;       PLANCK()   ; PURPOSE: ;       To calculate the Planck function in units of ergs/cm2/s/A  ;; CALLING SEQUENCE: ;       bbflux = PLANCK( wave, temp) ;; INPUT PARAMETERS: ;       WAVE   Scalar or vector giving the wavelength(s) in **Angstroms**;               at which the Planck function is to be evaluated.;       TEMP   Scalar giving the temperature of the planck function in degree K;; OUTPUT PARAMETERS:;       BBFLUX - Scalar or vector giving the blackbody flux (i.e. !pi*Intensity);               in erg/cm^2/s/A in at the specified wavelength points.;; EXAMPLES:;       To calculate the blackbody flux at 30,000 K every 100 Angstroms between;       2000A and 2900 A;   ;       IDL> wave = 2000 + findgen(10)*100;       IDL> bbflux = planck(wave,30000);;       If a star with a blackbody spectrum has a radius R, and distance,d, then;       the flux at Earth in erg/cm^2/s/A will be bbflux*R^2/d^2; PROCEDURE:;       The wavelength data are converted to cm, and the Planck function;       is calculated for each wavelength point. See Allen (1973), Astrophysical;       Quantities, section 44 for more information.;; NOTES:;       See the procedure planck_radiance.pro in ;       ftp://origin.ssec.wisc.edu/pub/paulv/idl/Radiance/planck_radiance.pro;       for computation of Planck radiance given wavenumber in cm-1 or  ;       wavelength in microns ; MODIFICATION HISTORY:;       Adapted from the IUE RDAF               August, 1989;       Converted to IDL V5.0   W. Landsman   September 1997;       Improve precision of constants    W. Landsman  January 2002;- On_error,2 if ( N_elements(wave) LT 1 ) then begin     print,'Syntax - bbflux = planck( wave, temp)'     return,0  endif      if ( N_elements( temp ) NE 1 ) then $      read,'Enter a blackbody temperature', temp  bbflux = wave*0.; Gives the blackbody flux (i.e. PI*Intensity) ergs/cm2/s/a  w = wave / 1.E8                              ; Angstroms to cm    ;constants appropriate to cgs units.  c1 =  3.7417749d-5                ; =2*!DPI*h*c*c         C2 =  1.4387687d                  ; =h*c/k  val =  c2/w/temp    mstr = machar(double = (size(val,/type) EQ 5) )  ;Get machine precision        good = where( val LT alog(mstr.xmax), Ngood )    ;Avoid floating underflow  if ( Ngood GT 0 ) then  $      bbflux[ good ] =  C1 / ( w[good]^5 * ( exp( val[good])-1. ) )  return, bbflux*1.E-8              ; Convert to ergs/cm2/s/A  end 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -