Source code for specdash.models.enum_models

from .base_model import Base
from specdash import catalog_names
from astropy import units as u

[docs]def get_member_list(_class): methods = {func for func in dir(_class) if callable(getattr(_class, func))} return [v for k, v in _class.__dict__.items() if k not in methods and not k.startswith('__')]
[docs]class ObjectType(Base): GALAXY = 'GALAXY' STAR = 'STAR' QSO = 'QSO' DEFAULT = "DEFAULT" UNKNOWN = "UNKNOWN" def __init__(self): super().__init__()
[docs] @staticmethod def get_list(): return get_member_list(ObjectType)
[docs]class SpectralLineType(Base): INSTRINSIC = "INTRINSIC" SKY = "SKY" def __init__(self): super().__init__()
[docs] @staticmethod def get_list(): return get_member_list(SpectralLineType)
[docs]class SpectrumType(Base): OBJECT = "OBJECT" #OBJECT_PRECURSOR = "OBJECT_PRECURSOR" SKY = "SKY" MODEL = "MODEL" ERROR = "ERROR" FIT = "FIT" DEFAULT = "DEFAULT" SMOOTHED = "SMOOTHED" VISIT = "VISIT" REGION = "REGION" LINE = "LINE" def __init__(self): super().__init__()
[docs] @staticmethod def get_list(): return get_member_list(SpectrumType)
[docs]class WavelengthUnit(Base): ANGSTROM = "angstrom" NANOMETER = "nanometer" def __init__(self): super().__init__()
[docs] @staticmethod def get_list(): return get_member_list(WavelengthUnit)
[docs] @staticmethod def get_astropy_unit(wavelength_unit): unit = None if wavelength_unit == WavelengthUnit.ANGSTROM: unit = u.Unit("AA") elif wavelength_unit == WavelengthUnit.NANOMETER: unit = u.nm else: raise Exception("Unit "+ str(wavelength_unit) + " not supported") return unit
[docs] @staticmethod def from_astropy_unit(wavelength_unit): unit = None if wavelength_unit == u.Unit("AA"): unit = WavelengthUnit.ANGSTROM elif wavelength_unit == u.nm: unit = WavelengthUnit.NANOMETER else: raise Exception("Unit "+ str(wavelength_unit) + " not supported") return unit
wavelength_units_list = WavelengthUnit.get_list()
[docs]class FluxUnit(Base): F_nu = "F_nu" F_lambda = "F_lambda" AB_magnitude = "AB_magnitude" Jansky = "Jansky" def __init__(self): super().__init__()
[docs] @staticmethod def get_list(): return get_member_list(FluxUnit)
[docs] @staticmethod def get_astropy_unit(flux_unit): unit = None if flux_unit == FluxUnit.F_lambda: unit = u.Unit("erg cm-2 s-1 AA-1") elif flux_unit == FluxUnit.F_nu: unit = u.Unit("erg cm-2 s-1 Hz-1") elif flux_unit == FluxUnit.AB_magnitude: unit = u.ABmag elif flux_unit == FluxUnit.Jansky: unit = u.astrophys.Jy else: raise Exception("Unit "+ str(flux_unit) + " not supported") return unit
[docs] @staticmethod def from_astropy_unit(flux_unit): unit = None if flux_unit == u.Unit("erg cm-2 s-1 AA-1"): unit = FluxUnit.F_lambda elif flux_unit == u.Unit("erg cm-2 s-1 Hz-1"): unit = FluxUnit.F_nu elif flux_unit == u.ABmag: unit = FluxUnit.AB_magnitude elif flux_unit == u.astrophys.Jy: unit = FluxUnit.Jansky else: raise Exception("Unit "+ str(flux_unit) + " not supported") return unit
flux_units_list = FluxUnit.get_list()