In [ ]:
from __future__ import print_function
In [ ]:
import logging
logging.basicConfig(
format="[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s",
datefmt="%H:%M:%S",
)
In [ ]:
from httm.fits_utilities.raw_fits import raw_converter_from_fits
In [ ]:
raw_data = raw_converter_from_fits('fits_data/raw_fits/single_ccd.fits')
In [ ]:
from httm.fits_utilities.raw_fits import write_raw_converter_to_calibrated_fits
In [ ]:
write_raw_converter_to_calibrated_fits(raw_data, "raw_test.fits")
In [ ]:
write_raw_converter_to_calibrated_fits(raw_data, "raw_test.fits")
In [ ]:
from httm.transformations.raw_converters_to_calibrated \
import convert_adu_to_electrons, remove_baseline, remove_pattern_noise, remove_start_of_line_ringing, remove_undershoot, remove_smear
In [ ]:
raw_slice_transformations = [
convert_adu_to_electrons,
remove_baseline,
remove_start_of_line_ringing,
remove_undershoot,
remove_smear,
]
In [ ]:
from functools import reduce
assert isinstance(reduce(lambda x, f: f(x), raw_slice_transformations, raw_data), type(raw_data))
In [ ]:
assert isinstance(reduce(lambda x, f: f(x), raw_slice_transformations, raw_data), type(raw_data))
In [ ]:
from httm.fits_utilities.electron_flux_fits import electron_flux_converter_from_fits
In [ ]:
electron_flux_data = electron_flux_converter_from_fits('fits_data/electron_flux_fits/small_simulated_data.fits')
In [ ]:
from httm.transformations.electron_flux_converters_to_raw import convert_electrons_to_adu, simulate_undershoot, add_readout_noise, simulate_blooming, add_shot_noise, introduce_smear_rows, add_baseline
In [ ]:
calibrated_slice_transformations = [introduce_smear_rows, add_shot_noise, simulate_blooming, add_readout_noise, simulate_undershoot, add_baseline, convert_electrons_to_adu]
In [ ]:
assert isinstance(reduce(lambda x, f: f(x), calibrated_slice_transformations, electron_flux_data), type(electron_flux_data))
In [ ]:
assert reduce(lambda x, f: f(x), calibrated_slice_transformations, electron_flux_data) is not None
In [ ]:
from httm.resource_utilities import load_pattern_noise, get_file_resource
from httm.fits_utilities import raw_converter_from_fits
from httm.fits_utilities.raw_fits import raw_converter_from_hdulist
from httm.data_structures.metadata import parameters
import astropy
In [ ]:
loaded_data = load_pattern_noise(parameters['pattern_noise']['default'])
In [ ]:
loaded_data2 = load_pattern_noise("../../httm/data/simulated_pattern_noise.fits")
In [ ]:
loaded_data3 = tuple(s.pixels for s in raw_converter_from_fits(get_file_resource(parameters['pattern_noise']['default'])).slices)
In [ ]:
hdulist = astropy.io.fits.open(get_file_resource(parameters['pattern_noise']['default']))
raw_converter = raw_converter_from_hdulist(hdulist)
loaded_data4 = tuple(s.pixels for s in raw_converter.slices)
In [ ]:
assert 'CCDNUM' in hdulist[0].header
In [ ]:
assert 'CCDNUM' in raw_converter.conversion_metadata.header
In [ ]:
assert raw_converter.conversion_metadata.header['CCDNUM'] is hdulist[0].header['CCDNUM']
In [ ]:
assert hdulist[0].header['CCDNUM'] is raw_converter.parameters.ccd_number
In [ ]:
hdulist2 = astropy.io.fits.open(get_file_resource('fits_data/raw_fits/spot50_raw.fits'))
raw_converter2 = raw_converter_from_hdulist(hdulist2)
In [ ]:
assert 'CCDNUM' in hdulist2[0].header
In [ ]:
assert 'CCDNUM' in raw_converter2.conversion_metadata.header
In [ ]:
assert hdulist2[0].header['CCDNUM'] is not hdulist[0].header['CCDNUM']
In [ ]:
assert hdulist2[0].header['CCDNUM'] is raw_converter2.parameters.ccd_number
In [ ]:
assert all(map(lambda x,y: (x == y).all(), loaded_data, loaded_data2))
In [ ]:
assert all(map(lambda x,y: (x == y).all(), loaded_data, loaded_data3))
In [ ]:
assert all(map(lambda x,y: (x == y).all(), loaded_data, loaded_data4))