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 header_cards_for_spec(self): """ Define the header cards to be written to spec1d (and maybe spec2d) files. These refer to the keys in the fitstbl Returns: list: Keys for header cards of spec1d """ core_meta = PypeItMetaData.define_core_meta() header_cards = list(core_meta.keys()) # Add a few more header_cards += ['filename'] # For fluxing return header_cards
def pypeit_file_keys(self): """ Define the list of keys to be output into a standard PypeIt file Returns: pypeit_keys: list """ pypeit_keys = ['filename', 'frametype'] # Core core_meta = PypeItMetaData.define_core_meta() pypeit_keys += list(core_meta.keys()) # Might wish to order these # Add in config_keys (if new) for key in self.configuration_keys(): if key not in pypeit_keys: pypeit_keys.append(key) # Finish return pypeit_keys