UnitsMapping#

class astropy.modeling.mappings.UnitsMapping(mapping, input_units_equivalencies=None, input_units_allow_dimensionless=False, name=None, meta=None)[源代码]#

基类:Model

对输入的单位进行操作的映射器,首先转换为规范单位,然后在不进行进一步转换的情况下分配新单位。使用人模型单位在其他无单位模型(如多项式1d)上支持单位。

参数:
mapping : tuplePython :元组

一种(输入单位,输出单位)对的元组,每个输入一个,按位置与输入相匹配。每对的第一个元素是模型将接受的单元(指定 dimensionless_unscaled 接受无量纲输入)。第二个元素是模型将返回的单元。指定 dimensionless_unscaled 返回无量纲数量,以及 None 返回没有数量的原始值。

input_units_equivalencies : dict ,可选Python:Dict,可选

应用于输入值的默认等效值。如果设置,这应该是一个字典,其中每个键都是一个字符串,对应于一个模型输入。

input_units_allow_dimensionless : dictbool ,可选Python:dict或bool,可选

允许无量纲输入。如果为真,则要计算的输入值将获得input_units中指定的单位。如果这是一个字典,那么它应该将输入名称映射到bool,以允许该输入使用无量纲数字。

name : str ,可选Python:字符串,可选

与此模型实例关联的人类友好名称(特别适用于标识复合模型的各个组件)。

metadict-like,可选

与此模型关联的自由格式元数据。

实例

包装无单位模型以要求和转换单位:

>>> from astropy.modeling.models import Polynomial1D, UnitsMapping
>>> from astropy import units as u
>>> poly = Polynomial1D(1, c0=1, c1=2)
>>> model = UnitsMapping(((u.m, None),)) | poly
>>> model = model | UnitsMapping(((None, u.s),))
>>> model(u.Quantity(10, u.m))
<Quantity 21. s>
>>> model(u.Quantity(1000, u.cm))
<Quantity 21. s>
>>> model(u.Quantity(10, u.cm))
<Quantity 1.2 s>

包装无单位模型但仍允许无单位输入:

>>> from astropy.modeling.models import Polynomial1D, UnitsMapping
>>> from astropy import units as u
>>> poly = Polynomial1D(1, c0=1, c1=2)
>>> model = UnitsMapping(((u.m, None),), input_units_allow_dimensionless=True) | poly
>>> model = model | UnitsMapping(((None, u.s),))
>>> model(u.Quantity(10, u.m))
<Quantity 21. s>
>>> model(10)
<Quantity 21. s>

属性摘要

input_units 

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

inputs 

mapping 

n_inputs 

输入的数目。

n_outputs 

输出的数目。

outputs 

方法总结

evaluate(*args)

在一些输入变量上评估模型。

属性文档

input_units#
inputs#
mapping#
n_inputs#
n_outputs#
outputs#

方法文件

evaluate(*args)[源代码]#

在一些输入变量上评估模型。