diff --git a/python/aeFF.py b/python/aeFF.py index 0a9568dc33417624d48b5f795d4982a35d07c0e7..ec8d17f4f0eefdd999846919559bda6ba33f689b 100644 --- a/python/aeFF.py +++ b/python/aeFF.py @@ -1,3 +1,6 @@ +# va bene fare la media per ogni combinazione theta phi di energia? +# dato che divido per gli eventi detected va bene cosi o devo dividere per il totale +# dei generati e moltiplicare per l'area della sorgente? import os import astropy.io.fits as fits import pandas as pd @@ -18,26 +21,26 @@ def get_data(file_path): return energy, ratio_X, ratio_S -def write_raw_results(output_file, results): - with open(output_file, "a") as f: +def write_raw_results(output, results): + with open(output, "a") as f: for energy, ratio_X, ratio_S in results: f.write(f"{energy:.1f}\t{ratio_X:.3f}\t{ratio_S:.3f}\n") # se vuoi i dati rough commenta questa funzione -def write_results(output_file): - # Questa riga legge il file .dat e crea un DataFrame - data = pd.read_csv(output_file, delim_whitespace=True, header=None, names=['energy', 'ratio_X', 'ratio_S']) - # Calcola la media per ogni valore unico di energia - result = data.groupby('energy').mean().reset_index() - # Approssima i risultati alla terza cifra decimale - result = result.round(3) - # Scrive il risultato nel file di output - result.to_csv(output_file, sep='\t', index=False, header=False) +#def write_results(output_file): +# # Questa riga legge il file .dat e crea un DataFrame +# data = pd.read_csv(output_file, delim_whitespace=True, header=None, names=['energy', 'ratio_X', 'ratio_S']) +# # Calcola la media per ogni valore unico di energia +# result = data.groupby('energy').mean().reset_index() +# # Approssima i risultati alla terza cifra decimale +# result = result.round(3) +# # Scrive il risultato nel file di output +# result.to_csv(output_file, sep='\t', index=False, header=False) # Funzione che processa tutti i file .fits presenti nella folder -def process_folder_parallel(folder_path, output_file): +def process_folder_parallel(folder, output): # Crea una lista di file FITS trovati nella folder. Sorted per leggerli in ordine - files = sorted([os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.endswith(".fits")], key=os.path.getmtime) + files = sorted([os.path.join(folder, file) for file in os.listdir(folder) if file.endswith(".fits")], key=os.path.getmtime) # Crea un pool di processi che permette di eseguire funzioni in parallelo. # Usa il metodo map() del pool per eseguire la funzione get_data() su ciascun file FITS in parallelo. @@ -45,9 +48,9 @@ def process_folder_parallel(folder_path, output_file): with Pool() as pool: results = pool.map(get_data, files) # qui files รจ l'argomento che passi a get_data - write_raw_results(output_file, results) + write_raw_results(output, results) - write_results(output_file) + #write_results(output_file) if __name__ == "__main__": folder = "/home/alfonso/Scrivania/THESEUS/xgis_m7-main/fits"