gammasimtools 0.8.1__py3-none-any.whl → 0.8.2__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 (247) hide show
  1. {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/METADATA +2 -1
  2. {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/RECORD +246 -247
  3. simtools/_dev_version/__init__.py +9 -0
  4. simtools/_version.py +2 -2
  5. simtools/applications/generate_simtel_array_histograms.py +1 -1
  6. simtools/applications/validate_camera_fov.py +1 -1
  7. simtools/applications/validate_file_using_schema.py +2 -4
  8. simtools/configuration/commandline_parser.py +2 -2
  9. simtools/constants.py +3 -3
  10. simtools/data_model/metadata_collector.py +1 -1
  11. simtools/model/array_model.py +30 -26
  12. simtools/model/calibration_model.py +10 -10
  13. simtools/model/camera.py +76 -62
  14. simtools/model/mirrors.py +8 -6
  15. simtools/model/model_parameter.py +2 -2
  16. simtools/model/model_utils.py +6 -6
  17. simtools/model/site_model.py +1 -1
  18. simtools/model/telescope_model.py +26 -22
  19. simtools/schemas/model_parameters/adjust_gain.schema.yml +1 -1
  20. simtools/schemas/model_parameters/altitude.schema.yml +1 -1
  21. simtools/schemas/model_parameters/array_coordinates.schema.yml +1 -1
  22. simtools/schemas/model_parameters/array_coordinates_UTM.schema.yml +1 -1
  23. simtools/schemas/model_parameters/array_element_position_ground.schema.yml +1 -1
  24. simtools/schemas/model_parameters/array_element_position_utm.schema.yml +1 -1
  25. simtools/schemas/model_parameters/array_layouts.schema.yml +1 -1
  26. simtools/schemas/model_parameters/array_triggers.schema.yml +1 -1
  27. simtools/schemas/model_parameters/asum_clipping.schema.yml +1 -1
  28. simtools/schemas/model_parameters/asum_offset.schema.yml +1 -1
  29. simtools/schemas/model_parameters/asum_shaping.schema.yml +1 -1
  30. simtools/schemas/model_parameters/asum_threshold.schema.yml +1 -1
  31. simtools/schemas/model_parameters/atmospheric_profile.schema.yml +1 -1
  32. simtools/schemas/model_parameters/atmospheric_transmission.schema.yml +1 -1
  33. simtools/schemas/model_parameters/axes_offsets.schema.yml +1 -1
  34. simtools/schemas/model_parameters/camera_body_diameter.schema.yml +1 -1
  35. simtools/schemas/model_parameters/camera_body_shape.schema.yml +1 -1
  36. simtools/schemas/model_parameters/camera_config_file.schema.yml +1 -1
  37. simtools/schemas/model_parameters/camera_config_rotate.schema.yml +1 -1
  38. simtools/schemas/model_parameters/camera_degraded_efficiency.schema.yml +1 -1
  39. simtools/schemas/model_parameters/camera_degraded_map.schema.yml +1 -1
  40. simtools/schemas/model_parameters/camera_depth.schema.yml +1 -1
  41. simtools/schemas/model_parameters/camera_filter.schema.yml +1 -1
  42. simtools/schemas/model_parameters/camera_filter_incidence_angle.schema.yml +1 -1
  43. simtools/schemas/model_parameters/camera_pixels.schema.yml +1 -1
  44. simtools/schemas/model_parameters/camera_transmission.schema.yml +1 -1
  45. simtools/schemas/model_parameters/channels_per_chip.schema.yml +1 -1
  46. simtools/schemas/model_parameters/correct_nsb_spectrum_to_telescope_altitude.schema.yml +1 -1
  47. simtools/schemas/model_parameters/corsika_cherenkov_photon_bunch_size.schema.yml +1 -1
  48. simtools/schemas/model_parameters/corsika_cherenkov_photon_wavelength_range.schema.yml +1 -1
  49. simtools/schemas/model_parameters/corsika_first_interaction_height.schema.yml +1 -1
  50. simtools/schemas/model_parameters/corsika_iact_io_buffer.schema.yml +1 -1
  51. simtools/schemas/model_parameters/corsika_iact_max_bunches.schema.yml +1 -1
  52. simtools/schemas/model_parameters/corsika_iact_split_auto.schema.yml +1 -1
  53. simtools/schemas/model_parameters/corsika_longitudinal_shower_development.schema.yml +1 -1
  54. simtools/schemas/model_parameters/corsika_observation_level.schema.yml +1 -1
  55. simtools/schemas/model_parameters/corsika_particle_kinetic_energy_cutoff.schema.yml +1 -1
  56. simtools/schemas/model_parameters/corsika_starting_grammage.schema.yml +1 -1
  57. simtools/schemas/model_parameters/dark_events.schema.yml +1 -1
  58. simtools/schemas/model_parameters/default_trigger.schema.yml +1 -1
  59. simtools/schemas/model_parameters/design_model.schema.yml +1 -1
  60. simtools/schemas/model_parameters/disc_ac_coupled.schema.yml +1 -1
  61. simtools/schemas/model_parameters/disc_bins.schema.yml +1 -1
  62. simtools/schemas/model_parameters/disc_start.schema.yml +1 -1
  63. simtools/schemas/model_parameters/discriminator_amplitude.schema.yml +1 -1
  64. simtools/schemas/model_parameters/discriminator_fall_time.schema.yml +1 -1
  65. simtools/schemas/model_parameters/discriminator_gate_length.schema.yml +1 -1
  66. simtools/schemas/model_parameters/discriminator_hysteresis.schema.yml +1 -1
  67. simtools/schemas/model_parameters/discriminator_output_amplitude.schema.yml +1 -1
  68. simtools/schemas/model_parameters/discriminator_output_var_percent.schema.yml +1 -1
  69. simtools/schemas/model_parameters/discriminator_pulse_shape.schema.yml +1 -1
  70. simtools/schemas/model_parameters/discriminator_rise_time.schema.yml +1 -1
  71. simtools/schemas/model_parameters/discriminator_scale_threshold.schema.yml +1 -1
  72. simtools/schemas/model_parameters/discriminator_sigsum_over_threshold.schema.yml +1 -1
  73. simtools/schemas/model_parameters/discriminator_threshold.schema.yml +1 -1
  74. simtools/schemas/model_parameters/discriminator_time_over_threshold.schema.yml +1 -1
  75. simtools/schemas/model_parameters/discriminator_var_gate_length.schema.yml +1 -1
  76. simtools/schemas/model_parameters/discriminator_var_sigsum_over_threshold.schema.yml +1 -1
  77. simtools/schemas/model_parameters/discriminator_var_threshold.schema.yml +1 -1
  78. simtools/schemas/model_parameters/discriminator_var_time_over_threshold.schema.yml +1 -1
  79. simtools/schemas/model_parameters/dish_shape_length.schema.yml +1 -1
  80. simtools/schemas/model_parameters/dsum_clipping.schema.yml +1 -1
  81. simtools/schemas/model_parameters/dsum_ignore_below.schema.yml +1 -1
  82. simtools/schemas/model_parameters/dsum_offset.schema.yml +1 -1
  83. simtools/schemas/model_parameters/dsum_pedsub.schema.yml +1 -1
  84. simtools/schemas/model_parameters/dsum_pre_clipping.schema.yml +1 -1
  85. simtools/schemas/model_parameters/dsum_prescale.schema.yml +1 -1
  86. simtools/schemas/model_parameters/dsum_presum_max.schema.yml +1 -1
  87. simtools/schemas/model_parameters/dsum_presum_shift.schema.yml +1 -1
  88. simtools/schemas/model_parameters/dsum_shaping.schema.yml +1 -1
  89. simtools/schemas/model_parameters/dsum_shaping_renormalize.schema.yml +1 -1
  90. simtools/schemas/model_parameters/dsum_threshold.schema.yml +1 -1
  91. simtools/schemas/model_parameters/dsum_zero_clip.schema.yml +1 -1
  92. simtools/schemas/model_parameters/effective_focal_length.schema.yml +1 -1
  93. simtools/schemas/model_parameters/epsg_code.schema.yml +1 -1
  94. simtools/schemas/model_parameters/fadc_ac_coupled.schema.yml +1 -1
  95. simtools/schemas/model_parameters/fadc_amplitude.schema.yml +1 -1
  96. simtools/schemas/model_parameters/fadc_bins.schema.yml +1 -1
  97. simtools/schemas/model_parameters/fadc_compensate_pedestal.schema.yml +1 -1
  98. simtools/schemas/model_parameters/fadc_dev_pedestal.schema.yml +1 -1
  99. simtools/schemas/model_parameters/fadc_err_compensate_pedestal.schema.yml +1 -1
  100. simtools/schemas/model_parameters/fadc_err_pedestal.schema.yml +1 -1
  101. simtools/schemas/model_parameters/fadc_lg_amplitude.schema.yml +1 -1
  102. simtools/schemas/model_parameters/fadc_lg_compensate_pedestal.schema.yml +1 -1
  103. simtools/schemas/model_parameters/fadc_lg_dev_pedestal.schema.yml +1 -1
  104. simtools/schemas/model_parameters/fadc_lg_err_compensate_pedestal.schema.yml +1 -1
  105. simtools/schemas/model_parameters/fadc_lg_err_pedestal.schema.yml +1 -1
  106. simtools/schemas/model_parameters/fadc_lg_max_signal.schema.yml +1 -1
  107. simtools/schemas/model_parameters/fadc_lg_max_sum.schema.yml +1 -1
  108. simtools/schemas/model_parameters/fadc_lg_noise.schema.yml +1 -1
  109. simtools/schemas/model_parameters/fadc_lg_pedestal.schema.yml +1 -1
  110. simtools/schemas/model_parameters/fadc_lg_sensitivity.schema.yml +1 -1
  111. simtools/schemas/model_parameters/fadc_lg_sysvar_pedestal.schema.yml +1 -1
  112. simtools/schemas/model_parameters/fadc_lg_var_pedestal.schema.yml +1 -1
  113. simtools/schemas/model_parameters/fadc_lg_var_sensitivity.schema.yml +1 -1
  114. simtools/schemas/model_parameters/fadc_max_signal.schema.yml +1 -1
  115. simtools/schemas/model_parameters/fadc_max_sum.schema.yml +1 -1
  116. simtools/schemas/model_parameters/fadc_mhz.schema.yml +1 -1
  117. simtools/schemas/model_parameters/fadc_noise.schema.yml +1 -1
  118. simtools/schemas/model_parameters/fadc_pedestal.schema.yml +1 -1
  119. simtools/schemas/model_parameters/fadc_pulse_shape.schema.yml +1 -1
  120. simtools/schemas/model_parameters/fadc_sensitivity.schema.yml +1 -1
  121. simtools/schemas/model_parameters/fadc_sum_bins.schema.yml +1 -1
  122. simtools/schemas/model_parameters/fadc_sum_offset.schema.yml +1 -1
  123. simtools/schemas/model_parameters/fadc_sysvar_pedestal.schema.yml +1 -1
  124. simtools/schemas/model_parameters/fadc_var_pedestal.schema.yml +1 -1
  125. simtools/schemas/model_parameters/fadc_var_sensitivity.schema.yml +1 -1
  126. simtools/schemas/model_parameters/flatfielding.schema.yml +1 -1
  127. simtools/schemas/model_parameters/focal_length.schema.yml +1 -1
  128. simtools/schemas/model_parameters/focal_surface_parameters.schema.yml +1 -1
  129. simtools/schemas/model_parameters/focal_surface_ref_radius.schema.yml +1 -1
  130. simtools/schemas/model_parameters/focus_offset.schema.yml +1 -1
  131. simtools/schemas/model_parameters/gain_variation.schema.yml +1 -1
  132. simtools/schemas/model_parameters/geomag_horizontal.schema.yml +1 -1
  133. simtools/schemas/model_parameters/geomag_rotation.schema.yml +1 -1
  134. simtools/schemas/model_parameters/geomag_vertical.schema.yml +1 -1
  135. simtools/schemas/model_parameters/hg_lg_variation.schema.yml +1 -1
  136. simtools/schemas/model_parameters/iobuf_maximum.schema.yml +1 -1
  137. simtools/schemas/model_parameters/iobuf_output_maximum.schema.yml +1 -1
  138. simtools/schemas/model_parameters/laser_events.schema.yml +1 -1
  139. simtools/schemas/model_parameters/laser_external_trigger.schema.yml +1 -1
  140. simtools/schemas/model_parameters/laser_photons.schema.yml +1 -1
  141. simtools/schemas/model_parameters/laser_pulse_exptime.schema.yml +1 -1
  142. simtools/schemas/model_parameters/laser_pulse_offset.schema.yml +1 -1
  143. simtools/schemas/model_parameters/laser_pulse_sigtime.schema.yml +1 -1
  144. simtools/schemas/model_parameters/laser_pulse_twidth.schema.yml +1 -1
  145. simtools/schemas/model_parameters/laser_var_photons.schema.yml +1 -1
  146. simtools/schemas/model_parameters/laser_wavelength.schema.yml +1 -1
  147. simtools/schemas/model_parameters/led_events.schema.yml +1 -1
  148. simtools/schemas/model_parameters/led_photons.schema.yml +1 -1
  149. simtools/schemas/model_parameters/led_pulse_offset.schema.yml +1 -1
  150. simtools/schemas/model_parameters/led_pulse_sigtime.schema.yml +1 -1
  151. simtools/schemas/model_parameters/led_var_photons.schema.yml +1 -1
  152. simtools/schemas/model_parameters/lightguide_efficiency_vs_incidence_angle.schema.yml +1 -1
  153. simtools/schemas/model_parameters/lightguide_efficiency_vs_wavelength.schema.yml +1 -1
  154. simtools/schemas/model_parameters/min_photoelectrons.schema.yml +1 -1
  155. simtools/schemas/model_parameters/min_photons.schema.yml +1 -1
  156. simtools/schemas/model_parameters/mirror_align_random_distance.schema.yml +1 -1
  157. simtools/schemas/model_parameters/mirror_align_random_horizontal.schema.yml +1 -1
  158. simtools/schemas/model_parameters/mirror_align_random_vertical.schema.yml +1 -1
  159. simtools/schemas/model_parameters/mirror_class.schema.yml +1 -1
  160. simtools/schemas/model_parameters/mirror_degraded_reflection.schema.yml +1 -1
  161. simtools/schemas/model_parameters/mirror_focal_length.schema.yml +1 -1
  162. simtools/schemas/model_parameters/mirror_list.schema.yml +1 -1
  163. simtools/schemas/model_parameters/mirror_offset.schema.yml +1 -1
  164. simtools/schemas/model_parameters/mirror_panel_2f_measurements.schema.yml +1 -1
  165. simtools/schemas/model_parameters/mirror_reflection_random_angle.schema.yml +1 -1
  166. simtools/schemas/model_parameters/mirror_reflectivity.schema.yml +1 -1
  167. simtools/schemas/model_parameters/multiplicity_offset.schema.yml +1 -1
  168. simtools/schemas/model_parameters/nsb_autoscale_airmass.schema.yml +1 -1
  169. simtools/schemas/model_parameters/nsb_gain_drop_scale.schema.yml +1 -1
  170. simtools/schemas/model_parameters/nsb_offaxis.schema.yml +1 -1
  171. simtools/schemas/model_parameters/nsb_pixel_rate.schema.yml +1 -1
  172. simtools/schemas/model_parameters/nsb_reference_spectrum.schema.yml +1 -1
  173. simtools/schemas/model_parameters/nsb_reference_value.schema.yml +1 -1
  174. simtools/schemas/model_parameters/nsb_scaling_factor.schema.yml +1 -1
  175. simtools/schemas/model_parameters/nsb_skymap.schema.yml +1 -1
  176. simtools/schemas/model_parameters/nsb_spectrum.schema.yml +1 -1
  177. simtools/schemas/model_parameters/num_gains.schema.yml +1 -1
  178. simtools/schemas/model_parameters/only_triggered_telescopes.schema.yml +1 -1
  179. simtools/schemas/model_parameters/optics_properties.schema.yml +1 -1
  180. simtools/schemas/model_parameters/parabolic_dish.schema.yml +1 -1
  181. simtools/schemas/model_parameters/pedestal_events.schema.yml +1 -1
  182. simtools/schemas/model_parameters/photon_delay.schema.yml +1 -1
  183. simtools/schemas/model_parameters/photons_per_run.schema.yml +1 -1
  184. simtools/schemas/model_parameters/pixel_cells.schema.yml +1 -1
  185. simtools/schemas/model_parameters/pixels_parallel.schema.yml +1 -1
  186. simtools/schemas/model_parameters/pixeltrg_time_step.schema.yml +1 -1
  187. simtools/schemas/model_parameters/pm_average_gain.schema.yml +1 -1
  188. simtools/schemas/model_parameters/pm_collection_efficiency.schema.yml +1 -1
  189. simtools/schemas/model_parameters/pm_gain_index.schema.yml +1 -1
  190. simtools/schemas/model_parameters/pm_photoelectron_spectrum.schema.yml +1 -1
  191. simtools/schemas/model_parameters/pm_transit_time.schema.yml +1 -1
  192. simtools/schemas/model_parameters/pm_voltage_variation.schema.yml +1 -1
  193. simtools/schemas/model_parameters/primary_mirror_degraded_map.schema.yml +1 -1
  194. simtools/schemas/model_parameters/primary_mirror_diameter.schema.yml +1 -1
  195. simtools/schemas/model_parameters/primary_mirror_hole_diameter.schema.yml +1 -1
  196. simtools/schemas/model_parameters/primary_mirror_incidence_angle.schema.yml +1 -1
  197. simtools/schemas/model_parameters/primary_mirror_parameters.schema.yml +1 -1
  198. simtools/schemas/model_parameters/primary_mirror_ref_radius.schema.yml +1 -1
  199. simtools/schemas/model_parameters/primary_mirror_segmentation.schema.yml +1 -1
  200. simtools/schemas/model_parameters/qe_variation.schema.yml +1 -1
  201. simtools/schemas/model_parameters/quantum_efficiency.schema.yml +1 -1
  202. simtools/schemas/model_parameters/random_focal_length.schema.yml +1 -1
  203. simtools/schemas/model_parameters/random_generator.schema.yml +1 -1
  204. simtools/schemas/model_parameters/reference_point_altitude.schema.yml +1 -1
  205. simtools/schemas/model_parameters/reference_point_latitude.schema.yml +1 -1
  206. simtools/schemas/model_parameters/reference_point_longitude.schema.yml +1 -1
  207. simtools/schemas/model_parameters/reference_point_utm_east.schema.yml +1 -1
  208. simtools/schemas/model_parameters/reference_point_utm_north.schema.yml +1 -1
  209. simtools/schemas/model_parameters/sampled_output.schema.yml +1 -1
  210. simtools/schemas/model_parameters/save_pe_with_amplitude.schema.yml +1 -1
  211. simtools/schemas/model_parameters/secondary_mirror_baffle.schema.yml +1 -1
  212. simtools/schemas/model_parameters/secondary_mirror_degraded_map.schema.yml +1 -1
  213. simtools/schemas/model_parameters/secondary_mirror_degraded_reflection.schema.yml +1 -1
  214. simtools/schemas/model_parameters/secondary_mirror_diameter.schema.yml +1 -1
  215. simtools/schemas/model_parameters/secondary_mirror_hole_diameter.schema.yml +1 -1
  216. simtools/schemas/model_parameters/secondary_mirror_incidence_angle.schema.yml +1 -1
  217. simtools/schemas/model_parameters/secondary_mirror_parameters.schema.yml +1 -1
  218. simtools/schemas/model_parameters/secondary_mirror_ref_radius.schema.yml +1 -1
  219. simtools/schemas/model_parameters/secondary_mirror_reflectivity.schema.yml +1 -1
  220. simtools/schemas/model_parameters/secondary_mirror_segmentation.schema.yml +1 -1
  221. simtools/schemas/model_parameters/secondary_mirror_shadow_diameter.schema.yml +1 -1
  222. simtools/schemas/model_parameters/secondary_mirror_shadow_offset.schema.yml +1 -1
  223. simtools/schemas/model_parameters/store_photoelectrons.schema.yml +1 -1
  224. simtools/schemas/model_parameters/tailcut_scale.schema.yml +1 -1
  225. simtools/schemas/model_parameters/telescope_axis_height.schema.yml +1 -1
  226. simtools/schemas/model_parameters/telescope_random_angle.schema.yml +1 -1
  227. simtools/schemas/model_parameters/telescope_random_error.schema.yml +1 -1
  228. simtools/schemas/model_parameters/telescope_sphere_radius.schema.yml +1 -1
  229. simtools/schemas/model_parameters/telescope_transmission.schema.yml +1 -1
  230. simtools/schemas/model_parameters/teltrig_min_sigsum.schema.yml +1 -1
  231. simtools/schemas/model_parameters/teltrig_min_time.schema.yml +1 -1
  232. simtools/schemas/model_parameters/transit_time_calib_error.schema.yml +1 -1
  233. simtools/schemas/model_parameters/transit_time_compensate_error.schema.yml +1 -1
  234. simtools/schemas/model_parameters/transit_time_compensate_step.schema.yml +1 -1
  235. simtools/schemas/model_parameters/transit_time_error.schema.yml +1 -1
  236. simtools/schemas/model_parameters/transit_time_jitter.schema.yml +1 -1
  237. simtools/schemas/model_parameters/trigger_current_limit.schema.yml +1 -1
  238. simtools/schemas/model_parameters/trigger_delay_compensation.schema.yml +1 -1
  239. simtools/schemas/model_parameters/trigger_pixels.schema.yml +1 -1
  240. simtools/testing/validate_output.py +2 -2
  241. simtools/utils/names.py +3 -4
  242. simtools/version.py +1 -1
  243. simtools/_dev_version/scm_version.py +0 -10
  244. {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/LICENSE +0 -0
  245. {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/WHEEL +0 -0
  246. {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/entry_points.txt +0 -0
  247. {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,9 @@
1
+ # Try to use setuptools_scm to get the current version; this is only used
2
+ # in development installations from the git repository.
3
+ # see src/simtools/version.py for details
4
+ try:
5
+ from setuptools_scm import get_version
6
+
7
+ version = get_version(root="../../..", relative_to=__file__)
8
+ except Exception as e:
9
+ raise ImportError(f"setuptools_scm broken or not installed: {e}")
simtools/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.8.1'
16
- __version_tuple__ = version_tuple = (0, 8, 1)
15
+ __version__ = version = '0.8.2'
16
+ __version_tuple__ = version_tuple = (0, 8, 2)
@@ -154,7 +154,7 @@ def check_and_log_overwrite(config_parser, logger):
154
154
  Returns
155
155
  -------
156
156
  bool
157
- True if the hdf5 file exists and should be overwritten, False otherwise.
157
+ True if the hdf5 file exists and should be overwritten.
158
158
  """
159
159
  if Path(f"{config_parser['output_file_name']}.hdf5").exists() and config_parser["hdf5"]:
160
160
  msg = (
@@ -34,7 +34,7 @@ r"""
34
34
  .. code-block:: console
35
35
 
36
36
  simtools-validate-camera-fov --site North \\
37
- --telescope LST-1 --model_version 5.0.0
37
+ --telescope LSTN-01 --model_version 5.0.0
38
38
 
39
39
  The output is saved in simtools-output/validate_camera_fov.
40
40
 
@@ -33,6 +33,7 @@ r"""
33
33
  """
34
34
 
35
35
  import logging
36
+ from importlib.resources import files
36
37
  from pathlib import Path
37
38
 
38
39
  import simtools.utils.general as gen
@@ -138,10 +139,7 @@ def validate_data_files(args_dict, logger):
138
139
  for file_name in Path(model_parameters_directory).rglob("*.json"):
139
140
  tmp_args_dict["file_name"] = file_name
140
141
  schema_file = (
141
- Path(__file__).parent
142
- / "../schemas"
143
- / "model_parameters"
144
- / f"{file_name.stem}.schema.yml"
142
+ files("simtools") / "schemas/model_parameters" / f"{file_name.stem}.schema.yml"
145
143
  )
146
144
  tmp_args_dict["schema"] = schema_file
147
145
  tmp_args_dict["data_type"] = "model_parameter"
@@ -263,8 +263,8 @@ class CommandLineParser(argparse.ArgumentParser):
263
263
  _job_group.add_argument(
264
264
  "--telescope_model_file",
265
265
  help=(
266
- "File with changes to telescope model "
267
- " (yaml format; experimental with insufficient validation steps)."
266
+ "Path to a YAML file containing modifications to the telescope model. "
267
+ "This feature is intended for developers and lacks validation."
268
268
  ),
269
269
  type=Path,
270
270
  required=False,
simtools/constants.py CHANGED
@@ -1,9 +1,9 @@
1
1
  """Project wide constants."""
2
2
 
3
- from pathlib import Path
3
+ from importlib.resources import files
4
4
 
5
5
  # Path to metadata jsonschema
6
- METADATA_JSON_SCHEMA = Path(__file__).parent / "../simtools/schemas/metadata.metaschema.yml"
6
+ METADATA_JSON_SCHEMA = files("simtools") / "schemas/metadata.metaschema.yml"
7
7
 
8
8
  # Path to model parameter schema files
9
- MODEL_PARAMETER_SCHEMA_PATH = Path(__file__).parent / "../simtools/schemas/model_parameters"
9
+ MODEL_PARAMETER_SCHEMA_PATH = files("simtools") / "schemas/model_parameters"
@@ -523,7 +523,7 @@ class MetadataCollector:
523
523
  Returns
524
524
  -------
525
525
  bool
526
- True if all entries are None, False otherwise.
526
+ True if all entries are None.
527
527
 
528
528
  """
529
529
  if not isinstance(input_dict, dict):
@@ -27,25 +27,25 @@ class ArrayModel:
27
27
  MongoDB configuration.
28
28
  model_version: str
29
29
  Model version.
30
- label: str
30
+ label: str, optional
31
31
  Instance label. Used for output file naming.
32
- site: str
32
+ site: str, optional
33
33
  Site name.
34
- layout_name: str
34
+ layout_name: str, optional
35
35
  Layout name.
36
- array_elements: str, Path, list
36
+ array_elements: Union[str, Path, List[str]], optional
37
37
  Array element definitions (list of array element or path to file with
38
38
  the array element positions).
39
39
  """
40
40
 
41
41
  def __init__(
42
42
  self,
43
- mongo_db_config,
44
- model_version,
45
- label=None,
46
- site=None,
47
- layout_name=None,
48
- array_elements=None,
43
+ mongo_db_config: dict,
44
+ model_version: str,
45
+ label: str | None = None,
46
+ site: str | None = None,
47
+ layout_name: str | None = None,
48
+ array_elements: str | Path | list[str] | None = None,
49
49
  ):
50
50
  """Initialize ArrayModel."""
51
51
  self._logger = logging.getLogger(__name__)
@@ -53,7 +53,7 @@ class ArrayModel:
53
53
  self.mongo_db_config = mongo_db_config
54
54
  self.model_version = model_version
55
55
  self.label = label
56
- self.layout_name = layout_name if layout_name else None
56
+ self.layout_name = layout_name
57
57
  self._config_file_path = None
58
58
  self._config_file_directory = None
59
59
  self.io_handler = io_handler.IOHandler()
@@ -66,7 +66,7 @@ class ArrayModel:
66
66
  self._telescope_model_files_exported = False
67
67
  self._array_model_file_exported = False
68
68
 
69
- def _initialize(self, site, array_elements_config):
69
+ def _initialize(self, site: str, array_elements_config: str | Path | list[str]):
70
70
  """
71
71
  Initialize ArrayModel taking different configuration options into account.
72
72
 
@@ -74,7 +74,7 @@ class ArrayModel:
74
74
  ----------
75
75
  site: str
76
76
  Site name.
77
- array_elements_config: str, Path, list
77
+ array_elements_config: Union[str, Path, List[str]]
78
78
  Array element definitions.
79
79
 
80
80
  Returns
@@ -108,7 +108,7 @@ class ArrayModel:
108
108
  array_elements = self._get_array_elements_from_list(
109
109
  site_model.get_array_elements_for_layout(self.layout_name)
110
110
  )
111
- if array_elements == {}:
111
+ if not array_elements:
112
112
  raise ValueError(
113
113
  "No array elements found. "
114
114
  "Possibly missing valid layout name or missing telescope list."
@@ -117,7 +117,7 @@ class ArrayModel:
117
117
  return array_elements, site_model, telescope_model
118
118
 
119
119
  @property
120
- def number_of_telescopes(self):
120
+ def number_of_telescopes(self) -> int:
121
121
  """
122
122
  Return the number of telescopes.
123
123
 
@@ -129,7 +129,7 @@ class ArrayModel:
129
129
  return len(self.telescope_model)
130
130
 
131
131
  @property
132
- def site(self):
132
+ def site(self) -> str:
133
133
  """
134
134
  Return site.
135
135
 
@@ -140,7 +140,7 @@ class ArrayModel:
140
140
  """
141
141
  return self.site_model.site
142
142
 
143
- def _build_telescope_models(self, site_model, array_elements):
143
+ def _build_telescope_models(self, site_model: SiteModel, array_elements: dict) -> dict:
144
144
  """
145
145
  Build the the telescope models for all telescopes of this array.
146
146
 
@@ -150,7 +150,7 @@ class ArrayModel:
150
150
 
151
151
  Parameters
152
152
  ----------
153
- site_model: str
153
+ site_model: SiteModel
154
154
  Site model.
155
155
  array_elements: dict
156
156
  Dict with array elements.
@@ -233,7 +233,7 @@ class ArrayModel:
233
233
  if not self._array_model_file_exported:
234
234
  self.export_simtel_array_config_file()
235
235
 
236
- def get_config_file(self):
236
+ def get_config_file(self) -> Path:
237
237
  """
238
238
  Return the path of the array config file for sim_telarray.
239
239
 
@@ -247,7 +247,7 @@ class ArrayModel:
247
247
  self.export_all_simtel_config_files()
248
248
  return self._config_file_path
249
249
 
250
- def get_config_directory(self):
250
+ def get_config_directory(self) -> Path:
251
251
  """
252
252
  Get the path of the array config directory for sim_telarray.
253
253
 
@@ -260,7 +260,9 @@ class ArrayModel:
260
260
  self._config_file_directory = self.io_handler.get_output_directory(self.label, "model")
261
261
  return self._config_file_directory
262
262
 
263
- def _load_array_element_positions_from_file(self, array_elements_file, site):
263
+ def _load_array_element_positions_from_file(
264
+ self, array_elements_file: str | Path, site: str
265
+ ) -> dict:
264
266
  """
265
267
  Load array element (e.g. telescope) positions from a file into a dict.
266
268
 
@@ -268,7 +270,7 @@ class ArrayModel:
268
270
 
269
271
  Parameters
270
272
  ----------
271
- array_elements_file: str
273
+ array_elements_file: Union[str, Path]
272
274
  Path to the file with the array element positions.
273
275
  site: str
274
276
  Site name.
@@ -287,7 +289,9 @@ class ArrayModel:
287
289
  for row in table
288
290
  }
289
291
 
290
- def _get_telescope_position_parameter(self, telescope_name, site, x, y, z):
292
+ def _get_telescope_position_parameter(
293
+ self, telescope_name: str, site: str, x: u.Quantity, y: u.Quantity, z: u.Quantity
294
+ ) -> dict:
291
295
  """
292
296
  Return dictionary with telescope position parameters (following DB model database format).
293
297
 
@@ -323,7 +327,7 @@ class ArrayModel:
323
327
  "file": False,
324
328
  }
325
329
 
326
- def _get_array_elements_from_list(self, array_elements_list):
330
+ def _get_array_elements_from_list(self, array_elements_list: list[str]) -> dict:
327
331
  """
328
332
  Return dictionary with array elements from a list of telescope names.
329
333
 
@@ -349,7 +353,7 @@ class ArrayModel:
349
353
  array_elements_dict.update(self._get_all_array_elements_of_type(name))
350
354
  return array_elements_dict
351
355
 
352
- def _get_all_array_elements_of_type(self, array_element_type):
356
+ def _get_all_array_elements_of_type(self, array_element_type: str) -> dict:
353
357
  """
354
358
  Return all array elements of a specific type using the database.
355
359
 
@@ -371,7 +375,7 @@ class ArrayModel:
371
375
  )
372
376
  return self._get_array_elements_from_list(all_elements)
373
377
 
374
- def export_array_elements_as_table(self, coordinate_system="ground"):
378
+ def export_array_elements_as_table(self, coordinate_system: str = "ground") -> QTable:
375
379
  """
376
380
  Export array elements positions to astropy table.
377
381
 
@@ -23,23 +23,20 @@ class CalibrationModel(ModelParameter):
23
23
  MongoDB configuration.
24
24
  model_version: str
25
25
  Model version.
26
- label: str
26
+ label: str, optional
27
27
  Instance label. Important for output file naming.
28
28
  """
29
29
 
30
30
  def __init__(
31
31
  self,
32
- site,
33
- calibration_device_model_name,
34
- mongo_db_config,
35
- model_version,
36
- label=None,
32
+ site: str,
33
+ calibration_device_model_name: str,
34
+ mongo_db_config: dict,
35
+ model_version: str,
36
+ label: str | None = None,
37
37
  ):
38
38
  """Initialize CalibrationModel."""
39
- self._logger = logging.getLogger(__name__)
40
- self._logger.debug("Init CalibrationModel %s %s", site, calibration_device_model_name)
41
- ModelParameter.__init__(
42
- self,
39
+ super().__init__(
43
40
  site=site,
44
41
  array_element_name=calibration_device_model_name,
45
42
  collection="calibration_devices",
@@ -48,3 +45,6 @@ class CalibrationModel(ModelParameter):
48
45
  db=None,
49
46
  label=label,
50
47
  )
48
+
49
+ self._logger = logging.getLogger(__name__)
50
+ self._logger.debug("Init CalibrationModel %s %s", site, calibration_device_model_name)