Source code for gemini_instruments.texes.adclass

from __future__ import print_function

#
#                                                             Gemini Observatory
#
#                                                                        Dragons
#                                                             gemini_instruments
#                                                               texes.adclass.py
# ------------------------------------------------------------------------------
from astrodata import astro_data_tag
from astrodata import astro_data_descriptor
from astrodata import returns_list
from astrodata import TagSet

from astrodata.fits import FitsLoader
from astrodata.fits import FitsProvider

from ..gemini import AstroDataGemini

# ------------------------------------------------------------------------------
[docs]class AstroDataTexes(AstroDataGemini): __keyword_dict = dict( ra = 'RA', dec = 'DEC', target_ra = 'TARGRA', target_dec = 'TARGDEC', exposure_time = 'OBSTIME', observation_type = 'OBSTYPE', )
[docs] @classmethod def load(cls, source): def texes_parser(hdu): xnam, xver = hdu.header.get('EXTNAME'), hdu.header.get('EXTVER') if 'RAWFRAME' in [xnam] and xver: hdu.header.set('EXTNAME0', xnam, 'EXTNAME Orig (AstroData)',before='EXTNAME') hdu.header.set('EXTNAME', 'SCI', 'Renamed by AstroData') elif 'SCAN-FRAME' in [xnam] and xver: hdu.header.set('EXTNAME0', xnam, 'EXTNAME Orig (AstroData)',before='EXTNAME') hdu.header.set('EXTNAME', 'SCI', 'Renamed by AstroData') elif xnam and not xver: hdu.header.set('EXTVER', 1, 'Versioned by AstroData', after='EXTNAME') return cls(FitsLoader(FitsProvider).load(source, extname_parser=texes_parser))
@staticmethod def _matches_data(source): return source[0].header.get('INSTRUME', '') == 'TEXES' @astro_data_tag def _tag_instrument(self): return TagSet(['TEXES']) @astro_data_tag def _tag_image(self): return TagSet(['SPECT']) @astro_data_tag def _tag_dark(self): if 'dark' in self.phu.get('OBSTYPE').lower(): return TagSet(['DARK', 'CAL'], blocks=['SPECT']) @astro_data_tag def _tag_flat(self): if 'flat' in self.phu.get('OBSTYPE').lower(): return TagSet(['FLAT', 'CAL']) @astro_data_tag def _tag_bias(self): if 'bias' in self.phu.get('OBSTYPE').lower(): return TagSet(['BIAS', 'CAL'], blocks=['SPECT'])
[docs] @astro_data_descriptor def exposure_time(self): """ Returns ------- exposure_time: <float> Exposure time. """ return self.phu.get(self._keyword_for('exposure_time'))
[docs] @astro_data_descriptor def observation_type(self): return self.phu.get('OBSTYPE').upper()
[docs] @astro_data_descriptor def ra(self): return self.phu.get(self._keyword_for('ra'))
[docs] @astro_data_descriptor def dec(self): return self.phu.get(self._keyword_for('dec'))