CompoundModel#
- class astropy.modeling.CompoundModel(op, left, right, name=None)[源代码]#
基类:
Model
复合模型的基类。
虽然它可以直接使用,但建议通过模型运算符组合模型。
属性摘要
参数相等约束列表。
在复合模型上设置“适配”属性。
一个标志,指示用户是否已通过赋值给此模型指定自定义边界框
model.bounding_box
.参数不等式约束列表。
此属性用于指示evaluate方法所需的单元或单元集,并返回将输入映射到单元(或
None
如果接受任何单位)。允许无量纲输入(和相应的输出)。
对要评估的输入执行严格的单位。
模型输入的数量。
模型的输出数量。
返回单个模型中组件的数量,显然是1。
参数名的有序列表。
此属性用于指示evaluate的输出应包含哪些单元或单元集,并返回将输出映射到单元(或)的字典
None
如果接受任何单位)。返回子模型的名称
CompoundModel
.方法总结
evaluate
(*args, **kw)在一些输入变量上评估模型。
inputs_map
\()将此表达式树的输入名称映射到叶模型的输入。
outputs_map
\()将此表达式树的输出名称映射到叶模型的输出。
rename
\(名称)使用新名称、输入或输出创建此模型类的副本。
render
([out, coords])在固定位置评估模型,考虑
bounding_box
.replace_submodel
(name, model)构建新的
CompoundModel
实例,将命名子模型替换为新模型。traverse_postorder
([include_operator])CompoundModel树的后序遍历。
with_units_from_data
(**kwargs)看见
with_units_from_data
有关此方法的概述,请参阅。without_units_for_data
(**kwargs)看见
without_units_for_data
有关此方法的概述,请参阅。属性文档
- eqcons#
- fittable#
在复合模型上设置“适配”属性。
- has_user_bounding_box#
一个标志,指示用户是否已通过赋值给此模型指定自定义边界框
model.bounding_box
.
- ineqcons#
- input_units#
- input_units_allow_dimensionless#
- input_units_equivalencies#
- input_units_strict#
- isleaf#
- n_inputs#
输入的数目。
- n_outputs#
输出的数目。
- n_submodels#
- param_names#
描述此类型模型的参数的名称。
此元组中的参数与初始化特定类型的模型时应传入的顺序相同。某些类型的模型,如多项式模型,根据模型的某些其他属性(如阶数)有不同数量的参数。
定义自定义模型类时,此属性的值由
Parameter
在类中定义的body属性。
- return_units#
- submodel_names#
返回子模型的名称
CompoundModel
.
方法文件
- rename(name)[源代码]#
使用新名称、输入或输出创建此模型类的副本。
新类在技术上是原始类的子类,因此实例和类型检查仍然有效。例如::
>>> from astropy.modeling.models import Rotation2D >>> SkyRotation = Rotation2D.rename('SkyRotation') >>> SkyRotation <class 'astropy.modeling.core.SkyRotation'> Name: SkyRotation (Rotation2D) N_inputs: 2 N_outputs: 2 Fittable parameters: ('angle',) >>> issubclass(SkyRotation, Rotation2D) True >>> r = SkyRotation(90) >>> isinstance(r, Rotation2D) True
- render(out=None, coords=None)[源代码]#
在固定位置评估模型,考虑
bounding_box
.与直接评估模型相关的关键区别在于,如果
Model.bounding_box
属性已设置。- 参数:
- out :
numpy.ndarray
可选努比·恩达雷,可选 将向其添加计算模型的数组。如果这不是
None
),将创建一个新数组。- coords : array_like ,可选NumPy:ARRAY_LIKE,可选
用于将模型的输入坐标转换为
out
数组。它应该具有self(coords)
产生的形状与out
. 如果out
未指定,coords
将用于确定返回数组的形状。如果没有提供(或没有),则将在由Model.bounding_box
.
- out :
- 返回:
- out :
numpy.ndarray
numpy.ndarray
模型添加到
out
如果out
不是None
,或者从评估模型中得到一个新数组coords
.如果out
和coords
都是None
,返回的数组仅限于Model.bounding_box
限制。如果Model.bounding_box
是None
,arr
或coords
必须通过。
- out :
- 加薪:
ValueError
如果
coords
不是给定的,并且Model.bounding_box
未设置此型号的。
实例
- replace_submodel(name, model)[源代码]#
构建新的
CompoundModel
实例,将命名子模型替换为新模型。为了确保保留/重建反转和名称,有必要从被替换的节点一直重新构建CompoundModel。原始的CompoundModel保持不变。
- with_units_from_data(**kwargs)[源代码]#
看见
with_units_from_data
有关此方法的概述,请参阅。笔记
这会修改基本方法的行为,以解决复合模型的子模型具有不同输出单位的情况。这只对复合*和/复合模型有效,因为在这种情况下,混合输出单元是合理的。为了做到这一点,它需要输出一些额外的信息
without_units_for_data
passed as keyword arguments under the keywords_ Left_kwargs``和 ``_right_kwargs
。在混合输出单位之外,此方法与基本方法相同。
- without_units_for_data(**kwargs)[源代码]#
看见
without_units_for_data
有关此方法的概述,请参阅。笔记
这会修改基本方法的行为,以解决复合模型的子模型具有不同输出单位的情况。这只对复合*和/复合模型有效,因为在这种情况下,混合输出单元是合理的。它通过使用另一个子模型的输出单位修改每个子模型的输出单位来实现这一点,以便我们可以应用原始函数并获得所需的结果。
必须在混合输出单元的情况下输出附加数据,以便通过以下方式正确地重建单元
with_units_from_data
。在混合输出单位之外,此方法与基本方法相同。