BlackBody#

class astropy.modeling.physical_models.BlackBody(*args, **kwargs)[源代码]#

基类:Fittable1DModel

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

参数:
temperature : Quantity [:ref: 'temperature' ]数量 [:ref: 'temperature']

黑体温度。

scalePython:浮点或数量 [:ref: 'dimensionless']

比例因子。如果无量纲,则假设输入单位为赫兹,输出单位为(erg/(cm ** 2 * s * Hz * sr). If not dimensionless, must be equivalent to either (erg / (cm ** 2 * s * 赫兹 * sr) or erg / (cm * * 2 * %s * AA * Sr),在这种情况下,结果将以请求的单位返回,比例将被剥离单位(应用浮点值)。

笔记

模型公式:

\[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 / (Hz s sr cm2)>
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, svg, pdf)

../_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, temperature, scale)

评估模型。

属性文档

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)[源代码]#

评估模型。

参数:
xPython:浮点型、ndarray或Quantity [:ref: 'frequency']

计算黑体的频率。如果未指定单位,则默认为赫兹(如果是AA,则为AA scale 用等于erg/(Cm)的单位进行了初始化 ** 2 * %s * AA * Sr))。

temperature : floatndarray ,或 QuantityPython:浮点型、ndarray或Quantity

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

scalePython:浮点型、ndarray或Quantity [:ref: 'dimensionless']

黑体的期望比例。

返回:
y : numberndarray号码或号码

黑体光谱。单位由 scale .

备注

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

警告

输出值可能包含 naninf .

加薪:
ValueError

无效温度。

ZeroDivisionError

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