def test_stage_1_dl1(tmp_path, dl1_image_file, dl1_parameters_file): """ check simtel to DL1 conversion """ config = Path("./examples/stage1_config.json").absolute() # DL1A file as input dl1b_from_dl1a_file = tmp_path / "dl1b_fromdl1a.dl1.h5" assert ( run_tool( ProcessorTool(), argv=[ f"--config={config}", f"--input={dl1_image_file}", f"--output={dl1b_from_dl1a_file}", "--write-parameters", "--overwrite", ], cwd=tmp_path, ) == 0 ) # check tables were written with tables.open_file(dl1b_from_dl1a_file, mode="r") as testfile: assert testfile.root.dl1 assert testfile.root.dl1.event.telescope assert testfile.root.dl1.event.subarray assert testfile.root.configuration.instrument.subarray.layout assert testfile.root.configuration.instrument.telescope.optics assert testfile.root.configuration.instrument.telescope.camera.geometry_0 assert testfile.root.configuration.instrument.telescope.camera.readout_0 assert testfile.root.dl1.monitoring.subarray.pointing.dtype.names == ( "time", "array_azimuth", "array_altitude", "array_ra", "array_dec", ) # check we can read telescope parameters dl1_features = pd.read_hdf( dl1b_from_dl1a_file, "/dl1/event/telescope/parameters/tel_025" ) features = ( "obs_id", "event_id", "tel_id", "hillas_intensity", "concentration_cog", "leakage_pixels_width_1", ) for feature in features: assert feature in dl1_features.columns # DL1B file as input assert ( run_tool( ProcessorTool(), argv=[ f"--config={config}", f"--input={dl1_parameters_file}", f"--output={tmp_path}/dl1b_from_dl1b.dl1.h5", "--write-parameters", "--overwrite", ], cwd=tmp_path, ) == 1 )