def __call__(self, gmos_raw_object): """ Preparing the Image Parameters ---------- gmos_raw_object : fname : output filename write_steps : write out the individual steps to the individual fits files write_cut_image : fits file name to write out the cut_image to """ fits_data = gmos_raw_object.fits.fits_data assert len(fits_data) - 1 == 3 # subtract overscan, get useful part of detector, correct for gain, # and set read noise if self.read_noise is None: read_noise = [ detector.readout_noise for detector in gmos_raw_object.instrument_setup.detectors ] else: read_noise = self.read_noise if self.gain is None: gain = [ detector.gain for detector in gmos_raw_object.instrument_setup.detectors ] else: gain = self.gain fits_file = prepare_frame.prepare( fits_data, bias_subslice=self.bias_subslice, data_subslice=self.data_subslice, clip=self.bias_clip_sigma, gain=gain, read_noise=read_noise, combine=self.combine, overscan_std_threshold=self.overscan_std_threshold) # give each extension a name. May later add error/mask extensions for i, extension in enumerate(fits_file): if i > 0: extension.name = 'chip{0:d}.data'.format(i) return fits_file
def __call__(self, gmos_raw_object): """ Preparing the Image Parameters ---------- gmos_raw_object : fname : output filename write_steps : write out the individual steps to the individual fits files write_cut_image : fits file name to write out the cut_image to """ fits_data = gmos_raw_object.fits.fits_data assert len(fits_data) - 1 == 3 # subtract overscan, get useful part of detector, correct for gain, # and set read noise if self.read_noise is None: read_noise = [detector.readout_noise for detector in gmos_raw_object.instrument_setup.detectors] else: read_noise = self.read_noise if self.gain is None: gain = [detector.gain for detector in gmos_raw_object.instrument_setup.detectors] else: gain = self.gain fits_file = prepare_frame.prepare(fits_data, bias_subslice=self.bias_subslice, data_subslice=self.data_subslice, clip=self.bias_clip_sigma, gain=gain, read_noise=read_noise, combine=self.combine, overscan_std_threshold=self.overscan_std_threshold) # give each extension a name. May later add error/mask extensions for i, extension in enumerate(fits_file): if i > 0: extension.name = 'chip{0:d}.data'.format(i) return fits_file
def reduce(self): prepared_frame = prepare_frame.prepare(self.fits.fits_data) return qmosaic.qmosaic(*prepared_frame[1:4])