Source code for lezargus.simulation.spectre
"""Simulation code for simulating SPECTRE observations."""
from lezargus import library
from lezargus.library import hint
from lezargus.library import logging
[docs]
class SimulatorSpectre():
"""Simulate a SPECTRE observation.
We group all of the functions needed to simulate a SPECTRE observation
into this class. It it easier to group all of data and needed functions
this way.
Attributes
----------
astrophysical_object_spectra : LezargusSpectra
The "perfect" spectra of the astrophysical object who's observation is
being modeled.
"""
[docs]
def __init__(self:"SimulatorSpectre") -> None:
"""Instantiate the SPECTRE simulation class.
Parameters
----------
None
Returns
-------
None
"""
[docs]
def create_astrophysical_object_spectra(self:"SimulatorSpectre", temperature:float, magnitude:float, filter_profile:hint.LezargusSpectra, filter_zero_point:float) -> None:
"""Create the astrophysical object from first principles.
This function creates and stores the astrophysical object spectra
modeled as a blackbody of a specific temperature. If a custom spectra
is to be provided, please see
:py:meth:`custom_astrophysical_object_spectra`.
The data is stored in this class internally as
:py:attr:`astrophysical_object_spectra`.
Parameters
----------
temperature : float
The temperature of the black body spectra.
magnitude : float
The magnitude of the object in the photometric filter system
provided.
filter_profile : LezargusSpectra
The filter transmission profile, packaged as a LezargusSpectra. It
does not need to have any header data. We assume a Vega-based
photometric system.
filter_zero_point : float
The zero point value of the filter.
Returns
-------
None
"""
[docs]
def custom_astrophysical_object_spectra(self:"SimulatorSpectre", custom_spectra:hint.LezargusSpectra) -> None:
"""blaw"""