BlackBody

class astropy.modeling.physical_models.BlackBody(temperature=<Quantity 5000. K>, scale=1.0, **kwargs)[源代码]

基类:astropy.modeling.core.Fittable1DModel

使用普朗克函数的黑体模型。

参数
temperature数量 [“温度”]

黑体温度。

scale浮动或

比例因子

笔记

模型公式:

\[B{\nu}(T)=A\frac{2h\nu^{3}/c^{2}}{exp(h\nu/kt)-1}\]

实例

>>> from astropy.modeling import models
>>> from astropy import units as u
>>> bb = models.BlackBody(temperature=5000*u.K)
>>> bb(6000 * u.AA)  
<Quantity 1.53254685e-05 erg / (cm2 Hz s sr)>
import numpy as np
import matplotlib.pyplot as plt

from astropy.modeling.models import BlackBody
from astropy import units as u
from astropy.visualization import quantity_support

bb = BlackBody(temperature=5778*u.K)
wav = np.arange(1000, 110000) * u.AA
flux = bb(wav)

with quantity_support():
    plt.figure()
    plt.semilogx(wav, flux)
    plt.axvline(bb.nu_max.to(u.AA, equivalencies=u.spectral()).value, ls='--')
    plt.show()

(png _, svgpdf

../_images/astropy-modeling-physical_models-BlackBody-1.png

属性摘要

bolometric_flux 

热通量。

input_units 

此属性用于指示evaluate方法所需的单元或单元集,并返回将输入映射到单元(或 None 如果接受任何单位)。

input_units_equivalencies 

lambda_max 

当曲线用功率密度表示时的峰值波长。

nu_max 

当功率曲线为峰值时。

param_names 

描述此类型模型的参数的名称。

scale 

temperature 

方法总结

evaluate \(x,温度,刻度)

评估模型。

属性文档

bolometric_flux

热通量。

input_units
input_units_equivalencies = {'x': [(Unit("m"), Unit("Hz"), <function spectral.<locals>.<lambda>>), (Unit("m"), Unit("J"), <function spectral.<locals>.<lambda>>), (Unit("Hz"), Unit("J"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("m"), Unit("1 / m"), <function spectral.<locals>.<lambda>>), (Unit("Hz"), Unit("1 / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("J"), Unit("1 / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("1 / m"), Unit("rad / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("m"), Unit("rad / m"), <function spectral.<locals>.<lambda>>), (Unit("Hz"), Unit("rad / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("J"), Unit("rad / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>)]}
lambda_max

当曲线用功率密度表示时的峰值波长。

nu_max

当功率曲线为峰值时。

param_names = ('temperature', 'scale')

描述此类型模型的参数的名称。

此元组中的参数与初始化特定类型的模型时应传入的顺序相同。某些类型的模型,如多项式模型,根据模型的某些其他属性(如阶数)有不同数量的参数。

定义自定义模型类时,此属性的值由 Parameter 在类中定义的body属性。

scale = Parameter('scale', value=1.0, bounds=(0, None))
temperature = Parameter('temperature', value=5000.0, unit=K, bounds=(0, None))

方法文件

evaluate(x, temperature, scale)[源代码]

评估模型。

参数
x飘浮,

计算黑体的频率。如果没有给定单位,则默认为赫兹。

温度 :浮动, ndarrayQuantity飘浮,

黑体的温度。如果没有给定单位,则默认为开尔文。

scale飘浮,

黑体的期望比例。

返回
y号码或号码

黑体光谱。单位由 scale .

注解

使用 numpy.errstate 如果需要,可以取消Numpy警告。

警告

输出值可能包含 naninf .

加薪
ValueError

无效温度。

ZeroDivisionError

波长为零(转换为频率时)。