55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
from nuwavdet import nuwavdet as nw
|
|
|
|
|
|
OBS_PATH = r'.//path_to_obs//nu<obsid><DET>01_cl.evt'
|
|
THRESH = (3, 2)
|
|
|
|
SAVE_BADPIX_PATH = r'.//out//badpix.fits'
|
|
SAVE_REGION_PATH = r'.//out//region.fits'
|
|
SAVE_WAVSUM_PATH = r'.//out//wavsum.fits'
|
|
|
|
METADATA_PATH = r'.//out//metadata.csv'
|
|
METADATA_FITS_PATH = r'.//out//metadata.fits'
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# PROCESS THE OBSERVATION WITH GIVEN THRESHOLD
|
|
result, region, region_raw, wav_sum = nw.process(OBS_PATH, thresh=THRESH)
|
|
|
|
# SAVE THE REGION BAD PIXEL FILES TO THE FITS FILE WITH NUPIPELINE
|
|
# COMPATIBLE FORMAT AND HEADERS.
|
|
region_raw.writeto(SAVE_BADPIX_PATH)
|
|
|
|
# SAVE REGION MASK AS A FITS IMAGE
|
|
nw.save_region(region, SAVE_REGION_PATH, overwrite=False)
|
|
# Note that the Python script uses numpy masked array with
|
|
# True (1) as as masked and False (0) as unmasked pixel.
|
|
# nw.save_region transfers the numpy masked array to
|
|
# conventional format with 1 for unmasked and 0 for masked pixel.
|
|
# However, if mask is used in the Python you need to transfer it back with
|
|
# numpy.logical_not(mask).
|
|
|
|
# SAVE WAVSUM ARRAY AS A FITS IMAGE
|
|
nw.fits.writeto(SAVE_WAVSUM_PATH, wav_sum, overwrite=False)
|
|
|
|
# SAVE METADATA
|
|
# WE SUGGEST SAVING ALL THE METADATA FOR SEVERAL OBSERVATIONS
|
|
# IN ONE FILE.
|
|
|
|
# CREATE CSV FILE TO SAVE DATA
|
|
# IF FILE ALREADY EXISTS YOU SHOULD REMOVE THIS BLOCK FROM YOUR CODE
|
|
table = {
|
|
'obs_id': [], 'detector': [], 'ra': [], 'dec': [],
|
|
'lon': [], 'lat': [], 't_start': [], 'exposure': [],
|
|
'count_rate': [], 'remaining_area': [], 'cash_stat': [],
|
|
'cash_stat_full': []
|
|
}
|
|
out_table = nw.DataFrame(table)
|
|
out_table.to_csv(METADATA_PATH)
|
|
|
|
# SAVE DATA TO CREATED CSV
|
|
nw.DataFrame(result, index=[0]).to_csv(METADATA_PATH, mode='a', header=False)
|
|
|
|
# TRANSFORM THE CSV TO FITS-TABLE
|
|
nw.csv_to_table(METADATA_PATH, METADATA_FITS_PATH)
|