Source code for pypeit.spectrographs
from pypeit.utils import all_subclasses
from pypeit.spectrographs import spectrograph
# The import of all the spectrograph modules here is what enables the dynamic
# compiling of all the available spectrographs below
from pypeit.spectrographs import gtc_osiris
from pypeit.spectrographs import bok_bc
from pypeit.spectrographs import gemini_flamingos
from pypeit.spectrographs import gemini_gmos
from pypeit.spectrographs import gemini_gnirs
from pypeit.spectrographs import keck_esi
from pypeit.spectrographs import keck_deimos
from pypeit.spectrographs import keck_hires
from pypeit.spectrographs import keck_kcwi
from pypeit.spectrographs import keck_lris
from pypeit.spectrographs import keck_mosfire
from pypeit.spectrographs import keck_nires
from pypeit.spectrographs import keck_nirspec
from pypeit.spectrographs import lbt_luci
from pypeit.spectrographs import lbt_mods
from pypeit.spectrographs import ldt_deveny
from pypeit.spectrographs import magellan_fire
from pypeit.spectrographs import magellan_mage
from pypeit.spectrographs import mdm_modspec
from pypeit.spectrographs import mdm_osmos
from pypeit.spectrographs import mmt_binospec
from pypeit.spectrographs import mmt_bluechannel
from pypeit.spectrographs import mmt_mmirs
from pypeit.spectrographs import not_alfosc
from pypeit.spectrographs import p200_dbsp
from pypeit.spectrographs import p200_tspec
from pypeit.spectrographs import shane_kast
from pypeit.spectrographs import soar_goodman
from pypeit.spectrographs import tng_dolores
from pypeit.spectrographs import vlt_fors
from pypeit.spectrographs import vlt_xshooter
from pypeit.spectrographs import vlt_sinfoni
from pypeit.spectrographs import wht_isis
from pypeit.spectrographs import ntt_efosc2
from pypeit.spectrographs import jwst_nirspec
from pypeit.spectrographs import jwst_nircam
# Build the list of names for the available spectrographs
[docs]
def spectrograph_classes():
import numpy as np
# Recursively collect all subclasses
spec_c = np.array(list(all_subclasses(spectrograph.Spectrograph)))
# Select spectrograph classes with a defined name; spectrographs without a
# name are either undefined or a base class.
spec_c = spec_c[[c.name is not None for c in spec_c]]
# Construct a dictionary with the spectrograph name and class
srt = np.argsort(np.array([c.name for c in spec_c]))
return dict([ (c.name,c) for c in spec_c[srt]])
available_spectrographs = list(spectrograph_classes().keys())