UnitsMapping#
- class astropy.modeling.mappings.UnitsMapping(mapping, input_units_equivalencies=None, input_units_allow_dimensionless=False, name=None, meta=None)[源代码]#
基类:
Model
对输入的单位进行操作的映射器,首先转换为规范单位,然后在不进行进一步转换的情况下分配新单位。使用人模型单位在其他无单位模型(如多项式1d)上支持单位。
- 参数:
- mapping :
tuple
Python :元组 一种(输入单位,输出单位)对的元组,每个输入一个,按位置与输入相匹配。每对的第一个元素是模型将接受的单元(指定
dimensionless_unscaled
接受无量纲输入)。第二个元素是模型将返回的单元。指定dimensionless_unscaled
返回无量纲数量,以及None
返回没有数量的原始值。- input_units_equivalencies :
dict
,可选Python:Dict,可选 应用于输入值的默认等效值。如果设置,这应该是一个字典,其中每个键都是一个字符串,对应于一个模型输入。
- input_units_allow_dimensionless :
dict
或 bool ,可选Python:dict或bool,可选 允许无量纲输入。如果为真,则要计算的输入值将获得input_units中指定的单位。如果这是一个字典,那么它应该将输入名称映射到bool,以允许该输入使用无量纲数字。
- name :
str
,可选Python:字符串,可选 与此模型实例关联的人类友好名称(特别适用于标识复合模型的各个组件)。
- metadict-like,可选
与此模型关联的自由格式元数据。
- mapping :
实例
包装无单位模型以要求和转换单位:
>>> 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>
属性摘要
此属性用于指示evaluate方法所需的单元或单元集,并返回将输入映射到单元(或
None
如果接受任何单位)。输入的数目。
输出的数目。
方法总结
evaluate
(*args)在一些输入变量上评估模型。
属性文档
- input_units#
- inputs#
- mapping#
- n_inputs#
- n_outputs#
- outputs#
方法文件