gammasimtools 0.24.0__py3-none-any.whl → 0.26.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 (138) hide show
  1. {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/METADATA +2 -1
  2. {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/RECORD +134 -130
  3. {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/entry_points.txt +3 -1
  4. {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/licenses/LICENSE +1 -1
  5. simtools/_version.py +2 -2
  6. simtools/application_control.py +78 -0
  7. simtools/applications/calculate_incident_angles.py +0 -2
  8. simtools/applications/convert_geo_coordinates_of_array_elements.py +1 -2
  9. simtools/applications/db_add_file_to_db.py +1 -1
  10. simtools/applications/db_add_simulation_model_from_repository_to_db.py +1 -1
  11. simtools/applications/db_add_value_from_json_to_db.py +1 -1
  12. simtools/applications/db_generate_compound_indexes.py +1 -1
  13. simtools/applications/db_get_array_layouts_from_db.py +2 -6
  14. simtools/applications/db_get_file_from_db.py +1 -1
  15. simtools/applications/db_get_parameter_from_db.py +1 -1
  16. simtools/applications/db_inspect_databases.py +1 -1
  17. simtools/applications/db_upload_model_repository.py +1 -1
  18. simtools/applications/derive_ctao_array_layouts.py +1 -2
  19. simtools/applications/derive_mirror_rnda.py +1 -3
  20. simtools/applications/derive_psf_parameters.py +5 -1
  21. simtools/applications/derive_pulse_shape_parameters.py +194 -0
  22. simtools/applications/derive_trigger_rates.py +1 -1
  23. simtools/applications/docs_produce_array_element_report.py +2 -8
  24. simtools/applications/docs_produce_calibration_reports.py +1 -3
  25. simtools/applications/docs_produce_model_parameter_reports.py +0 -2
  26. simtools/applications/docs_produce_simulation_configuration_report.py +1 -3
  27. simtools/applications/generate_array_config.py +0 -1
  28. simtools/applications/generate_corsika_histograms.py +48 -235
  29. simtools/applications/generate_regular_arrays.py +5 -35
  30. simtools/applications/generate_simtel_event_data.py +2 -2
  31. simtools/applications/maintain_simulation_model_add_production.py +2 -2
  32. simtools/applications/maintain_simulation_model_write_array_element_positions.py +87 -0
  33. simtools/applications/plot_array_layout.py +64 -108
  34. simtools/applications/plot_simulated_event_distributions.py +57 -0
  35. simtools/applications/plot_tabular_data.py +0 -1
  36. simtools/applications/plot_tabular_data_for_model_parameter.py +1 -6
  37. simtools/applications/production_derive_corsika_limits.py +1 -1
  38. simtools/applications/production_generate_grid.py +0 -1
  39. simtools/applications/run_application.py +1 -1
  40. simtools/applications/simulate_flasher.py +3 -4
  41. simtools/applications/simulate_illuminator.py +0 -1
  42. simtools/applications/simulate_pedestals.py +2 -6
  43. simtools/applications/simulate_prod.py +9 -28
  44. simtools/applications/simulate_prod_htcondor_generator.py +8 -1
  45. simtools/applications/submit_array_layouts.py +7 -7
  46. simtools/applications/submit_model_parameter_from_external.py +1 -3
  47. simtools/applications/validate_camera_efficiency.py +0 -1
  48. simtools/applications/validate_camera_fov.py +0 -1
  49. simtools/applications/validate_cumulative_psf.py +0 -2
  50. simtools/applications/validate_file_using_schema.py +49 -123
  51. simtools/applications/validate_optics.py +0 -13
  52. simtools/camera/camera_efficiency.py +1 -6
  53. simtools/camera/single_photon_electron_spectrum.py +2 -1
  54. simtools/configuration/commandline_parser.py +43 -8
  55. simtools/configuration/configurator.py +6 -11
  56. simtools/corsika/corsika_config.py +204 -99
  57. simtools/corsika/corsika_histograms.py +411 -1735
  58. simtools/corsika/primary_particle.py +1 -1
  59. simtools/data_model/metadata_collector.py +5 -2
  60. simtools/data_model/metadata_model.py +0 -4
  61. simtools/data_model/model_data_writer.py +27 -17
  62. simtools/data_model/schema.py +112 -5
  63. simtools/data_model/validate_data.py +80 -48
  64. simtools/db/db_handler.py +19 -8
  65. simtools/db/db_model_upload.py +2 -1
  66. simtools/db/mongo_db.py +133 -42
  67. simtools/dependencies.py +83 -44
  68. simtools/io/ascii_handler.py +4 -2
  69. simtools/io/table_handler.py +1 -1
  70. simtools/job_execution/htcondor_script_generator.py +0 -2
  71. simtools/layout/array_layout.py +4 -12
  72. simtools/layout/array_layout_utils.py +227 -58
  73. simtools/model/array_model.py +37 -18
  74. simtools/model/calibration_model.py +0 -4
  75. simtools/model/legacy_model_parameter.py +134 -0
  76. simtools/model/model_parameter.py +24 -14
  77. simtools/model/model_repository.py +18 -5
  78. simtools/model/model_utils.py +1 -6
  79. simtools/model/site_model.py +0 -4
  80. simtools/model/telescope_model.py +6 -11
  81. simtools/production_configuration/derive_corsika_limits.py +6 -11
  82. simtools/production_configuration/interpolation_handler.py +16 -16
  83. simtools/ray_tracing/incident_angles.py +5 -11
  84. simtools/ray_tracing/mirror_panel_psf.py +3 -7
  85. simtools/ray_tracing/psf_analysis.py +29 -27
  86. simtools/ray_tracing/psf_parameter_optimisation.py +822 -680
  87. simtools/ray_tracing/ray_tracing.py +6 -15
  88. simtools/reporting/docs_auto_report_generator.py +8 -13
  89. simtools/reporting/docs_read_parameters.py +70 -16
  90. simtools/runners/corsika_runner.py +15 -10
  91. simtools/runners/corsika_simtel_runner.py +9 -8
  92. simtools/runners/runner_services.py +17 -7
  93. simtools/runners/simtel_runner.py +11 -58
  94. simtools/runners/simtools_runner.py +2 -4
  95. simtools/schemas/model_parameters/flasher_pulse_exp_decay.schema.yml +2 -0
  96. simtools/schemas/model_parameters/flasher_pulse_shape.schema.yml +50 -0
  97. simtools/schemas/model_parameters/flasher_pulse_width.schema.yml +2 -0
  98. simtools/schemas/simulation_models_info.schema.yml +2 -0
  99. simtools/settings.py +154 -0
  100. simtools/sim_events/file_info.py +128 -0
  101. simtools/{simtel/simtel_io_event_histograms.py → sim_events/histograms.py} +25 -15
  102. simtools/{simtel/simtel_io_event_reader.py → sim_events/reader.py} +20 -17
  103. simtools/{simtel/simtel_io_event_writer.py → sim_events/writer.py} +84 -25
  104. simtools/simtel/pulse_shapes.py +273 -0
  105. simtools/simtel/simtel_config_writer.py +146 -22
  106. simtools/simtel/simtel_table_reader.py +6 -4
  107. simtools/simtel/simulator_array.py +62 -23
  108. simtools/simtel/simulator_camera_efficiency.py +4 -6
  109. simtools/simtel/simulator_light_emission.py +101 -19
  110. simtools/simtel/simulator_ray_tracing.py +4 -10
  111. simtools/simulator.py +360 -353
  112. simtools/telescope_trigger_rates.py +3 -4
  113. simtools/testing/assertions.py +115 -8
  114. simtools/testing/configuration.py +2 -3
  115. simtools/testing/helpers.py +2 -3
  116. simtools/testing/log_inspector.py +5 -1
  117. simtools/testing/sim_telarray_metadata.py +1 -1
  118. simtools/testing/validate_output.py +69 -23
  119. simtools/utils/general.py +37 -0
  120. simtools/utils/geometry.py +0 -77
  121. simtools/utils/names.py +7 -9
  122. simtools/version.py +37 -0
  123. simtools/visualization/legend_handlers.py +21 -10
  124. simtools/visualization/plot_array_layout.py +312 -41
  125. simtools/visualization/plot_corsika_histograms.py +143 -605
  126. simtools/visualization/plot_mirrors.py +834 -0
  127. simtools/visualization/plot_pixels.py +2 -4
  128. simtools/visualization/plot_psf.py +0 -1
  129. simtools/visualization/plot_simtel_event_histograms.py +4 -4
  130. simtools/visualization/plot_simtel_events.py +6 -11
  131. simtools/visualization/plot_tables.py +8 -19
  132. simtools/visualization/visualize.py +22 -2
  133. simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +0 -160
  134. simtools/applications/print_version.py +0 -53
  135. simtools/io/hdf5_handler.py +0 -139
  136. simtools/simtel/simtel_io_file_info.py +0 -62
  137. {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/WHEEL +0 -0
  138. {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/top_level.txt +0 -0
@@ -85,7 +85,7 @@ def _parse():
85
85
  )
86
86
 
87
87
 
88
- def _layout_from_db(args_dict, db_config):
88
+ def _layout_from_db(args_dict):
89
89
  """
90
90
  Read array elements and their positions from data base using the layout name.
91
91
 
@@ -93,8 +93,6 @@ def _layout_from_db(args_dict, db_config):
93
93
  ----------
94
94
  args_dict : dict
95
95
  Dictionary with the command line arguments.
96
- db_config : dict
97
- Database configuration.
98
96
 
99
97
  Returns
100
98
  -------
@@ -102,7 +100,6 @@ def _layout_from_db(args_dict, db_config):
102
100
  Table with array element positions.
103
101
  """
104
102
  array_model = ArrayModel(
105
- db_config=db_config,
106
103
  model_version=args_dict["model_version"],
107
104
  site=args_dict["site"],
108
105
  layout_name=args_dict.get("array_layout_name", None),
@@ -121,14 +118,13 @@ def main():
121
118
  if app_context.args.get("site", None) is None:
122
119
  raise ValueError("Site must be provided to list available layouts.")
123
120
  site_model = SiteModel(
124
- db_config=app_context.db_config,
125
121
  model_version=app_context.args["model_version"],
126
122
  site=app_context.args["site"],
127
123
  )
128
124
  print(site_model.get_list_of_array_layouts())
129
125
  else:
130
126
  app_context.logger.info("Array layout: %s", app_context.args["array_layout_name"])
131
- layout = _layout_from_db(app_context.args, app_context.db_config)
127
+ layout = _layout_from_db(app_context.args)
132
128
  layout.pprint()
133
129
 
134
130
  if not app_context.args.get("output_file_from_default", False):
@@ -60,7 +60,7 @@ def main():
60
60
  """Get file from database."""
61
61
  app_context = startup_application(_parse)
62
62
 
63
- db = db_handler.DatabaseHandler(db_config=app_context.db_config)
63
+ db = db_handler.DatabaseHandler()
64
64
  file_id = db.export_model_files(
65
65
  dest=app_context.io_handler.get_output_directory(),
66
66
  file_names=app_context.args["file_name"],
@@ -108,7 +108,7 @@ def main():
108
108
  """Get a parameter entry from DB for a specific telescope or a site."""
109
109
  app_context = startup_application(_parse)
110
110
 
111
- db = db_handler.DatabaseHandler(db_config=app_context.db_config)
111
+ db = db_handler.DatabaseHandler()
112
112
 
113
113
  pars = db.get_model_parameter(
114
114
  parameter=app_context.args["parameter"],
@@ -32,7 +32,7 @@ def main():
32
32
  """Inspect databases."""
33
33
  app_context = startup_application(_parse, setup_io_handler=False)
34
34
 
35
- db = db_handler.DatabaseHandler(db_config=app_context.db_config)
35
+ db = db_handler.DatabaseHandler()
36
36
  # databases without internal databases we don't have rights to modify
37
37
  databases = [
38
38
  d
@@ -87,7 +87,7 @@ def main():
87
87
  """Application main."""
88
88
  app_context = startup_application(_parse)
89
89
 
90
- db = db_handler.DatabaseHandler(db_config=app_context.db_config)
90
+ db = db_handler.DatabaseHandler()
91
91
  db.print_connection_info()
92
92
 
93
93
  db_model_upload.add_complete_model(
@@ -92,7 +92,7 @@ def main():
92
92
  branch_name=app_context.args["repository_branch"],
93
93
  )
94
94
 
95
- db = db_handler.DatabaseHandler(db_config=app_context.db_config)
95
+ db = db_handler.DatabaseHandler()
96
96
  db_array_layouts = db.get_model_parameter(
97
97
  parameter="array_layouts",
98
98
  site=app_context.args["site"],
@@ -107,7 +107,6 @@ def main():
107
107
  write_array_layouts(
108
108
  array_layouts=merge_array_layouts(db_array_layouts["array_layouts"], ctao_array_layouts),
109
109
  args_dict=app_context.args,
110
- db_config=app_context.db_config,
111
110
  )
112
111
 
113
112
 
@@ -218,9 +218,7 @@ def main():
218
218
  """Derive mirror random reflection angle of a single mirror panel."""
219
219
  app_context = startup_application(_parse)
220
220
 
221
- panel_psf = MirrorPanelPSF(
222
- app_context.args.get("label"), app_context.args, app_context.db_config
223
- )
221
+ panel_psf = MirrorPanelPSF(app_context.args.get("label"), app_context.args)
224
222
  panel_psf.derive_random_reflection_angle(save_figures=True)
225
223
  panel_psf.print_results()
226
224
  panel_psf.write_optimization_data()
@@ -187,6 +187,11 @@ def _parse():
187
187
  type=float,
188
188
  default=0.8,
189
189
  )
190
+ config.parser.add_argument(
191
+ "--cleanup",
192
+ help="Remove intermediate *.log and *.lis* files after optimization.",
193
+ action="store_true",
194
+ )
190
195
  return config.initialize(
191
196
  db_config=True,
192
197
  simulation_model=["telescope", "model_version", "parameter_version"],
@@ -199,7 +204,6 @@ def main():
199
204
 
200
205
  tel_model, site_model, _ = initialize_simulation_models(
201
206
  label=app_context.args.get("label"),
202
- db_config=app_context.db_config,
203
207
  site=app_context.args["site"],
204
208
  telescope_name=app_context.args["telescope"],
205
209
  model_version=app_context.args["model_version"],
@@ -0,0 +1,194 @@
1
+ #!/usr/bin/env python3
2
+ r"""Derive Gaussian sigma and exponential tau from specified rise/fall widths.
3
+
4
+ Solve (sigma, tau) for a Gaussian convolved with a causal exponential so the
5
+ pulse matches user-provided rise and fall widths between fractional amplitude
6
+ levels (e.g. 0.1-0.9 rise, 0.9-0.1 fall).
7
+
8
+ Command line arguments
9
+ ----------------------
10
+ site (str, required)
11
+ North or South.
12
+ telescope (str, required)
13
+ Telescope model name.
14
+ model_version (str, required)
15
+ Model version.
16
+ parameter_version (str, required)
17
+ Parameter version.
18
+ rise_width_ns (float, required)
19
+ Rising-edge width between rise_range fractions (ns).
20
+ fall_width_ns (float, required)
21
+ Falling-edge width between fall_range fractions (ns).
22
+ rise_range (float float, optional)
23
+ Fractional amplitudes (low high) for rise width (default: 0.1 0.9).
24
+ fall_range (float float, optional)
25
+ Fractional amplitudes (high low) for fall width (default: 0.9 0.1).
26
+ dt_ns (float, optional)
27
+ Time sampling step (ns). Default: 0.1.
28
+ time_margin_ns (float, optional)
29
+ Margin added at both ends of readout window. Default: 5.
30
+
31
+
32
+ Example
33
+ -------
34
+ Derive parameters for a pulse with 2.5 ns rise (10-90%) and
35
+ 5 ns fall (90-10%) for LSTN-01:
36
+
37
+ .. code-block:: console
38
+
39
+ simtools-derive-pulse-shape-parameters \
40
+ --site North \
41
+ --telescope MSTx-NectarCam \
42
+ --model_version 7.0 \
43
+ --parameter_version 1.0.0 \
44
+ --rise_width_ns 2.5 \
45
+ --fall_width_ns 5.0 \
46
+ --rise_range 0.1 0.9 \
47
+ --fall_range 0.9 0.1 \
48
+ --dt_ns 0.1 \
49
+ --time_margin_ns 10
50
+ """
51
+
52
+ import logging
53
+
54
+ import simtools.data_model.model_data_writer as writer
55
+ from simtools.application_control import get_application_label, startup_application
56
+ from simtools.configuration import configurator
57
+ from simtools.model.model_utils import initialize_simulation_models
58
+ from simtools.simtel.pulse_shapes import solve_sigma_tau_from_rise_fall
59
+
60
+
61
+ def _parse():
62
+ """Parse command line configuration for parameter derivation."""
63
+ config = configurator.Configurator(
64
+ label=get_application_label(__file__),
65
+ description=(
66
+ "Derive Gaussian sigma and exponential tau from rise/fall width specifications."
67
+ ),
68
+ )
69
+
70
+ config.parser.add_argument(
71
+ "--rise_width_ns",
72
+ help="Wdth on the rising edge in ns between rise_range fractions.",
73
+ type=float,
74
+ required=True,
75
+ )
76
+ config.parser.add_argument(
77
+ "--fall_width_ns",
78
+ help="Width on the falling edge in ns between fall_range fractions.",
79
+ type=float,
80
+ required=True,
81
+ )
82
+ config.parser.add_argument(
83
+ "--rise_range",
84
+ help="Fractional amplitudes (low high) for rise width, e.g. 0.1 0.9",
85
+ type=float,
86
+ nargs=2,
87
+ default=[0.1, 0.9],
88
+ required=False,
89
+ )
90
+ config.parser.add_argument(
91
+ "--fall_range",
92
+ help="Fractional amplitudes (high low) for fall width, e.g. 0.9 0.1",
93
+ type=float,
94
+ nargs=2,
95
+ default=[0.9, 0.1],
96
+ required=False,
97
+ )
98
+ config.parser.add_argument(
99
+ "--dt_ns",
100
+ help="Time sampling step in ns used by the solver.",
101
+ type=float,
102
+ default=0.1,
103
+ required=False,
104
+ )
105
+ config.parser.add_argument(
106
+ "--time_margin_ns",
107
+ help=(
108
+ "Margin (ns) added to both ends of the instrument readout window when deriving the "
109
+ "internal time window."
110
+ ),
111
+ type=float,
112
+ default=10.0,
113
+ required=False,
114
+ )
115
+
116
+ return config.initialize(
117
+ db_config=True,
118
+ simulation_model=["site", "telescope", "model_version", "parameter_version"],
119
+ output=True,
120
+ )
121
+
122
+
123
+ def main():
124
+ """Run parameter derivation and write results."""
125
+ app_context = startup_application(_parse)
126
+ log = logging.getLogger(__name__)
127
+
128
+ rise_width_ns = app_context.args["rise_width_ns"]
129
+ fall_width_ns = app_context.args["fall_width_ns"]
130
+ rise_range = tuple(app_context.args["rise_range"])
131
+ fall_range = tuple(app_context.args["fall_range"])
132
+ dt_ns = app_context.args["dt_ns"]
133
+ time_margin_ns = app_context.args["time_margin_ns"]
134
+ site = app_context.args["site"]
135
+ label = app_context.args.get("label") or get_application_label(__file__)
136
+ telescope_model, _, _ = initialize_simulation_models(
137
+ label=label,
138
+ model_version=app_context.args["model_version"],
139
+ site=site,
140
+ telescope_name=app_context.args["telescope"],
141
+ )
142
+ fadc_sum_bins = telescope_model.get_parameter_value("fadc_sum_bins")
143
+
144
+ window_ns = fadc_sum_bins + time_margin_ns
145
+ t_start_ns = -window_ns
146
+ t_stop_ns = window_ns
147
+
148
+ sigma_ns, tau_ns = solve_sigma_tau_from_rise_fall(
149
+ rise_width_ns=rise_width_ns,
150
+ fall_width_ns=fall_width_ns,
151
+ dt_ns=dt_ns,
152
+ rise_range=rise_range,
153
+ t_start_ns=t_start_ns,
154
+ t_stop_ns=t_stop_ns,
155
+ )
156
+ # Apply reasonable rounding for output precision.
157
+ sigma_ns = round(sigma_ns, 4)
158
+ tau_ns = round(tau_ns, 4)
159
+
160
+ log.info(
161
+ f"Derived pulse parameters: sigma={sigma_ns:.6g} ns, tau={tau_ns:.6g} ns "
162
+ f"(rise={rise_width_ns} ns @ {rise_range}, fall={fall_width_ns} ns @ {fall_range})"
163
+ )
164
+
165
+ output_path = app_context.args.get("output_path")
166
+ instrument = app_context.args.get("telescope")
167
+ parameter_version = app_context.args.get("parameter_version")
168
+
169
+ writer.ModelDataWriter.dump_model_parameter(
170
+ parameter_name="flasher_pulse_width",
171
+ value=sigma_ns,
172
+ instrument=instrument,
173
+ parameter_version=parameter_version,
174
+ output_file="flasher_pulse_width.json",
175
+ output_path=output_path,
176
+ unit="ns",
177
+ )
178
+ writer.ModelDataWriter.dump_model_parameter(
179
+ parameter_name="flasher_pulse_exp_decay",
180
+ value=tau_ns,
181
+ instrument=instrument,
182
+ parameter_version=parameter_version,
183
+ output_file="flasher_pulse_exp_decay.json",
184
+ output_path=output_path,
185
+ unit="ns",
186
+ )
187
+ log.info(
188
+ f"Wrote model parameter files flasher_pulse_width.json and "
189
+ f"flasher_pulse_exp_decay.json (sigma={sigma_ns:.6g} ns, tau={tau_ns:.6g} ns)"
190
+ )
191
+
192
+
193
+ if __name__ == "__main__":
194
+ main()
@@ -81,7 +81,7 @@ def main():
81
81
  """Derive trigger rates for a single telescope or an array of telescopes."""
82
82
  app_context = startup_application(_parse)
83
83
 
84
- telescope_trigger_rates(app_context.args, app_context.db_config)
84
+ telescope_trigger_rates(app_context.args)
85
85
 
86
86
 
87
87
  if __name__ == "__main__":
@@ -61,18 +61,12 @@ def main():
61
61
  app_context.args.get("all_model_versions"),
62
62
  ]
63
63
  ):
64
- ReportGenerator(
65
- app_context.db_config,
66
- app_context.args,
67
- output_path,
68
- ).auto_generate_array_element_reports()
64
+ ReportGenerator(app_context.args, output_path).auto_generate_array_element_reports()
69
65
 
70
66
  else:
71
67
  model_version = app_context.args["model_version"]
72
68
  ReadParameters(
73
- app_context.db_config,
74
- app_context.args,
75
- Path(output_path / f"{model_version}"),
69
+ app_context.args, Path(output_path / f"{model_version}")
76
70
  ).produce_array_element_report()
77
71
 
78
72
  app_context.logger.info(
@@ -32,9 +32,7 @@ def main():
32
32
 
33
33
  output_path = app_context.io_handler.get_output_directory()
34
34
 
35
- generator = ReportGenerator(
36
- db_config=app_context.db_config, args=app_context.args, output_path=output_path
37
- )
35
+ generator = ReportGenerator(args=app_context.args, output_path=output_path)
38
36
  generator.auto_generate_calibration_reports()
39
37
 
40
38
  if app_context.args.get("all_model_versions"):
@@ -41,14 +41,12 @@ def main():
41
41
 
42
42
  if any([app_context.args.get("all_telescopes"), app_context.args.get("all_sites")]):
43
43
  ReportGenerator(
44
- app_context.db_config,
45
44
  app_context.args,
46
45
  output_path,
47
46
  ).auto_generate_parameter_reports()
48
47
 
49
48
  else:
50
49
  ReadParameters(
51
- app_context.db_config,
52
50
  app_context.args,
53
51
  output_path,
54
52
  ).produce_model_parameter_reports()
@@ -33,9 +33,7 @@ def main():
33
33
 
34
34
  output_path = app_context.io_handler.get_output_directory()
35
35
 
36
- report_generator = ReportGenerator(
37
- db_config=app_context.db_config, args=app_context.args, output_path=output_path
38
- )
36
+ report_generator = ReportGenerator(args=app_context.args, output_path=output_path)
39
37
  report_generator.auto_generate_simulation_configuration_reports()
40
38
 
41
39
  app_context.logger.info(
@@ -46,7 +46,6 @@ def main():
46
46
  array_model = ArrayModel(
47
47
  label=app_context.args["label"],
48
48
  model_version=app_context.args["model_version"],
49
- db_config=app_context.db_config,
50
49
  site=app_context.args.get("site"),
51
50
  layout_name=app_context.args.get("array_layout_name"),
52
51
  array_elements=app_context.args.get("array_elements"),