def resize(self, frames, shape, offsetsp, finalshape, window=None, scale=1, step=0): _logger.info('Resizing frames and masks') for frame, rel_offset in zip(frames, offsetsp): if frame.valid_target: region, _ = subarray_match(finalshape, rel_offset, shape) # Valid region frame.valid_region = region # Relative offset frame.rel_offset = rel_offset # names of frame and mask framen, maskn = name_redimensioned_frames( frame.baselabel, step) frame.resized_base = framen frame.resized_mask = maskn _logger.debug('%s, valid region is %s, relative offset is %s', frame.label, custom_region_to_str(region), rel_offset) self.resize_frame_and_mask(frame, finalshape, framen, maskn, window, scale) return frames
def resize(self, frames, shape, offsetsp, finalshape, window=None, scale=1, step=0): self.logger.info('Resizing frames and masks') for frame, rel_offset in zip(frames, offsetsp): if frame.valid_target: region, _ = narray.subarray_match(finalshape, rel_offset, shape) # Valid region frame.valid_region = region # Relative offset frame.rel_offset = rel_offset # names of frame and mask framen, maskn = name_redimensioned_frames( frame.label, step) frame.resized_base = framen frame.resized_mask = maskn self.logger.debug('%s, valid region is %s, relative offset is %s', frame.label, custom_region_to_str(region), rel_offset ) self.resize_frame_and_mask( frame, finalshape, framen, maskn, window, scale)
def resize_frame_and_mask(self, frame, finalshape, framen, maskn, window, scale): _logger.info('Resizing frame %s, window=%s, subpix=%i', frame.label, custom_region_to_str(window), scale) hdul = frame.open() baseshape = hdul[0].data.shape # FIXME: Resize_fits saves the resized image in framen resize_fits(hdul, framen, finalshape, frame.valid_region, window=window, scale=scale, dtype='float32') _logger.info('Resizing mask %s, subpix x%i', frame.label, scale) # We don't conserve the sum of the values of the frame here, just # expand the mask if frame.mask is None: self.logger.warning('BPM missing, use zeros instead') false_mask = numpy.zeros(baseshape, dtype='int16') hdum = fits.HDUList(fits.PrimaryHDU(false_mask)) frame.mask = DataFrame(frame=hdum) resize_fits(frame.mask.open(), maskn, finalshape, frame.valid_region, fill=1, window=window, scale=scale, conserve=False)
def resize_frame_and_mask(self, frame, finalshape, framen, maskn, window, scale): _logger.info('Resizing frame %s, window=%s, subpix=%i', frame.label, custom_region_to_str(window), scale) resize_fits(frame.label, framen, finalshape, frame.valid_region, window=window, scale=scale) _logger.info('Resizing mask %s, subpix x%i', frame.label, scale) # We don't conserve the sum of the values of the frame here, just # expand the mask resize_fits(frame.mask.label, maskn, finalshape, frame.valid_region, fill=1, window=window, scale=scale, conserve=False)