import astropy.io.fits as pyfits
import numpy as np

# ! posso anche lanciare questo script dal bash iniziale e gli do come argomento il nome del file

mask_file_fits = "/home/alfonso/Scrivania/THESEUS/xgis_m7-main/python/msk_55_4752313.fits"
mask_file_ascii = "/home/alfonso/Scrivania/THESEUS/xgis_m7-main/mask.dat"

def fits_to_ascii(mask_file_fits, mask_file_ascii):
    
    with pyfits.open(mask_file_fits) as hdul:
        data = hdul[0].data

        # Estrarre l'HDU primaria (dati e header)
        primary_hdu = hdul[0]
        data = primary_hdu.data
        header = hdul[0].header

        # Scrivi l'header e i dati in un file ASCII
        with open(mask_file_ascii, 'w') as f:
            # Scrivi l'header come commento
            f.write("# Header Information\n")
            for key, value in header.items():
                f.write(f"# {key} = {value}\n")
            f.write("# Data 0 = pieno 1 = vuoto\n")
            
            # Scrivi i dati matrice nel file ASCII
            np.savetxt(f, data, fmt="%d", delimiter=" ")

# Esegui la funzione specificando il file FITS di input e il file ASCII di output
fits_to_ascii(mask_file_fits, mask_file_ascii)