gammasimtools 0.16.0__py3-none-any.whl → 0.17.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gammasimtools-0.16.0.dist-info → gammasimtools-0.17.0.dist-info}/METADATA +4 -2
- {gammasimtools-0.16.0.dist-info → gammasimtools-0.17.0.dist-info}/RECORD +60 -54
- {gammasimtools-0.16.0.dist-info → gammasimtools-0.17.0.dist-info}/WHEEL +1 -1
- {gammasimtools-0.16.0.dist-info → gammasimtools-0.17.0.dist-info}/entry_points.txt +3 -1
- simtools/_version.py +2 -2
- simtools/applications/derive_ctao_array_layouts.py +5 -5
- simtools/applications/generate_simtel_event_data.py +36 -46
- simtools/applications/merge_tables.py +104 -0
- simtools/applications/plot_array_layout.py +145 -258
- simtools/applications/production_derive_corsika_limits.py +35 -220
- simtools/applications/production_derive_statistics.py +77 -43
- simtools/applications/simulate_light_emission.py +1 -0
- simtools/applications/simulate_prod.py +30 -18
- simtools/applications/simulate_prod_htcondor_generator.py +0 -1
- simtools/applications/submit_array_layouts.py +93 -0
- simtools/applications/verify_simulation_model_production_tables.py +52 -0
- simtools/camera/camera_efficiency.py +3 -3
- simtools/configuration/commandline_parser.py +28 -34
- simtools/configuration/configurator.py +0 -4
- simtools/corsika/corsika_config.py +17 -12
- simtools/corsika/primary_particle.py +46 -13
- simtools/data_model/metadata_collector.py +7 -3
- simtools/db/db_handler.py +11 -11
- simtools/db/db_model_upload.py +2 -2
- simtools/io_operations/io_handler.py +2 -2
- simtools/io_operations/io_table_handler.py +345 -0
- simtools/job_execution/htcondor_script_generator.py +2 -2
- simtools/job_execution/job_manager.py +7 -121
- simtools/layout/array_layout_utils.py +385 -0
- simtools/model/array_model.py +5 -0
- simtools/model/model_repository.py +134 -0
- simtools/production_configuration/{calculate_statistical_errors_grid_point.py → calculate_statistical_uncertainties_grid_point.py} +101 -112
- simtools/production_configuration/derive_corsika_limits.py +239 -111
- simtools/production_configuration/derive_corsika_limits_grid.py +189 -0
- simtools/production_configuration/derive_production_statistics.py +57 -26
- simtools/production_configuration/derive_production_statistics_handler.py +70 -37
- simtools/production_configuration/interpolation_handler.py +296 -94
- simtools/ray_tracing/ray_tracing.py +7 -6
- simtools/reporting/docs_read_parameters.py +104 -62
- simtools/runners/corsika_simtel_runner.py +4 -1
- simtools/runners/runner_services.py +5 -4
- simtools/schemas/model_parameters/dsum_threshold.schema.yml +41 -0
- simtools/schemas/production_configuration_metrics.schema.yml +2 -2
- simtools/simtel/simtel_config_writer.py +34 -14
- simtools/simtel/simtel_io_event_reader.py +301 -194
- simtools/simtel/simtel_io_event_writer.py +207 -227
- simtools/simtel/simtel_io_file_info.py +9 -4
- simtools/simtel/simtel_io_metadata.py +20 -5
- simtools/simtel/simulator_array.py +2 -2
- simtools/simtel/simulator_light_emission.py +79 -34
- simtools/simtel/simulator_ray_tracing.py +2 -2
- simtools/simulator.py +101 -68
- simtools/testing/validate_output.py +4 -1
- simtools/utils/general.py +1 -1
- simtools/utils/names.py +5 -5
- simtools/visualization/plot_array_layout.py +242 -0
- simtools/visualization/plot_pixels.py +681 -0
- simtools/visualization/visualize.py +3 -219
- simtools/applications/production_generate_simulation_config.py +0 -152
- simtools/layout/ctao_array_layouts.py +0 -172
- simtools/production_configuration/generate_simulation_config.py +0 -158
- {gammasimtools-0.16.0.dist-info → gammasimtools-0.17.0.dist-info}/licenses/LICENSE +0 -0
- {gammasimtools-0.16.0.dist-info → gammasimtools-0.17.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gammasimtools
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.17.0
|
|
4
4
|
Summary: Tools for the Simulation System of the CTA Observatory
|
|
5
5
|
Author-email: simtools developers <simtools-developer@desy.de>
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -22,6 +22,7 @@ Requires-Dist: boost-histogram
|
|
|
22
22
|
Requires-Dist: ctao-dpps-cosmic-ray-spectra
|
|
23
23
|
Requires-Dist: ctapipe
|
|
24
24
|
Requires-Dist: eventio
|
|
25
|
+
Requires-Dist: h5py
|
|
25
26
|
Requires-Dist: jsonschema
|
|
26
27
|
Requires-Dist: matplotlib
|
|
27
28
|
Requires-Dist: numpy
|
|
@@ -39,8 +40,8 @@ Requires-Dist: ruff; extra == "dev"
|
|
|
39
40
|
Provides-Extra: doc
|
|
40
41
|
Requires-Dist: myst-parser; extra == "doc"
|
|
41
42
|
Requires-Dist: numpydoc; extra == "doc"
|
|
43
|
+
Requires-Dist: pydata-sphinx-theme; extra == "doc"
|
|
42
44
|
Requires-Dist: sphinx; extra == "doc"
|
|
43
|
-
Requires-Dist: sphinx-book-theme; extra == "doc"
|
|
44
45
|
Requires-Dist: towncrier; extra == "doc"
|
|
45
46
|
Provides-Extra: tests
|
|
46
47
|
Requires-Dist: pytest; extra == "tests"
|
|
@@ -50,6 +51,7 @@ Requires-Dist: pytest-profiling; extra == "tests"
|
|
|
50
51
|
Requires-Dist: pytest-random-order; extra == "tests"
|
|
51
52
|
Requires-Dist: pytest-repeat; extra == "tests"
|
|
52
53
|
Requires-Dist: pytest-requirements; extra == "tests"
|
|
54
|
+
Requires-Dist: pytest-retry; extra == "tests"
|
|
53
55
|
Requires-Dist: pytest-xdist; extra == "tests"
|
|
54
56
|
Dynamic: license-file
|
|
55
57
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
gammasimtools-0.
|
|
1
|
+
gammasimtools-0.17.0.dist-info/licenses/LICENSE,sha256=idBrtxX6eQcUlG0YBTx-O2RNKNKg1Gidb8OQf9q0X7s,1543
|
|
2
2
|
simtools/__init__.py,sha256=yvx0i5ygbllmMtF2Tzy7pohvhQNH_dBdj0Bt8bKFYpc,231
|
|
3
|
-
simtools/_version.py,sha256=
|
|
3
|
+
simtools/_version.py,sha256=6lYqo2NiGNZ_O8QsSkzvYU60ogL4YFzN80126BkHcWw,513
|
|
4
4
|
simtools/constants.py,sha256=jKPUSv8vptzr4x2JvD-wkqaXnTP60q4GniwMj6Rzztk,893
|
|
5
5
|
simtools/dependencies.py,sha256=3WHH6YaBAKpQByvS5edcB5R6v7hV_BTno5LZhzBib-c,4363
|
|
6
|
-
simtools/simulator.py,sha256=
|
|
6
|
+
simtools/simulator.py,sha256=cyicihvBOrxwoklzqyN7oWgmIKGPCLzqU9luE-oS73I,29384
|
|
7
7
|
simtools/version.py,sha256=Fri_aFaUOmV8CIygd3DknAmJaFZ05OAeLd1AgZOcgdQ,688
|
|
8
8
|
simtools/applications/calculate_trigger_rate.py,sha256=hzbf6CPrnFOB7uyjnaiqDfsO1jaVnYXfRd09L9LaewQ,6067
|
|
9
9
|
simtools/applications/convert_all_model_parameters_from_simtel.py,sha256=mWevSRTsOL1SHJbw0ke09jEfrJP0m-DVvplc0iZhz6c,12136
|
|
@@ -16,7 +16,7 @@ simtools/applications/db_get_array_layouts_from_db.py,sha256=2St5ZfcohXSHnDYiP32
|
|
|
16
16
|
simtools/applications/db_get_file_from_db.py,sha256=GvuAJmqIBhlnbmbVIKRJRF5vltUdQJqbmakFzYdOflk,2749
|
|
17
17
|
simtools/applications/db_get_parameter_from_db.py,sha256=7tOO4lxEucnr7jA9L6a04o3HZx1KQUvD11dUZaj9CzE,5157
|
|
18
18
|
simtools/applications/db_inspect_databases.py,sha256=fQZvbdgunGjS86i4NTAgPg9TjKTiPbsuR3al2DPzLMM,1410
|
|
19
|
-
simtools/applications/derive_ctao_array_layouts.py,sha256=
|
|
19
|
+
simtools/applications/derive_ctao_array_layouts.py,sha256=n6bCW2hRXDg1GxynwouRJKQlBYeG2GCehx61tNvRLMA,4081
|
|
20
20
|
simtools/applications/derive_mirror_rnda.py,sha256=tJvGxV-znPmx-GMZDThFw7Y-Wnd6q48fVwxze7DWNa4,8721
|
|
21
21
|
simtools/applications/derive_photon_electron_spectrum.py,sha256=8Dpz-XTlCmOvoKUFtq78B1of62k8ygyk5_r-ZxZYauo,3968
|
|
22
22
|
simtools/applications/derive_psf_parameters.py,sha256=eCy_AjxlFH5nrW5nltnM5rZxX-I08grYvwugGyRuCFk,14181
|
|
@@ -29,18 +29,19 @@ simtools/applications/generate_corsika_histograms.py,sha256=lDTZTns4yOwcYdKgNGO0
|
|
|
29
29
|
simtools/applications/generate_default_metadata.py,sha256=CtUq6ldprp_3mbSB2TXBHeNznUH3qCMkI381GwslWPA,2878
|
|
30
30
|
simtools/applications/generate_regular_arrays.py,sha256=JZI4KfhP67K6Qvg2yAsQZgKNnRiQAfdcpDHfgP16Wkk,3846
|
|
31
31
|
simtools/applications/generate_sim_telarray_histograms.py,sha256=mzCyzRMpRhfkOJU0FNBa70xwb8JgNZJ5PxFnBjPClG4,6682
|
|
32
|
-
simtools/applications/generate_simtel_event_data.py,sha256=
|
|
33
|
-
simtools/applications/
|
|
32
|
+
simtools/applications/generate_simtel_event_data.py,sha256=EceSrlPfYKSAT-DMQHimGbcwr58UonuN08ZBW9fl9p8,3426
|
|
33
|
+
simtools/applications/merge_tables.py,sha256=3u8VlSTr2qzXEgL18Ho5liCbaSB09KtbFYKD3kNBsv8,2745
|
|
34
|
+
simtools/applications/plot_array_layout.py,sha256=ehcOk_zD8de7HEoLSguOOp8awigiJdobDYpX9qoffj8,9898
|
|
34
35
|
simtools/applications/plot_tabular_data.py,sha256=U4OAiaWcvduP78uuCMfQDSOv1OSKB3jAOaXDMSoCCDo,2630
|
|
35
36
|
simtools/applications/print_version.py,sha256=K4wyiWKg3urKgbYirNzxZ3TYogQOTpgnhpz-wdLxbyU,2318
|
|
36
|
-
simtools/applications/production_derive_corsika_limits.py,sha256=
|
|
37
|
-
simtools/applications/production_derive_statistics.py,sha256=
|
|
37
|
+
simtools/applications/production_derive_corsika_limits.py,sha256=s_2_xV8vZ1SQIodzNreJzEK-s8g-A7Pdkn-AE1X4RVw,3547
|
|
38
|
+
simtools/applications/production_derive_statistics.py,sha256=S_PLIR10Xj6Fy1bwU-fAHLueFVJjlGg-jzl55ddKGZ4,5125
|
|
38
39
|
simtools/applications/production_generate_grid.py,sha256=wH3vMNUPeN8lA7IRyXZdgpCAvkbMRLcpCJhtV5QcAuw,6769
|
|
39
|
-
simtools/applications/production_generate_simulation_config.py,sha256=qDIo1VDQzmUcP0QiqdHb-spDg6VEA_qtkkjsQ3_1UG4,5017
|
|
40
40
|
simtools/applications/run_application.py,sha256=WneCRqlVBThzFFkBo3zHe_fER0oF6nIyIfIRNuxlJ2Q,6669
|
|
41
|
-
simtools/applications/simulate_light_emission.py,sha256=
|
|
42
|
-
simtools/applications/simulate_prod.py,sha256=
|
|
43
|
-
simtools/applications/simulate_prod_htcondor_generator.py,sha256=
|
|
41
|
+
simtools/applications/simulate_light_emission.py,sha256=HyoDADx_514GHIhTQChfRfskaMjf83TRl_3U_O1Z_-I,11206
|
|
42
|
+
simtools/applications/simulate_prod.py,sha256=mtxF2zzWDx0NernTT6bWLcqEK_UCvvs4JdSp9en9bbo,7335
|
|
43
|
+
simtools/applications/simulate_prod_htcondor_generator.py,sha256=V6l1DGAD-268NkwIy-XPzrgTLSEICWN5-dFZxQTGCFs,3163
|
|
44
|
+
simtools/applications/submit_array_layouts.py,sha256=G409oVhbBrJTTQGUZ37-skkBMnRsy1K3Fxu7NlSp2Fo,2708
|
|
44
45
|
simtools/applications/submit_data_from_external.py,sha256=hFqsnKiH00YGOmu8hMFi6kBWGxwkabVIAYLI0ckh-6E,3259
|
|
45
46
|
simtools/applications/submit_model_parameter_from_external.py,sha256=VHjfoNPiInrVdxRyT9uKC8OdEvOLfg72XW9Yw7j8FsI,3969
|
|
46
47
|
simtools/applications/validate_camera_efficiency.py,sha256=6TzAMJXASwlCIG8pcmGxRk5Br6-2NYQPnIe7URZ5pVw,4029
|
|
@@ -48,56 +49,59 @@ simtools/applications/validate_camera_fov.py,sha256=BGDYKqeJOgWN2V1sNSZAMyhI4lfA
|
|
|
48
49
|
simtools/applications/validate_cumulative_psf.py,sha256=hgEU7arg2cSwquCHEEMhvqnaH47gyQ26v6Yr-lxE0lM,6415
|
|
49
50
|
simtools/applications/validate_file_using_schema.py,sha256=fH4rdWKBX0Mu2mwrM7v84Dn2vGCq-owZkKZqqNB6MJI,6903
|
|
50
51
|
simtools/applications/validate_optics.py,sha256=KsAxavDuV8STnAE4h5rRneiPb785by_JUsnYldHbXgU,6388
|
|
52
|
+
simtools/applications/verify_simulation_model_production_tables.py,sha256=MJnwsnDrWVWP8XfHoULhhvxtI9XV3e_2oRVZu63BN7k,1576
|
|
51
53
|
simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py,sha256=-3zolE6ihmXnugbytEZC7PqMMo4_EjNTcYrgO6f9lCw,5512
|
|
52
|
-
simtools/camera/camera_efficiency.py,sha256=
|
|
54
|
+
simtools/camera/camera_efficiency.py,sha256=60BePnniYtOB0_7LRpFB8rThLPYuObV-dE65AYEe2TA,18339
|
|
53
55
|
simtools/camera/single_photon_electron_spectrum.py,sha256=0nTlbAE0xoLVBMDwejrMCCj93JN7p8ai9pEBvN6Q0zA,11583
|
|
54
|
-
simtools/configuration/commandline_parser.py,sha256=
|
|
55
|
-
simtools/configuration/configurator.py,sha256=
|
|
56
|
-
simtools/corsika/corsika_config.py,sha256=
|
|
56
|
+
simtools/configuration/commandline_parser.py,sha256=KidFcfBim-3zdTAUAJ7OWNQFhkQK3uV7EOyNXpBwk5c,25778
|
|
57
|
+
simtools/configuration/configurator.py,sha256=qTo4gPUjeX98sbwjJVSkFbH_5BZBPv68gxNJdf1NINA,15032
|
|
58
|
+
simtools/corsika/corsika_config.py,sha256=FY4bEFhKIWbxHVn8oa5f8NE6l-trYN9XcPjtnUxxneE,28389
|
|
57
59
|
simtools/corsika/corsika_histograms.py,sha256=Nhiq6XSGwJJ4Vk1Pu2STknE1x9HLTA4SiQXv4FGF_aA,67664
|
|
58
60
|
simtools/corsika/corsika_histograms_visualize.py,sha256=HjGLcff-ILXh8VYQKWycbHocVBVQp3TTOPmxAky0guI,18169
|
|
59
|
-
simtools/corsika/primary_particle.py,sha256=
|
|
61
|
+
simtools/corsika/primary_particle.py,sha256=WK0UKYtdPSefes286ZGXsoGV9r6JqH19Tk9myza_plU,6613
|
|
60
62
|
simtools/data_model/data_reader.py,sha256=kA6MUmzyfEk3LApX2BSrD5jCJmqGZeJ1LEjbSj6L1zQ,4134
|
|
61
63
|
simtools/data_model/format_checkers.py,sha256=bXF9dItkpZCGXAHdCH7vhgxEsIhXLLVFLOha-hKRspY,1949
|
|
62
|
-
simtools/data_model/metadata_collector.py,sha256=
|
|
64
|
+
simtools/data_model/metadata_collector.py,sha256=0rfILtqeVUK5IX7UVO51afxvr4QZI5rcbyeLFSEE8fo,23678
|
|
63
65
|
simtools/data_model/metadata_model.py,sha256=tvSCfip0-ZKjMWDwPjSHz4jpLrNKPd5FAohTWnWf8xM,4386
|
|
64
66
|
simtools/data_model/model_data_writer.py,sha256=hrEtjBDL5y5H67HEiqw6M4SWZvjyj0jCVFBQ86rdhps,15316
|
|
65
67
|
simtools/data_model/schema.py,sha256=wM4GPqYfC-fS26yMZSu1JgrsuQ91gS7EpIcu6xbBMhw,6730
|
|
66
68
|
simtools/data_model/validate_data.py,sha256=RmzYmt0N1o73ys-9z--X-CSa1z8IwQpRp20JclR4zAw,30044
|
|
67
|
-
simtools/db/db_handler.py,sha256=
|
|
68
|
-
simtools/db/db_model_upload.py,sha256=
|
|
69
|
+
simtools/db/db_handler.py,sha256=brTnGFrNDUEAc5rTqM67IobZT9BjUHgU-4zZkX7NPOE,33566
|
|
70
|
+
simtools/db/db_model_upload.py,sha256=6WToU1iLSSi0bCT7OSb2YB2LY53zgHGq75aqwAwvuew,4838
|
|
69
71
|
simtools/io_operations/hdf5_handler.py,sha256=CqP76MCfxvWH8AOnkIbQM5wBHIvSDEbdZ03wn7t6XgI,4232
|
|
70
|
-
simtools/io_operations/io_handler.py,sha256=
|
|
72
|
+
simtools/io_operations/io_handler.py,sha256=NNRnsWx9WMzA2MfAFlijpAYp7g-PyH0gMOmm-KH4I88,4428
|
|
73
|
+
simtools/io_operations/io_table_handler.py,sha256=aMXUPXVBPxbh59qtbT8da3eRcdgscaEy4bF3KSCQKRQ,10714
|
|
71
74
|
simtools/io_operations/legacy_data_handler.py,sha256=gSz4FLoa1IpJl2DnP6NHpzSYVC4_rolX_SfbHt3u_zk,1341
|
|
72
|
-
simtools/job_execution/htcondor_script_generator.py,sha256=
|
|
73
|
-
simtools/job_execution/job_manager.py,sha256=
|
|
75
|
+
simtools/job_execution/htcondor_script_generator.py,sha256=0SnAaxPIM2Ecg9UknS3AkStrNzIC9T3r9DEKVUEZJIA,3808
|
|
76
|
+
simtools/job_execution/job_manager.py,sha256=fuEJwzCp3U-1oRp0suq3VQY-afKVKMOqObpvxHETXlM,3424
|
|
74
77
|
simtools/layout/array_layout.py,sha256=J6wag1ZwIjutchm_ak-2FTtXdwMUAYm6hRAnXQO6GnQ,25197
|
|
75
|
-
simtools/layout/
|
|
78
|
+
simtools/layout/array_layout_utils.py,sha256=OFlE7TuGJhuh0Ev7Ix2fA9-7ragsvQIJkJTMPEbQ4oQ,11377
|
|
76
79
|
simtools/layout/geo_coordinates.py,sha256=9kKnXFi9vrfYKG_9elzFuzzssGFEUzxMubaclITkW_g,5944
|
|
77
80
|
simtools/layout/telescope_position.py,sha256=m34taJ7LML_KBW75i3EGMK2vEHK9tqFltxa9Ojrspi0,20162
|
|
78
|
-
simtools/model/array_model.py,sha256=
|
|
81
|
+
simtools/model/array_model.py,sha256=0Mk1i5g7nK4opjkQPBvS-LD-PyYGtgHD8EpCcIANtEo,15798
|
|
79
82
|
simtools/model/calibration_model.py,sha256=PqZnca86rNiKu3pExJc3fdiDwbHcB7Q9yl2pyA1orGU,1442
|
|
80
83
|
simtools/model/camera.py,sha256=Gj9yWfAfM4GrrX5q6ZGSQy80WsOUqZaTnP7DoCYfOJ0,21403
|
|
81
84
|
simtools/model/mirrors.py,sha256=uGCAT68WpnESv9IAgg8Xae9Z2-XgxMBL_Phnv6Ro0XQ,9151
|
|
82
85
|
simtools/model/model_parameter.py,sha256=omYDU2a1NeEcMBigmVS-r2ERHLCDLi4Y8ibsX5zWh_c,19219
|
|
86
|
+
simtools/model/model_repository.py,sha256=68XLwOw5cG69QdFyTqBIPeLBYx1FtzPS48cMAL0BHbo,4124
|
|
83
87
|
simtools/model/model_utils.py,sha256=OFMKgrHLzStAE7k5JRuj6iAI4Z1_ND13lXWzUTGfZ_M,2485
|
|
84
88
|
simtools/model/site_model.py,sha256=eBkF-bMdS3AtARbDbDC8LqzNWqSDpROFhygWdH6uv4w,5263
|
|
85
89
|
simtools/model/telescope_model.py,sha256=WFR4GolpOwUmRipJzoVWMovjOLeAhJcOCZTcv8yB3oE,13472
|
|
86
|
-
simtools/production_configuration/
|
|
87
|
-
simtools/production_configuration/derive_corsika_limits.py,sha256=
|
|
88
|
-
simtools/production_configuration/
|
|
89
|
-
simtools/production_configuration/
|
|
90
|
+
simtools/production_configuration/calculate_statistical_uncertainties_grid_point.py,sha256=r3g2dNMCZdl6K3fvg0mcPV7C2AIc70N2bSdyYb5hY4I,15550
|
|
91
|
+
simtools/production_configuration/derive_corsika_limits.py,sha256=AdDh8EnycpsS9w3RcVW8UN3tZs19hfPfYnE38Gl_fmE,16651
|
|
92
|
+
simtools/production_configuration/derive_corsika_limits_grid.py,sha256=SNFnAaxens6x0pfB92TbkEEO2g7asWbsMt64lx9fplE,5501
|
|
93
|
+
simtools/production_configuration/derive_production_statistics.py,sha256=q7uW044MVcbGzwzVYpXcSvlRD8qcif8FyYP7mqtuNWs,5761
|
|
94
|
+
simtools/production_configuration/derive_production_statistics_handler.py,sha256=-mZGIvXDlQk96N1V_zDu-w9Fv7VG9idjFpztZx0Nqh4,6180
|
|
90
95
|
simtools/production_configuration/generate_production_grid.py,sha256=iLyBMcI6IDOe7gBZIEm1_T64eFtljX1YWfWK09cs67Y,13423
|
|
91
|
-
simtools/production_configuration/
|
|
92
|
-
simtools/production_configuration/interpolation_handler.py,sha256=HhkjM9Nkzd37KRkk_WgY72XS03sByVZZCYmWYcw-zH0,7297
|
|
96
|
+
simtools/production_configuration/interpolation_handler.py,sha256=97zk7XR8yNMs4dEqcrfjpma6SgUDlqaXcsfAIw1rhuY,14131
|
|
93
97
|
simtools/ray_tracing/mirror_panel_psf.py,sha256=3ggk1GTGodNcLlp06ku6iTP5h5oIkyx9Tdzdfec4Skg,11153
|
|
94
98
|
simtools/ray_tracing/psf_analysis.py,sha256=kw431lbLNd8nm7FoOkCZwSw1iXvNIit-WKX9n-GMLJw,18164
|
|
95
|
-
simtools/ray_tracing/ray_tracing.py,sha256=
|
|
99
|
+
simtools/ray_tracing/ray_tracing.py,sha256=jpne4oDWE4osDuaQnkUOUIXdq0rC2qRdaEaJTM3hPrM,21812
|
|
96
100
|
simtools/reporting/docs_auto_report_generator.py,sha256=i4GGtpKKN0cVtGPEK4m3tpOrD8-PP5uot4kRHUujt8U,9236
|
|
97
|
-
simtools/reporting/docs_read_parameters.py,sha256=
|
|
101
|
+
simtools/reporting/docs_read_parameters.py,sha256=oYa75ixZNtKMh8Xy4uJAvtudaLQmNgGyhKedJ4fLTZw,33773
|
|
98
102
|
simtools/runners/corsika_runner.py,sha256=_w88APEG-H7Ns0E0modqvl_FsFAA3WVbS9TZFI6b4Ug,9199
|
|
99
|
-
simtools/runners/corsika_simtel_runner.py,sha256=
|
|
100
|
-
simtools/runners/runner_services.py,sha256=
|
|
103
|
+
simtools/runners/corsika_simtel_runner.py,sha256=pPiytx5UEa3oQPPUh1l_fAv2b6FCfPDpD4hUPME7gv8,7377
|
|
104
|
+
simtools/runners/runner_services.py,sha256=iFyOnABEnTpjoHhW0a2rkRCkhgH5nMwwbHb-Nk8EVuQ,10319
|
|
101
105
|
simtools/runners/simtel_runner.py,sha256=0S_iqi_HewbCbqkEwNA4uBbzRXDIe5BZaZXP4h0ufBY,8362
|
|
102
106
|
simtools/schemas/application_workflow.metaschema.yml,sha256=eoe08Gw0BN235bW92GwRxkTIbieMMAstLl-kHZqrf2U,4567
|
|
103
107
|
simtools/schemas/array_elements.yml,sha256=7OZ5BwhX-YFJ1SnXXgW2nO0ZP6xnQK4B0Cmvd5d96dw,3552
|
|
@@ -105,7 +109,7 @@ simtools/schemas/metadata.metaschema.yml,sha256=Wf7vmNXaD1btm5yHUQ8NhxUW5k0-Jl5Q
|
|
|
105
109
|
simtools/schemas/model_parameter.metaschema.yml,sha256=mgzsF6G2xZti_wSTfGKGJGiOBBsgs7KL6DlYKa1QOt4,6553
|
|
106
110
|
simtools/schemas/model_parameter_and_data_schema.metaschema.yml,sha256=lH1FuFvU3exy-61t-5AW1ou4FkoGsXJwMTck2YnS05o,10342
|
|
107
111
|
simtools/schemas/plot_configuration.metaschema.yml,sha256=b89uLn_nI9oEiBCa9uOlb5jPQCE-yApiFdWfgJlL5HI,4516
|
|
108
|
-
simtools/schemas/production_configuration_metrics.schema.yml,sha256=
|
|
112
|
+
simtools/schemas/production_configuration_metrics.schema.yml,sha256=36azX8tg_cNArk5GmDL0-WdOLRicZRJEnlVzg2YUv20,1648
|
|
109
113
|
simtools/schemas/production_tables.schema.yml,sha256=qcrY-89v1fDVpjBKpx4ZRv5BaVsayVtKOkPRArNIjVM,1301
|
|
110
114
|
simtools/schemas/input/MST_mirror_2f_measurements.schema.yml,sha256=jETNirP8IYJVG5rVeqIuin7O-o7XjmFbvHSFI6SxZZg,1117
|
|
111
115
|
simtools/schemas/input/single_pe_spectrum.schema.yml,sha256=1y0MNMWs20F6s1iQV8sBuN2vxI2b6dFVADj79OKgH4c,1237
|
|
@@ -181,7 +185,7 @@ simtools/schemas/model_parameters/dsum_presum_max.schema.yml,sha256=VIIgi48iSV6j
|
|
|
181
185
|
simtools/schemas/model_parameters/dsum_presum_shift.schema.yml,sha256=8mkPIoXOZn0EBg2Ip1TnXwR2CizXk4bquUU6zsKPEWc,1278
|
|
182
186
|
simtools/schemas/model_parameters/dsum_shaping.schema.yml,sha256=2n7MM64DHVD23dtlhRcw4nN4sEA4XsVY6Qx8vStjTRw,1431
|
|
183
187
|
simtools/schemas/model_parameters/dsum_shaping_renormalize.schema.yml,sha256=k-XUEp5Gylff9xkwFNZe6FIKdjaKJUn6Jk0a2spuB4Q,838
|
|
184
|
-
simtools/schemas/model_parameters/dsum_threshold.schema.yml,sha256=
|
|
188
|
+
simtools/schemas/model_parameters/dsum_threshold.schema.yml,sha256=zQ63IqMF4JdFfNrTv_aZlSNBXGiZhxNIPtDSevw9PCk,2604
|
|
185
189
|
simtools/schemas/model_parameters/dsum_zero_clip.schema.yml,sha256=BLQlvnn_9Pq88m5Bux9BKqXF1WN-tS8GKYcg-1eO5YY,1183
|
|
186
190
|
simtools/schemas/model_parameters/effective_focal_length.schema.yml,sha256=KWwUsCpUXoSOoyoCh1n9uqZvoUpUtUzLmJuDy_Not0c,3183
|
|
187
191
|
simtools/schemas/model_parameters/epsg_code.schema.yml,sha256=gKgJxPoS2QxC5ecMNaNDXr7d39m1TnOkIaJKOTB4hbY,912
|
|
@@ -336,33 +340,35 @@ simtools/schemas/model_parameters/trigger_current_limit.schema.yml,sha256=aE_u7Y
|
|
|
336
340
|
simtools/schemas/model_parameters/trigger_delay_compensation.schema.yml,sha256=zszbE1uanxYUAqL6qteQMNxDgsLxhVPTnmijhW_WnvI,1562
|
|
337
341
|
simtools/schemas/model_parameters/trigger_pixels.schema.yml,sha256=4FFa-RiZ1-S8IN5K0GY_Fo0bP1zUKQl0z12lJREqsqM,1098
|
|
338
342
|
simtools/simtel/simtel_config_reader.py,sha256=OqfQtLbGrpElwmhyy_z2jtqq_882ZuADgDEjM2vmMPE,15028
|
|
339
|
-
simtools/simtel/simtel_config_writer.py,sha256=
|
|
340
|
-
simtools/simtel/simtel_io_event_reader.py,sha256=
|
|
341
|
-
simtools/simtel/simtel_io_event_writer.py,sha256=
|
|
342
|
-
simtools/simtel/simtel_io_file_info.py,sha256=
|
|
343
|
+
simtools/simtel/simtel_config_writer.py,sha256=wxc4u77KOuYSV7clwgIrAoVdNYYKVF1oiAVDtsAeMKo,24228
|
|
344
|
+
simtools/simtel/simtel_io_event_reader.py,sha256=t7_ZWZHYEYOjbTU1fYQN5xVr5EU4afX-vI5og-s_Zzo,13742
|
|
345
|
+
simtools/simtel/simtel_io_event_writer.py,sha256=wjOjogzdPCzlCE61GGu_iIHcYMDvJuHW4-5SqU_7XoI,10878
|
|
346
|
+
simtools/simtel/simtel_io_file_info.py,sha256=T2xtdz-0pDZFf7cJw7brBxA9OHbDuBossTzY60RHFfw,1775
|
|
343
347
|
simtools/simtel/simtel_io_histogram.py,sha256=E-2ORo5i8ukDTiG1xcte7MqKLWJ3rpTdAi9o07gdjzM,23625
|
|
344
348
|
simtools/simtel/simtel_io_histograms.py,sha256=JivmhlyE7buBWJ-3pRKD57nfg7DLdaNzACVfYHZjfkc,20505
|
|
345
|
-
simtools/simtel/simtel_io_metadata.py,sha256=
|
|
349
|
+
simtools/simtel/simtel_io_metadata.py,sha256=Spk5MtKdUYkOwEICX23jNhwypZ0tXkk40Hlp4uXugUI,3252
|
|
346
350
|
simtools/simtel/simtel_table_reader.py,sha256=ce8mS_8LDh18lEjFtLgT1uhWJuIeTD05JN03Qv5iNY0,12688
|
|
347
|
-
simtools/simtel/simulator_array.py,sha256=
|
|
351
|
+
simtools/simtel/simulator_array.py,sha256=Dcu4g83yKApeZcGZVe2I514NwBXGaDVmpgNqBGK3nFs,5535
|
|
348
352
|
simtools/simtel/simulator_camera_efficiency.py,sha256=87fxw2z3avqp4rGgoEHCuvbzwTOyKi5-C9AwTcGyrvA,11381
|
|
349
|
-
simtools/simtel/simulator_light_emission.py,sha256=
|
|
350
|
-
simtools/simtel/simulator_ray_tracing.py,sha256=
|
|
353
|
+
simtools/simtel/simulator_light_emission.py,sha256=6VN-2n4lMH0ibE5Np_6e2db6h_LPGW6oqFFSHsxO2fE,24289
|
|
354
|
+
simtools/simtel/simulator_ray_tracing.py,sha256=CrbWqSp-J7FLgTOl8eILWfm8N0aAydm7E65dNkHx500,11595
|
|
351
355
|
simtools/testing/assertions.py,sha256=cJm6FtIJTFnTr7wqQ17yqCsrm7YVaxD3vfXoTc0GCm4,4765
|
|
352
356
|
simtools/testing/configuration.py,sha256=7_Yx13Uwmxb-yU7dTTDKjV5M_D1SvqBwd_8Rp6lV7-0,7865
|
|
353
357
|
simtools/testing/helpers.py,sha256=Z01EUIMkfRclJzF4WYXboxTGxDvxjYjQw32RaPWaNlw,1829
|
|
354
358
|
simtools/testing/sim_telarray_metadata.py,sha256=9aVEdCZSB_56Cq-XUVMX8BLtzrwbRXf3SMqeeM9GvAk,7941
|
|
355
|
-
simtools/testing/validate_output.py,sha256=
|
|
356
|
-
simtools/utils/general.py,sha256=
|
|
359
|
+
simtools/testing/validate_output.py,sha256=zHuFu8oHxnYtO-Q2WNuVf4IGNWNs8bkHMs1EgrK-Td4,11481
|
|
360
|
+
simtools/utils/general.py,sha256=eN_Yu9VBObIj5GRa0lzXYayd_Ay9VKFgQkd-WCkMrnc,26966
|
|
357
361
|
simtools/utils/geometry.py,sha256=afMC4ryqLmieB7layMgh2f7PnZLXaqvXBMLprBmkHVI,6660
|
|
358
|
-
simtools/utils/names.py,sha256=
|
|
362
|
+
simtools/utils/names.py,sha256=NKNv28cuaUDnZ87H4xf6cH0v-uZCwOtWulx-t7ahYJU,20076
|
|
359
363
|
simtools/utils/value_conversion.py,sha256=Cl-BHOZWUhWr-W_hT4CR1iLfiphd8MSNkzYEjDe6iH8,6311
|
|
360
364
|
simtools/visualization/legend_handlers.py,sha256=NKjoV4o9RTc-jajMAZz3QXkEVYzLvrpsno4HQw-rtcw,12048
|
|
365
|
+
simtools/visualization/plot_array_layout.py,sha256=9FQP44O5dJ_KmTWvAWtXA0ZIGtC5TiSCJ_9yPzzhRAw,6768
|
|
361
366
|
simtools/visualization/plot_camera.py,sha256=dLXKHYfY_elqaKhj91HlntASoVixTrpc_Kf0jPU8RmU,11167
|
|
367
|
+
simtools/visualization/plot_pixels.py,sha256=3rvQFZ4D3zn6YuBMTb72J9h5kOm0eslRcu5xLns6HiI,20604
|
|
362
368
|
simtools/visualization/plot_tables.py,sha256=BNg2HJ1YAL4ahrl29P1-qFFR2UpZnwAPM_5qtrita2c,3148
|
|
363
|
-
simtools/visualization/visualize.py,sha256=
|
|
364
|
-
gammasimtools-0.
|
|
365
|
-
gammasimtools-0.
|
|
366
|
-
gammasimtools-0.
|
|
367
|
-
gammasimtools-0.
|
|
368
|
-
gammasimtools-0.
|
|
369
|
+
simtools/visualization/visualize.py,sha256=LlmFI2N19LVD4MzQ9ZCFYPUYKmTKQdD8Q1bmEUQJFPQ,22015
|
|
370
|
+
gammasimtools-0.17.0.dist-info/METADATA,sha256=QCuIbDC2vH4gKOCICeREzQmgXC7HzmkR-rk9mDGcONA,6850
|
|
371
|
+
gammasimtools-0.17.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
372
|
+
gammasimtools-0.17.0.dist-info/entry_points.txt,sha256=ptwPPiFI4TOSAw0nKa2x6LTV4Z86oPQ3frf1RtQ-w7Y,4158
|
|
373
|
+
gammasimtools-0.17.0.dist-info/top_level.txt,sha256=9Yi7Q7aQX6alvpP2YGQtIYo208wdGkXUApHboEdj-ys,9
|
|
374
|
+
gammasimtools-0.17.0.dist-info/RECORD,,
|
|
@@ -24,17 +24,18 @@ simtools-generate-default-metadata = simtools.applications.generate_default_meta
|
|
|
24
24
|
simtools-generate-regular-arrays = simtools.applications.generate_regular_arrays:main
|
|
25
25
|
simtools-generate-sim-telarray-histograms = simtools.applications.generate_sim_telarray_histograms:main
|
|
26
26
|
simtools-generate-simtel-event-data = simtools.applications.generate_simtel_event_data:main
|
|
27
|
+
simtools-merge-tables = simtools.applications.merge_tables:main
|
|
27
28
|
simtools-plot-array-layout = simtools.applications.plot_array_layout:main
|
|
28
29
|
simtools-plot-tabular-data = simtools.applications.plot_tabular_data:main
|
|
29
30
|
simtools-print-version = simtools.applications.print_version:main
|
|
30
31
|
simtools-production-derive-corsika-limits = simtools.applications.production_derive_corsika_limits:main
|
|
31
32
|
simtools-production-derive-statistics = simtools.applications.production_derive_statistics:main
|
|
32
33
|
simtools-production-generate-grid = simtools.applications.production_generate_grid:main
|
|
33
|
-
simtools-production-generate-simulation-config = simtools.applications.production_generate_simulation_config:main
|
|
34
34
|
simtools-run-application = simtools.applications.run_application:main
|
|
35
35
|
simtools-simulate-light-emission = simtools.applications.simulate_light_emission:main
|
|
36
36
|
simtools-simulate-prod = simtools.applications.simulate_prod:main
|
|
37
37
|
simtools-simulate-prod-htcondor-generator = simtools.applications.simulate_prod_htcondor_generator:main
|
|
38
|
+
simtools-submit-array-layouts = simtools.applications.submit_array_layouts:main
|
|
38
39
|
simtools-submit-data-from-external = simtools.applications.submit_data_from_external:main
|
|
39
40
|
simtools-submit-model-parameter-from-external = simtools.applications.submit_model_parameter_from_external:main
|
|
40
41
|
simtools-validate-camera-efficiency = simtools.applications.validate_camera_efficiency:main
|
|
@@ -42,3 +43,4 @@ simtools-validate-camera-fov = simtools.applications.validate_camera_fov:main
|
|
|
42
43
|
simtools-validate-cumulative-psf = simtools.applications.validate_cumulative_psf:main
|
|
43
44
|
simtools-validate-file-using-schema = simtools.applications.validate_file_using_schema:main
|
|
44
45
|
simtools-validate-optics = simtools.applications.validate_optics:main
|
|
46
|
+
simtools-verify-simulation-model-production-tables = simtools.applications.verify_simulation_model_production_tables:main
|
simtools/_version.py
CHANGED
|
@@ -18,7 +18,7 @@ r"""
|
|
|
18
18
|
Model parameter version.
|
|
19
19
|
repository_url (str)
|
|
20
20
|
URL or path of the CTAO common identifiers repository.
|
|
21
|
-
repository_branch (str
|
|
21
|
+
repository_branch (str)
|
|
22
22
|
Repository branch to use for CTAO common identifiers.
|
|
23
23
|
updated_parameter_version (str)
|
|
24
24
|
Updated parameter version.
|
|
@@ -48,9 +48,9 @@ from pathlib import Path
|
|
|
48
48
|
import simtools.utils.general as gen
|
|
49
49
|
from simtools.configuration import configurator
|
|
50
50
|
from simtools.db import db_handler
|
|
51
|
-
from simtools.layout.
|
|
51
|
+
from simtools.layout.array_layout_utils import (
|
|
52
52
|
merge_array_layouts,
|
|
53
|
-
|
|
53
|
+
retrieve_ctao_array_layouts,
|
|
54
54
|
write_array_layouts,
|
|
55
55
|
)
|
|
56
56
|
|
|
@@ -91,7 +91,7 @@ def main(): # noqa: D103
|
|
|
91
91
|
logger = logging.getLogger()
|
|
92
92
|
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
93
93
|
|
|
94
|
-
ctao_array_layouts =
|
|
94
|
+
ctao_array_layouts = retrieve_ctao_array_layouts(
|
|
95
95
|
site=args_dict["site"],
|
|
96
96
|
repository_url=args_dict["repository_url"],
|
|
97
97
|
branch_name=args_dict["repository_branch"],
|
|
@@ -107,7 +107,7 @@ def main(): # noqa: D103
|
|
|
107
107
|
)
|
|
108
108
|
db_array_layouts["array_layouts"].pop("_id", None)
|
|
109
109
|
db_array_layouts["array_layouts"].pop("entry_date", None)
|
|
110
|
-
logger.info(f"Layouts from
|
|
110
|
+
logger.info(f"Layouts from model parameter database: {db_array_layouts}")
|
|
111
111
|
|
|
112
112
|
write_array_layouts(
|
|
113
113
|
array_layouts=merge_array_layouts(db_array_layouts["array_layouts"], ctao_array_layouts),
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/python3
|
|
2
2
|
|
|
3
|
-
"""
|
|
4
|
-
|
|
3
|
+
r"""
|
|
4
|
+
Generate a reduced dataset of event data from simulated files.
|
|
5
|
+
|
|
6
|
+
Processes sim_telarray output files (typically of type '.simtel.zst') and creates a
|
|
7
|
+
reduced dataset containing shower information, array-level parameters, and data about
|
|
8
|
+
triggered telescopes.
|
|
5
9
|
|
|
6
10
|
Command line arguments
|
|
7
11
|
----------------------
|
|
8
12
|
prefix (str, required)
|
|
9
13
|
Path prefix for the input files.
|
|
10
14
|
output_file (str, required)
|
|
11
|
-
|
|
15
|
+
Output file path.
|
|
12
16
|
max_files (int, optional, default=100)
|
|
13
|
-
Maximum number of files to process.
|
|
14
|
-
print_dataset_information (
|
|
17
|
+
Maximum number of input files to process.
|
|
18
|
+
print_dataset_information (int, optional, default=0)
|
|
15
19
|
Print information about the datasets in the generated reduced event dataset.
|
|
16
20
|
|
|
17
21
|
Example
|
|
@@ -20,13 +24,12 @@ Generate a reduced dataset from input files and save the result.
|
|
|
20
24
|
|
|
21
25
|
.. code-block:: console
|
|
22
26
|
|
|
23
|
-
simtools-production-extract-mc-event-data
|
|
24
|
-
simtools-generate-simtel-event-data
|
|
25
|
-
--
|
|
26
|
-
--
|
|
27
|
-
--
|
|
28
|
-
--
|
|
29
|
-
--print_dataset_information
|
|
27
|
+
simtools-production-extract-mc-event-data \\
|
|
28
|
+
simtools-generate-simtel-event-data \\
|
|
29
|
+
--input 'path/to/input_files/gamma_*dark*.simtel.zst' \\
|
|
30
|
+
--output_file output_file.hdf5 \\
|
|
31
|
+
--max_files 50 \\
|
|
32
|
+
--print_dataset_information 10
|
|
30
33
|
"""
|
|
31
34
|
|
|
32
35
|
import logging
|
|
@@ -34,8 +37,8 @@ from pathlib import Path
|
|
|
34
37
|
|
|
35
38
|
import simtools.utils.general as gen
|
|
36
39
|
from simtools.configuration import configurator
|
|
37
|
-
from simtools.
|
|
38
|
-
from simtools.
|
|
40
|
+
from simtools.data_model.metadata_collector import MetadataCollector
|
|
41
|
+
from simtools.io_operations import io_handler, io_table_handler
|
|
39
42
|
from simtools.simtel.simtel_io_event_writer import SimtelIOEventDataWriter
|
|
40
43
|
|
|
41
44
|
|
|
@@ -51,35 +54,24 @@ def _parse(label, description):
|
|
|
51
54
|
config = configurator.Configurator(label=label, description=description)
|
|
52
55
|
|
|
53
56
|
config.parser.add_argument(
|
|
54
|
-
"--
|
|
55
|
-
)
|
|
56
|
-
config.parser.add_argument(
|
|
57
|
-
"--wildcard",
|
|
57
|
+
"--input",
|
|
58
58
|
type=str,
|
|
59
59
|
required=True,
|
|
60
|
-
help="
|
|
60
|
+
help="Input file path (wildcards allowed; e.g., '/data_path/gamma_*dark*.simtel.zst')",
|
|
61
61
|
)
|
|
62
|
-
config.parser.add_argument("--output_file", type=str, required=True, help="Output filename.")
|
|
63
62
|
config.parser.add_argument(
|
|
64
|
-
"--max_files", type=int, default=100, help="Maximum number of files to process."
|
|
63
|
+
"--max_files", type=int, default=100, help="Maximum number of input files to process."
|
|
65
64
|
)
|
|
66
|
-
|
|
67
65
|
config.parser.add_argument(
|
|
68
66
|
"--print_dataset_information",
|
|
69
67
|
type=int,
|
|
70
|
-
help="Print given number of
|
|
68
|
+
help="Print data set information for the given number of events.",
|
|
71
69
|
default=0,
|
|
72
70
|
)
|
|
71
|
+
return config.initialize(db_config=False, output=True)
|
|
73
72
|
|
|
74
|
-
return config.initialize(db_config=False)
|
|
75
73
|
|
|
76
|
-
|
|
77
|
-
def main():
|
|
78
|
-
"""
|
|
79
|
-
Process event data files and store data in reduced dataset.
|
|
80
|
-
|
|
81
|
-
The reduced dataset contains shower information, array information and triggered telescopes.
|
|
82
|
-
"""
|
|
74
|
+
def main(): # noqa: D103
|
|
83
75
|
label = Path(__file__).stem
|
|
84
76
|
|
|
85
77
|
args_dict, _ = _parse(
|
|
@@ -90,27 +82,25 @@ def main():
|
|
|
90
82
|
),
|
|
91
83
|
)
|
|
92
84
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
85
|
+
logger = logging.getLogger()
|
|
86
|
+
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
87
|
+
logger.info(f"Loading input files from: {args_dict['input']}")
|
|
96
88
|
|
|
97
|
-
|
|
98
|
-
files = list(
|
|
89
|
+
input_pattern = Path(args_dict["input"])
|
|
90
|
+
files = list(input_pattern.parent.glob(input_pattern.name))
|
|
99
91
|
if not files:
|
|
100
|
-
|
|
92
|
+
logger.warning("No matching input files found.")
|
|
101
93
|
return
|
|
102
94
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
generator.process_files()
|
|
109
|
-
_logger.info(f"reduced dataset saved to: {output_filepath}")
|
|
95
|
+
output_filepath = io_handler.IOHandler().get_output_file(args_dict["output_file"])
|
|
96
|
+
generator = SimtelIOEventDataWriter(files, args_dict["max_files"])
|
|
97
|
+
tables = generator.process_files()
|
|
98
|
+
io_table_handler.write_tables(tables, output_filepath, overwrite_existing=True)
|
|
99
|
+
MetadataCollector.dump(args_dict=args_dict, output_file=output_filepath.with_suffix(".yml"))
|
|
110
100
|
|
|
111
101
|
if args_dict["print_dataset_information"] > 0:
|
|
112
|
-
|
|
113
|
-
|
|
102
|
+
for table in tables:
|
|
103
|
+
table.pprint(max_lines=args_dict["print_dataset_information"], max_width=-1)
|
|
114
104
|
|
|
115
105
|
|
|
116
106
|
if __name__ == "__main__":
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
r"""
|
|
2
|
+
Merge tables from multiple input files into single tables.
|
|
3
|
+
|
|
4
|
+
Allows to merge tables from multiple input files into a single file.
|
|
5
|
+
The input files can be in HDF5 or FITS format. The merged tables will be saved in the
|
|
6
|
+
specified output file.
|
|
7
|
+
|
|
8
|
+
Note that merging large tables in FITS are not recommended, as it may lead to
|
|
9
|
+
performance issues.
|
|
10
|
+
|
|
11
|
+
Command line arguments
|
|
12
|
+
----------------------
|
|
13
|
+
input str
|
|
14
|
+
Input file(s) (e.g., 'file1 file2').
|
|
15
|
+
input_list str
|
|
16
|
+
File with list of input files with tables.
|
|
17
|
+
table_names str
|
|
18
|
+
Names of tables to merge from each input file.
|
|
19
|
+
output_file str
|
|
20
|
+
Output file name.
|
|
21
|
+
output_path str
|
|
22
|
+
Path to the output file for the merged tables.
|
|
23
|
+
|
|
24
|
+
Example
|
|
25
|
+
-------
|
|
26
|
+
|
|
27
|
+
Merge tables from two files into a single file.
|
|
28
|
+
|
|
29
|
+
.. code-block:: console
|
|
30
|
+
|
|
31
|
+
simtools-merge-tables \\
|
|
32
|
+
--input file1 file2' \\
|
|
33
|
+
--table_names 'SHOWERS TRIGGERS FILE_INFO' \\
|
|
34
|
+
--output_file merged_tables.hdf5
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
import logging
|
|
40
|
+
from pathlib import Path
|
|
41
|
+
|
|
42
|
+
import simtools.utils.general as gen
|
|
43
|
+
from simtools.configuration import configurator
|
|
44
|
+
from simtools.io_operations import io_handler, io_table_handler
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _parse(label, description):
|
|
48
|
+
"""
|
|
49
|
+
Parse command line arguments.
|
|
50
|
+
|
|
51
|
+
Returns
|
|
52
|
+
-------
|
|
53
|
+
dict
|
|
54
|
+
Parsed command-line arguments.
|
|
55
|
+
"""
|
|
56
|
+
config = configurator.Configurator(label=label, description=description)
|
|
57
|
+
|
|
58
|
+
input_group = config.parser.add_mutually_exclusive_group(required=True)
|
|
59
|
+
input_group.add_argument(
|
|
60
|
+
"--input",
|
|
61
|
+
type=str,
|
|
62
|
+
nargs="+",
|
|
63
|
+
help="Input file(s) (e.g., 'file1 file2')",
|
|
64
|
+
)
|
|
65
|
+
input_group.add_argument(
|
|
66
|
+
"--input_list",
|
|
67
|
+
type=str,
|
|
68
|
+
help="File with list of input files with tables.",
|
|
69
|
+
)
|
|
70
|
+
config.parser.add_argument(
|
|
71
|
+
"--table_names",
|
|
72
|
+
type=str,
|
|
73
|
+
nargs="+",
|
|
74
|
+
help="Names of tables to merge from each input file.",
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
return config.initialize(db_config=False, output=True)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def main(): # noqa: D103
|
|
81
|
+
label = Path(__file__).stem
|
|
82
|
+
|
|
83
|
+
args_dict, _ = _parse(
|
|
84
|
+
label=label,
|
|
85
|
+
description=("Merge tables from multiple input files into single tables."),
|
|
86
|
+
)
|
|
87
|
+
logger = logging.getLogger()
|
|
88
|
+
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
89
|
+
logger.info(f"Loading input files from: {args_dict['input']}")
|
|
90
|
+
|
|
91
|
+
output_path = io_handler.IOHandler().get_output_directory(label)
|
|
92
|
+
output_filepath = Path(output_path).joinpath(f"{args_dict['output_file']}")
|
|
93
|
+
|
|
94
|
+
input_files = args_dict.get("input") or gen.collect_data_from_file(args_dict["input_list"])
|
|
95
|
+
|
|
96
|
+
io_table_handler.merge_tables(
|
|
97
|
+
input_files,
|
|
98
|
+
input_table_names=args_dict["table_names"],
|
|
99
|
+
output_file=output_filepath,
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
if __name__ == "__main__":
|
|
104
|
+
main()
|