def read_datamodel(self): h = RampModel(self.file) #remove any non-pipeline related keywords (e.g. CV3 temps/voltages) if 'extra_fits' in dir(h): h.__delattr__('extra_fits') self.data = h.data #Currently a bug in level1bmodel when zeroframe is #not present and a cube of zeros is returned #If the datamodel returns a default zeroframe of all #zeros, then set it to None here #self.zeroframe = h.zeroframe if np.all(h.zeroframe == 0): print("Zeroframe in {}".format(self.file)) print("All zeros. Returning None.") self.zeroframe = None else: self.zeroframe = h.zeroframe self.sbAndRefpix = None self.header = {} for key in self.translate: try: self.header[key] = h.meta[self.translate[key]] except: self.header[key] = None
def read_datamodel(self): logger = logging.getLogger('mirage.utils.read_fits.read_datamodel') h = RampModel(self.file) #remove any non-pipeline related keywords (e.g. CV3 temps/voltages) if 'extra_fits' in dir(h): h.__delattr__('extra_fits') self.data = h.data #Currently a bug in level1bmodel when zeroframe is #not present and a cube of zeros is returned #If the datamodel returns a default zeroframe of all #zeros, then set it to None here #self.zeroframe = h.zeroframe if np.all(h.zeroframe == 0): if 'RAPID' in h.meta.exposure.readpatt: logger.info(( f"Zeroframe in {os.path.basename(self.file)} is all zeros. Since the readpattern is RAPID, " "we grab a copy of the first group to be the zeroframe.")) self.zeroframe = h.data[:, 0, :, :] else: logger.info( "Zeroframe in {} is all zeros. Returning None.".format( self.file)) self.zeroframe = None else: self.zeroframe = h.zeroframe self.sbAndRefpix = None self.header = {} for key in self.translate: try: self.header[key] = eval(f'h.meta.{self.translate[key]}') except: self.header[key] = None