diff --git a/src/km3irf/utils/__init__.py b/src/km3irf/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e1a8750efb31a9ef2f14b5643224d41362e6e865 --- /dev/null +++ b/src/km3irf/utils/__init__.py @@ -0,0 +1,4 @@ +""" +A collection of utils. + +""" diff --git a/src/km3irf/utils/listdata.py b/src/km3irf/utils/listdata.py new file mode 100644 index 0000000000000000000000000000000000000000..aa9d0205b4614d1471a8909eb303b8c6c4a101c9 --- /dev/null +++ b/src/km3irf/utils/listdata.py @@ -0,0 +1,35 @@ +""" +Show the content of the data folder including pathes to files +""" + +from glob import glob +from os.path import getsize +from prettytable import PrettyTable +from importlib_resources import files +from os import path + + + +def listdata(): + tab = PrettyTable(["File Path","Size, KB"], align="l") + data_path = path.join(f"{files('km3irf')}","data","*.fits") + # for file in glob(f"{files('km3irf')}/data/*.fits", recursive=True): + for file in glob(data_path, recursive=True): + #add row with file name and size in KB + tab.add_row([file, round(getsize(filename=file)/float(1<<10), 2)]) + + print(tab) + + + +def main(): + # from docopt import docopt + + # arguments = docopt(__doc__) + + # h5info(arguments["FILE"], arguments["--raw"]) + listdata() + + +if __name__ == "__main__": + main() diff --git a/src/km3irf/utils/mergefits.py b/src/km3irf/utils/mergefits.py new file mode 100644 index 0000000000000000000000000000000000000000..25329b751922cb24b0ea608ce81219a841c72409 --- /dev/null +++ b/src/km3irf/utils/mergefits.py @@ -0,0 +1,49 @@ +"""Merge separated fits files into one irf fits file, which can be used in gammapy +""" + +from os import path +data_dir = path.join(path.dirname(__file__), 'data') + +def mergefits(aeff_fits=path.join(data_dir, "aeff.fits"), + psf_fits=path.join(data_dir, "psf.fits"), + edisp_fits=path.join(data_dir, "edisp.fits"), + bkg_fits=path.join(data_dir, "bkg_nu.fits"), + output_file='all_in_one.fits'): + + hdu_list = [] + hdu_list.append(fits.PrimaryHDU()) + + file_aeff = fits.open(aeff_fits) + hdu_list.append(file_aeff[1]) + hdu_list[1].name = 'EFFECTIVE AREA' + + file_psf = fits.open(psf_fits) + hdu_list.append(file_psf[1]) + hdu_list[2].name = 'POINT SPREAD FUNCTION' + + file_edisp = fits.open(edisp_fits) + hdu_list.append(file_edisp[1]) + hdu_list[3].name = 'ENERGY DISPERSION' + + file_bkg = fits.open(bkg_fits) + hdu_list.append(file_bkg[1]) + hdu_list[4].name = 'BACKGROUND' + + new_fits_file = fits.HDUList(hdu_list) + new_fits_file.writeto(path.join(data_dir, output_file), overwrite=True) + + file_aeff.close() + file_psf.close() + file_edisp.close() + file_bkg.close() + +def main(): + # from docopt import docopt + + # arguments = docopt(__doc__) + + # mergefits(arguments["FILE"], arguments["--raw"]) + mergefits() + +if __name__ == "__main__": + main()