Exemplo n.º 1
0
    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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)