from nuwavdet import nuwavdet as nw OBS_PATH = r'.//path_to_obs//nu01_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)