Data normalization
Uses
-
-
-
-
Step
is implemented by the following Python code:
fits_image_file_name = input import fitsio fits_image_file = fitsio.FITS(fits_image_file_name) fits_image_file.update_hdu_list() images = [hdu for hdu in fits_image_file.hdu_list if hdu.has_data() and hdu.get_info()['hdutype'] == fitsio.IMAGE_HDU] assert(len(images) == 1) raw_image = images[0].read() bits_used = np.bitwise_or.reduce(raw_image.flat) if np.bitwise_and(bits_used, 0x1000) != 0: raw_image = np.right_shift(raw_image, 3) bits_used = np.bitwise_or.reduce(raw_image.flat) if np.bitwise_and(bits_used, 0x1000) != 0: print("Image ", input_file_name, " uses more than 12 bits/pixel") raise ValueError() if raw_image.shape == (2048, 2048): raw_image.shape = (1024, 2, 1024, 2) raw_image = np.right_shift(raw_image.sum(1).sum(2), 2) if raw_image.shape != (1024, 1024): print("Image size for ", fits_image_file_name, ": ", raw_image.shape) raise ValueError() output = raw_image