gammasimtools 0.23.0__py3-none-any.whl → 0.25.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.
Files changed (90) hide show
  1. {gammasimtools-0.23.0.dist-info → gammasimtools-0.25.0.dist-info}/METADATA +1 -1
  2. {gammasimtools-0.23.0.dist-info → gammasimtools-0.25.0.dist-info}/RECORD +89 -85
  3. {gammasimtools-0.23.0.dist-info → gammasimtools-0.25.0.dist-info}/entry_points.txt +1 -0
  4. simtools/_version.py +2 -2
  5. simtools/application_control.py +54 -4
  6. simtools/applications/convert_geo_coordinates_of_array_elements.py +1 -1
  7. simtools/applications/db_add_file_to_db.py +2 -2
  8. simtools/applications/db_add_simulation_model_from_repository_to_db.py +1 -1
  9. simtools/applications/db_add_value_from_json_to_db.py +2 -2
  10. simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +1 -1
  11. simtools/applications/db_generate_compound_indexes.py +1 -1
  12. simtools/applications/db_get_array_layouts_from_db.py +2 -2
  13. simtools/applications/db_get_file_from_db.py +1 -1
  14. simtools/applications/db_get_parameter_from_db.py +1 -1
  15. simtools/applications/db_inspect_databases.py +4 -2
  16. simtools/applications/db_upload_model_repository.py +1 -1
  17. simtools/applications/derive_ctao_array_layouts.py +1 -1
  18. simtools/applications/derive_psf_parameters.py +5 -0
  19. simtools/applications/derive_pulse_shape_parameters.py +195 -0
  20. simtools/applications/generate_array_config.py +1 -1
  21. simtools/applications/maintain_simulation_model_add_production.py +11 -21
  22. simtools/applications/plot_array_layout.py +63 -1
  23. simtools/applications/production_generate_grid.py +1 -1
  24. simtools/applications/simulate_flasher.py +3 -2
  25. simtools/applications/simulate_pedestals.py +1 -1
  26. simtools/applications/simulate_prod.py +8 -23
  27. simtools/applications/simulate_prod_htcondor_generator.py +7 -0
  28. simtools/applications/submit_array_layouts.py +7 -5
  29. simtools/applications/validate_camera_fov.py +1 -1
  30. simtools/applications/validate_cumulative_psf.py +2 -2
  31. simtools/applications/validate_file_using_schema.py +49 -123
  32. simtools/applications/validate_optics.py +1 -1
  33. simtools/configuration/commandline_parser.py +15 -15
  34. simtools/configuration/configurator.py +1 -1
  35. simtools/corsika/corsika_config.py +199 -91
  36. simtools/data_model/model_data_writer.py +15 -3
  37. simtools/data_model/schema.py +145 -36
  38. simtools/data_model/validate_data.py +82 -48
  39. simtools/db/db_handler.py +61 -294
  40. simtools/db/db_model_upload.py +3 -2
  41. simtools/db/mongo_db.py +626 -0
  42. simtools/dependencies.py +38 -17
  43. simtools/io/eventio_handler.py +128 -0
  44. simtools/job_execution/htcondor_script_generator.py +0 -2
  45. simtools/layout/array_layout.py +7 -7
  46. simtools/layout/array_layout_utils.py +4 -4
  47. simtools/model/array_model.py +72 -72
  48. simtools/model/calibration_model.py +12 -9
  49. simtools/model/model_parameter.py +196 -160
  50. simtools/model/model_repository.py +176 -39
  51. simtools/model/model_utils.py +3 -3
  52. simtools/model/site_model.py +59 -27
  53. simtools/model/telescope_model.py +21 -13
  54. simtools/ray_tracing/mirror_panel_psf.py +4 -4
  55. simtools/ray_tracing/psf_analysis.py +11 -8
  56. simtools/ray_tracing/psf_parameter_optimisation.py +823 -680
  57. simtools/reporting/docs_auto_report_generator.py +1 -1
  58. simtools/reporting/docs_read_parameters.py +72 -11
  59. simtools/runners/corsika_runner.py +12 -3
  60. simtools/runners/corsika_simtel_runner.py +6 -0
  61. simtools/runners/runner_services.py +17 -7
  62. simtools/runners/simtel_runner.py +12 -54
  63. simtools/schemas/model_parameters/flasher_pulse_exp_decay.schema.yml +2 -0
  64. simtools/schemas/model_parameters/flasher_pulse_shape.schema.yml +50 -0
  65. simtools/schemas/model_parameters/flasher_pulse_width.schema.yml +2 -0
  66. simtools/schemas/simulation_models_info.schema.yml +4 -1
  67. simtools/simtel/pulse_shapes.py +268 -0
  68. simtools/simtel/simtel_config_writer.py +179 -21
  69. simtools/simtel/simtel_io_event_writer.py +2 -2
  70. simtools/simtel/simulator_array.py +58 -12
  71. simtools/simtel/simulator_light_emission.py +45 -8
  72. simtools/simulator.py +361 -346
  73. simtools/testing/assertions.py +110 -10
  74. simtools/testing/configuration.py +1 -1
  75. simtools/testing/log_inspector.py +4 -1
  76. simtools/testing/sim_telarray_metadata.py +1 -1
  77. simtools/testing/validate_output.py +46 -15
  78. simtools/utils/names.py +2 -4
  79. simtools/utils/value_conversion.py +10 -5
  80. simtools/version.py +61 -0
  81. simtools/visualization/legend_handlers.py +14 -4
  82. simtools/visualization/plot_array_layout.py +229 -33
  83. simtools/visualization/plot_mirrors.py +837 -0
  84. simtools/visualization/plot_pixels.py +1 -1
  85. simtools/visualization/plot_psf.py +1 -1
  86. simtools/visualization/plot_tables.py +1 -1
  87. simtools/simtel/simtel_io_file_info.py +0 -62
  88. {gammasimtools-0.23.0.dist-info → gammasimtools-0.25.0.dist-info}/WHEEL +0 -0
  89. {gammasimtools-0.23.0.dist-info → gammasimtools-0.25.0.dist-info}/licenses/LICENSE +0 -0
  90. {gammasimtools-0.23.0.dist-info → gammasimtools-0.25.0.dist-info}/top_level.txt +0 -0
