bayes_spec.models

Submodules

bayes_spec.models.gauss_model

gauss_model.py Defines GaussModel, a Gaussian line profile model.

Copyright(C) 2024 by Trey V. Wenger; tvwenger@gmail.com This code is licensed under MIT license (see LICENSE for details)

class bayes_spec.models.gauss_model.GaussModel(*args, **kwargs)

Bases: BaseModel

Definition of a Gaussian line profile model.

add_likelihood()

Add likelihood to the model. Data key must be “observation”.

add_priors(prior_line_area: float = 100.0, prior_fwhm: float = 25.0, prior_velocity: Iterable[float] = [0.0, 25.0], prior_baseline_coeffs: Iterable[float] | None = None, ordered: bool = False)

Add priors to the model.

Parameters:
  • prior_line_area (float, optional) – Prior distribution on line area (K km s-1), where line_area ~ Gamma(alpha=2.0, beta=1.0/prior_line_area) defaults to 100.0

  • prior_fwhm (float, optional) – Prior distribution on line FWHM (km s-1), where fwhm ~ Gamma(alpha=2.0, beta=1.0/prior_fwhm) defaults to 25.0

  • prior_velocity (Iterable[float], optional) – Prior distribution on line centroid velocity (km s-1), where velocity ~ Normal(mu=prior_velocity[0], sigma=prior_velocity[1]) if :param:ordered is False velocity(cloud=N) ~ prior_velocity[0] + sum(velocity(cloud<N)) + Gamma(alpha=2.0, beta=1.0/prior_velocity[1]) if :param:ordered is True defaults to [0.0, 25.0]

  • prior_baseline_coeffs – Width of normal prior distribution on the normalized baseline polynomial coefficients. If None, use [1.0]*(baseline_degree+1), defaults to None

  • ordered (bool) – If True, assume ordered velocities, defaults to False

predict() Iterable[float]

Predict observed spectrum from model parameters.

Returns:

Predicted spectrum

Return type:

Iterable[float]

bayes_spec.models.gauss_noise_model

gauss_noise_model.py Defines GaussNoiseModel, a Gaussian line profile model.

Copyright(C) 2024 by Trey V. Wenger; tvwenger@gmail.com This code is licensed under MIT license (see LICENSE for details)

class bayes_spec.models.gauss_noise_model.GaussNoiseModel(*args, **kwargs)

Bases: GaussModel

Definition of a Gaussian line profile model, with noise as an additional free parameter.

add_likelihood()

Add likelihood to the model. Data key must be “observation”.

add_priors(prior_rms: float = 1.0, **kwargs)

Add priors to the model.

Parameters:
  • prior_rms (float, optional) – Prior distribution on spectral rms (K), where rms ~ HalfNormal(sigma=prior_rms) defaults to 1.0

  • **kwargs – Additional keyword arguments passed to GaussModel.add_priors

Module contents

class bayes_spec.models.GaussModel(*args, **kwargs)

Bases: BaseModel

Definition of a Gaussian line profile model.

add_likelihood()

Add likelihood to the model. Data key must be “observation”.

add_priors(prior_line_area: float = 100.0, prior_fwhm: float = 25.0, prior_velocity: Iterable[float] = [0.0, 25.0], prior_baseline_coeffs: Iterable[float] | None = None, ordered: bool = False)

Add priors to the model.

Parameters:
  • prior_line_area (float, optional) – Prior distribution on line area (K km s-1), where line_area ~ Gamma(alpha=2.0, beta=1.0/prior_line_area) defaults to 100.0

  • prior_fwhm (float, optional) – Prior distribution on line FWHM (km s-1), where fwhm ~ Gamma(alpha=2.0, beta=1.0/prior_fwhm) defaults to 25.0

  • prior_velocity (Iterable[float], optional) – Prior distribution on line centroid velocity (km s-1), where velocity ~ Normal(mu=prior_velocity[0], sigma=prior_velocity[1]) if :param:ordered is False velocity(cloud=N) ~ prior_velocity[0] + sum(velocity(cloud<N)) + Gamma(alpha=2.0, beta=1.0/prior_velocity[1]) if :param:ordered is True defaults to [0.0, 25.0]

  • prior_baseline_coeffs – Width of normal prior distribution on the normalized baseline polynomial coefficients. If None, use [1.0]*(baseline_degree+1), defaults to None

  • ordered (bool) – If True, assume ordered velocities, defaults to False

predict() Iterable[float]

Predict observed spectrum from model parameters.

Returns:

Predicted spectrum

Return type:

Iterable[float]

class bayes_spec.models.GaussNoiseModel(*args, **kwargs)

Bases: GaussModel

Definition of a Gaussian line profile model, with noise as an additional free parameter.

add_likelihood()

Add likelihood to the model. Data key must be “observation”.

add_priors(prior_rms: float = 1.0, **kwargs)

Add priors to the model.

Parameters:
  • prior_rms (float, optional) – Prior distribution on spectral rms (K), where rms ~ HalfNormal(sigma=prior_rms) defaults to 1.0

  • **kwargs – Additional keyword arguments passed to GaussModel.add_priors