def dl3_file(tmp_dl3_path, observed_dl2_file, simulated_irf_file): from lstchain.high_level.hdu_table import create_event_list, add_icrs_position_params from lstchain.io.io import read_data_dl2_to_QTable from lstchain.reco.utils import get_effective_time from astropy.coordinates import SkyCoord from astropy.io import fits events = read_data_dl2_to_QTable(observed_dl2_file) t_eff, t_tot = get_effective_time(events) events = events[events["intensity"] > 200] source_pos = SkyCoord(ra=83.633, dec=22.01, unit="deg") events = add_icrs_position_params(events, source_pos) evts, gti, pnt = create_event_list( events, run_number=2008, source_name="Crab", source_pos=source_pos, effective_time=t_eff.value, elapsed_time=t_tot.value, ) name = observed_dl2_file.name observed_dl3_file = tmp_dl3_path / name.replace('dl2', 'dl3') observed_dl3_file = observed_dl3_file.with_suffix(".fits") # create a temp dl3 file to test indexing function temp_hdulist = fits.HDUList([fits.PrimaryHDU(), evts, gti, pnt]) for f in fits.open(simulated_irf_file)[1:]: temp_hdulist.append(f) temp_hdulist.writeto(observed_dl3_file, overwrite=True) return observed_dl3_file
def test_read_data_dl2_to_QTable(temp_dir_observed_files, observed_dl1_files): from lstchain.io.io import read_data_dl2_to_QTable real_data_dl2_file = temp_dir_observed_files / ( observed_dl1_files["dl1_file1"].name.replace("dl1", "dl2")) events = read_data_dl2_to_QTable(real_data_dl2_file) assert "gh_score" in events.colnames
def test_create_event_list(observed_dl2_file, simulated_irf_file): from lstchain.irf.hdu_table import create_event_list from lstchain.io.io import read_data_dl2_to_QTable from lstchain.reco.utils import get_effective_time from astropy.coordinates import SkyCoord from astropy.io import fits events = read_data_dl2_to_QTable(observed_dl2_file) t_eff, t_tot = get_effective_time(events) events = events[events["intensity"] > 200] evts, gti, pnt = create_event_list( events, run_number=2008, source_name="Crab", source_pos=SkyCoord(ra=83.633, dec=22.01, unit="deg"), effective_time=t_eff.value, elapsed_time=t_tot.value, ) assert "TIME" in Table.read(evts).columns assert "START" in Table.read(gti).columns assert "RA_PNT" in Table.read(pnt).columns observed_dl3_file = observed_dl2_file.name.replace("dl2", "dl3") observed_dl3_file = (observed_dl2_file.parent / observed_dl3_file.replace(".h5", ".fits")) # create a temp dl3 file to test indexing function temp_hdulist = fits.HDUList([fits.PrimaryHDU(), evts, gti, pnt]) for f in fits.open(simulated_irf_file)[1:]: temp_hdulist.append(f) temp_hdulist.writeto(observed_dl3_file, overwrite=True) assert observed_dl3_file.is_file()