@@ -44,7 +44,7 @@ def plot(config, output_file, db_config=None):
44
44
  None
45
45
  The function saves the plot to the specified output file.
46
46
  """
47
- db = db_handler.DatabaseHandler(mongo_db_config=db_config)
47
+ db = db_handler.DatabaseHandler(db_config=db_config)
48
48
  db.export_model_file(
49
49
  parameter=config["parameter"],
50
50
  site=config["site"],
@@ -640,7 +640,7 @@ def create_psf_vs_offaxis_plot(tel_model, site_model, args_dict, best_pars, outp
640
640
  logger.info(f"Creating {psf_label_cm} vs off-axis angle plot with best parameters...")
641
641
 
642
642
  # Apply best parameters to telescope model
643
- tel_model.change_multiple_parameters(**best_pars)
643
+ tel_model.overwrite_parameters(best_pars)
644
644
 
645
645
  # Create off-axis angle array
646
646
  max_offset = args_dict.get("max_offset", MAX_OFFSET_DEFAULT)
@@ -131,7 +131,7 @@ def _read_table_from_model_database(table_config, db_config):
131
131
  Table
132
132
  Astropy table
133
133
  """
134
- db = db_handler.DatabaseHandler(mongo_db_config=db_config)
134
+ db = db_handler.DatabaseHandler(db_config=db_config)
135
135
  return db.export_model_file(
136
136
  parameter=table_config["parameter"],
137
137
  site=table_config["site"],
@@ -1,62 +0,0 @@
1
- #!/usr/bin/python3
2
- """Read file info and run headers from sim_telarray files."""
3
-
4
- from eventio import EventIOFile
5
- from eventio.simtel import MCRunHeader, MCShower, RunHeader
6
-
7
-
8
- def get_corsika_run_number(file):
9
- """
10
- Return the CORSIKA run number from a sim_telarray file.
11
-
12
- Parameters
13
- ----------
14
- file: str
15
- Path to the sim_telarray file.
16
-
17
- Returns
18
- -------
19
- int, None
20
- CORSIKA run number. Returns None if not found.
21
- """
22
- run_header = get_corsika_run_header(file)
23
- return run_header.get("run") if run_header else None
24
-
25
-
26
- def get_corsika_run_header(file):
27
- """
28
- Return the CORSIKA run header information from a sim_telarray file.
29
-
30
- Reads both RunHeader and MCRunHeader object from file and
31
- returns a merged dictionary. Adds primary id from the first event.
32
-
33
- Parameters
34
- ----------
35
- file: str
36
- Path to the sim_telarray file.
37
-
38
- Returns
39
- -------
40
- dict, None
41
- CORSIKA run header. Returns None if not found.
42
- """
43
- run_header = None
44
- mc_run_header = None
45
- primary_id = None
46
-
47
- with EventIOFile(file) as f:
48
- for o in f:
49
- if isinstance(o, RunHeader) and run_header is None:
50
- run_header = o.parse()
51
- elif isinstance(o, MCRunHeader) and mc_run_header is None:
52
- mc_run_header = o.parse()
53
- elif isinstance(o, MCShower): # get primary_id from first MCShower
54
- primary_id = o.parse().get("primary_id")
55
- if run_header and mc_run_header and primary_id is not None:
56
- break
57
-
58
- run_header = run_header or {}
59
- mc_run_header = mc_run_header or {}
60
- if primary_id is not None:
61
- mc_run_header["primary_id"] = primary_id
62
- return run_header | mc_run_header or None