Configuration

Top-level configuration container for unite models.

Configuration bundles a LineConfiguration, an optional ContinuumConfiguration, and an optional InstrumentConfig into a single serializable object.

All sub-configs can still be serialized individually via their own to_dict / from_dict methods. Configuration adds convenience for round-tripping the combined object to YAML.

Examples

Build and save:

>>> from unite.line import LineConfiguration, Redshift, FWHM
>>> from unite.continuum import ContinuumConfiguration
>>> from unite.instrument import InstrumentConfig, RScale
>>> from unite.instrument.nirspec import G235H, G395H
>>> from unite.prior import TruncatedNormal
>>> import astropy.units as u
>>> z, w = Redshift('nlr'), FWHM('nlr')
>>> lines = LineConfiguration()
>>> lines.add_line('Ha', 6564.61 * u.AA, redshift=z, fwhm=w)
>>> cont = ContinuumConfiguration.from_lines(lines.wavelengths)
>>> r = RScale(prior=TruncatedNormal(1.0, 0.05, 0.8, 1.2))
>>> dispersers = InstrumentConfig([G235H(r_scale=r), G395H(r_scale=r)])
>>> cfg = Configuration(lines, cont, dispersers=dispersers)
>>> cfg.save('config.yaml')

Load and inspect:

>>> cfg2 = Configuration.load('config.yaml')
>>> cfg2.lines
LineConfiguration: ...
>>> cfg2.dispersers
InstrumentConfig: 2 disperser(s) ...
class unite.config.Configuration(lines, continuum=None, dispersers=None)[source]

Bases: object

Container for a complete unite model configuration.

Parameters:
linesLineConfiguration

Emission line configuration.

continuumContinuumConfiguration, optional

Continuum configuration. None if not used.

dispersersInstrumentConfig, optional

Instrument configuration describing disperser models and calibration tokens. When provided, validate() is called immediately and UserWarning is issued if any calibration axis lacks a fixed anchor.

Attributes:
linesLineConfiguration
continuumContinuumConfiguration or None
dispersersInstrumentConfig or None
Parameters:
to_dict()[source]

Serialize to a YAML-safe dictionary.

Return type:

dict

Returns:
dict

Contains 'lines' and, if present, 'continuum' and 'dispersers' keys.

classmethod from_dict(d)[source]

Deserialize from a dictionary.

Return type:

Configuration

Parameters:
ddict

As produced by to_dict().

Returns:
Configuration
Parameters:

d (dict)

to_yaml()[source]

Serialize to a YAML string.

Return type:

str

Returns:
str
classmethod from_yaml(text)[source]

Deserialize from a YAML string.

Return type:

Configuration

Parameters:
textstr

YAML string as produced by to_yaml().

Returns:
Configuration
Parameters:

text (str)

save(path)[source]

Save to a YAML file.

Return type:

None

Parameters:
pathstr or Path

Output file path.

Parameters:

path (str | Path)

classmethod load(path)[source]

Load from a YAML file.

Return type:

Configuration

Parameters:
pathstr or Path

Path to a YAML file written by save().

Returns:
Configuration
Parameters:

path (str | Path)