def validate_metadata(self): """ Validates the meta definitions of the Spectrograph by making a series of comparisons to the meta data model definied in metadata.py Returns: """ # Load up core_meta = PypeItMetaData.define_core_meta() meta_data_model = PypeItMetaData.get_meta_data_model() # Check core for key in core_meta: assert key in self.meta.keys(), \ 'key {:s} not defined in spectrograph meta!'.format(key) # Check for rtol for config keys that are type float for key in self.configuration_keys(): if meta_data_model[key]['dtype'] in [float]: assert 'rtol' in self.meta[key].keys(), \ 'rtol not set for key {:s} not defined in spectrograph meta!'.format(key) # Now confirm all meta are in the data model for key in self.meta.keys(): if key not in self.meta_data_model.keys(): msgs.error("Meta data {:s} not in meta_data_model".format(key))
def __init__(self): self.spectrograph = 'base' self.telescope = None self.detector = None self.naxis = None # self.raw_naxis = None self.rawdatasec_img = None self.oscansec_img = None self.slitmask = None # Default time unit self.timeunit = 'mjd' # Default extension with the primary header data # used by arsave.save_2d_images self.primary_hdrext = 0 self.numhead = 0 self.minexp = 0 # NEED TO TIE TO INSTRUMENT PAR INSTEAD # Init Calibrations Par # self._set_calib_par() # Init meta self.meta_data_model = PypeItMetaData.get_meta_data_model() self.init_meta() self.validate_metadata()