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.
- {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/METADATA +2 -1
- {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/RECORD +246 -247
- simtools/_dev_version/__init__.py +9 -0
- simtools/_version.py +2 -2
- simtools/applications/generate_simtel_array_histograms.py +1 -1
- simtools/applications/validate_camera_fov.py +1 -1
- simtools/applications/validate_file_using_schema.py +2 -4
- simtools/configuration/commandline_parser.py +2 -2
- simtools/constants.py +3 -3
- simtools/data_model/metadata_collector.py +1 -1
- simtools/model/array_model.py +30 -26
- simtools/model/calibration_model.py +10 -10
- simtools/model/camera.py +76 -62
- simtools/model/mirrors.py +8 -6
- simtools/model/model_parameter.py +2 -2
- simtools/model/model_utils.py +6 -6
- simtools/model/site_model.py +1 -1
- simtools/model/telescope_model.py +26 -22
- simtools/schemas/model_parameters/adjust_gain.schema.yml +1 -1
- simtools/schemas/model_parameters/altitude.schema.yml +1 -1
- simtools/schemas/model_parameters/array_coordinates.schema.yml +1 -1
- simtools/schemas/model_parameters/array_coordinates_UTM.schema.yml +1 -1
- simtools/schemas/model_parameters/array_element_position_ground.schema.yml +1 -1
- simtools/schemas/model_parameters/array_element_position_utm.schema.yml +1 -1
- simtools/schemas/model_parameters/array_layouts.schema.yml +1 -1
- simtools/schemas/model_parameters/array_triggers.schema.yml +1 -1
- simtools/schemas/model_parameters/asum_clipping.schema.yml +1 -1
- simtools/schemas/model_parameters/asum_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/asum_shaping.schema.yml +1 -1
- simtools/schemas/model_parameters/asum_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/atmospheric_profile.schema.yml +1 -1
- simtools/schemas/model_parameters/atmospheric_transmission.schema.yml +1 -1
- simtools/schemas/model_parameters/axes_offsets.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_body_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_body_shape.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_config_file.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_config_rotate.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_degraded_efficiency.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_degraded_map.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_depth.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_filter.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_filter_incidence_angle.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_pixels.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_transmission.schema.yml +1 -1
- simtools/schemas/model_parameters/channels_per_chip.schema.yml +1 -1
- simtools/schemas/model_parameters/correct_nsb_spectrum_to_telescope_altitude.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_cherenkov_photon_bunch_size.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_cherenkov_photon_wavelength_range.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_first_interaction_height.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_iact_io_buffer.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_iact_max_bunches.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_iact_split_auto.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_longitudinal_shower_development.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_observation_level.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_particle_kinetic_energy_cutoff.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_starting_grammage.schema.yml +1 -1
- simtools/schemas/model_parameters/dark_events.schema.yml +1 -1
- simtools/schemas/model_parameters/default_trigger.schema.yml +1 -1
- simtools/schemas/model_parameters/design_model.schema.yml +1 -1
- simtools/schemas/model_parameters/disc_ac_coupled.schema.yml +1 -1
- simtools/schemas/model_parameters/disc_bins.schema.yml +1 -1
- simtools/schemas/model_parameters/disc_start.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_fall_time.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_gate_length.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_hysteresis.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_output_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_output_var_percent.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_pulse_shape.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_rise_time.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_scale_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_sigsum_over_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_time_over_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_var_gate_length.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_var_sigsum_over_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_var_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_var_time_over_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/dish_shape_length.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_clipping.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_ignore_below.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_pedsub.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_pre_clipping.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_prescale.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_presum_max.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_presum_shift.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_shaping.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_shaping_renormalize.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_zero_clip.schema.yml +1 -1
- simtools/schemas/model_parameters/effective_focal_length.schema.yml +1 -1
- simtools/schemas/model_parameters/epsg_code.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_ac_coupled.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_bins.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_compensate_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_dev_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_err_compensate_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_err_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_compensate_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_dev_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_err_compensate_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_err_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_max_signal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_max_sum.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_noise.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_sensitivity.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_sysvar_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_var_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_var_sensitivity.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_max_signal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_max_sum.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_mhz.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_noise.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_pulse_shape.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_sensitivity.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_sum_bins.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_sum_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_sysvar_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_var_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_var_sensitivity.schema.yml +1 -1
- simtools/schemas/model_parameters/flatfielding.schema.yml +1 -1
- simtools/schemas/model_parameters/focal_length.schema.yml +1 -1
- simtools/schemas/model_parameters/focal_surface_parameters.schema.yml +1 -1
- simtools/schemas/model_parameters/focal_surface_ref_radius.schema.yml +1 -1
- simtools/schemas/model_parameters/focus_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/gain_variation.schema.yml +1 -1
- simtools/schemas/model_parameters/geomag_horizontal.schema.yml +1 -1
- simtools/schemas/model_parameters/geomag_rotation.schema.yml +1 -1
- simtools/schemas/model_parameters/geomag_vertical.schema.yml +1 -1
- simtools/schemas/model_parameters/hg_lg_variation.schema.yml +1 -1
- simtools/schemas/model_parameters/iobuf_maximum.schema.yml +1 -1
- simtools/schemas/model_parameters/iobuf_output_maximum.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_events.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_external_trigger.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_pulse_exptime.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_pulse_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_pulse_sigtime.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_pulse_twidth.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_var_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_wavelength.schema.yml +1 -1
- simtools/schemas/model_parameters/led_events.schema.yml +1 -1
- simtools/schemas/model_parameters/led_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/led_pulse_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/led_pulse_sigtime.schema.yml +1 -1
- simtools/schemas/model_parameters/led_var_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/lightguide_efficiency_vs_incidence_angle.schema.yml +1 -1
- simtools/schemas/model_parameters/lightguide_efficiency_vs_wavelength.schema.yml +1 -1
- simtools/schemas/model_parameters/min_photoelectrons.schema.yml +1 -1
- simtools/schemas/model_parameters/min_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_align_random_distance.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_align_random_horizontal.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_align_random_vertical.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_class.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_degraded_reflection.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_focal_length.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_list.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_panel_2f_measurements.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_reflection_random_angle.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_reflectivity.schema.yml +1 -1
- simtools/schemas/model_parameters/multiplicity_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_autoscale_airmass.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_gain_drop_scale.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_offaxis.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_pixel_rate.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_reference_spectrum.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_reference_value.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_scaling_factor.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_skymap.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_spectrum.schema.yml +1 -1
- simtools/schemas/model_parameters/num_gains.schema.yml +1 -1
- simtools/schemas/model_parameters/only_triggered_telescopes.schema.yml +1 -1
- simtools/schemas/model_parameters/optics_properties.schema.yml +1 -1
- simtools/schemas/model_parameters/parabolic_dish.schema.yml +1 -1
- simtools/schemas/model_parameters/pedestal_events.schema.yml +1 -1
- simtools/schemas/model_parameters/photon_delay.schema.yml +1 -1
- simtools/schemas/model_parameters/photons_per_run.schema.yml +1 -1
- simtools/schemas/model_parameters/pixel_cells.schema.yml +1 -1
- simtools/schemas/model_parameters/pixels_parallel.schema.yml +1 -1
- simtools/schemas/model_parameters/pixeltrg_time_step.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_average_gain.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_collection_efficiency.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_gain_index.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_photoelectron_spectrum.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_transit_time.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_voltage_variation.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_degraded_map.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_hole_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_incidence_angle.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_parameters.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_ref_radius.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_segmentation.schema.yml +1 -1
- simtools/schemas/model_parameters/qe_variation.schema.yml +1 -1
- simtools/schemas/model_parameters/quantum_efficiency.schema.yml +1 -1
- simtools/schemas/model_parameters/random_focal_length.schema.yml +1 -1
- simtools/schemas/model_parameters/random_generator.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_altitude.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_latitude.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_longitude.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_utm_east.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_utm_north.schema.yml +1 -1
- simtools/schemas/model_parameters/sampled_output.schema.yml +1 -1
- simtools/schemas/model_parameters/save_pe_with_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_baffle.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_degraded_map.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_degraded_reflection.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_hole_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_incidence_angle.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_parameters.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_ref_radius.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_reflectivity.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_segmentation.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_shadow_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_shadow_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/store_photoelectrons.schema.yml +1 -1
- simtools/schemas/model_parameters/tailcut_scale.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_axis_height.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_random_angle.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_random_error.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_sphere_radius.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_transmission.schema.yml +1 -1
- simtools/schemas/model_parameters/teltrig_min_sigsum.schema.yml +1 -1
- simtools/schemas/model_parameters/teltrig_min_time.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_calib_error.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_compensate_error.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_compensate_step.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_error.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_jitter.schema.yml +1 -1
- simtools/schemas/model_parameters/trigger_current_limit.schema.yml +1 -1
- simtools/schemas/model_parameters/trigger_delay_compensation.schema.yml +1 -1
- simtools/schemas/model_parameters/trigger_pixels.schema.yml +1 -1
- simtools/testing/validate_output.py +2 -2
- simtools/utils/names.py +3 -4
- simtools/version.py +1 -1
- simtools/_dev_version/scm_version.py +0 -10
- {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/LICENSE +0 -0
- {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/WHEEL +0 -0
- {gammasimtools-0.8.1.dist-info → gammasimtools-0.8.2.dist-info}/entry_points.txt +0 -0
- {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
|
@@ -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
|
|
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 = (
|
|
@@ -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
|
-
|
|
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
|
-
"
|
|
267
|
-
"
|
|
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
|
|
3
|
+
from importlib.resources import files
|
|
4
4
|
|
|
5
5
|
# Path to metadata jsonschema
|
|
6
|
-
METADATA_JSON_SCHEMA =
|
|
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 =
|
|
9
|
+
MODEL_PARAMETER_SCHEMA_PATH = files("simtools") / "schemas/model_parameters"
|
simtools/model/array_model.py
CHANGED
|
@@ -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,
|
|
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
|
|
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,
|
|
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:
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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)
|