gammasimtools 0.10.0__py3-none-any.whl → 0.12.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.10.0.dist-info → gammasimtools-0.12.0.dist-info}/METADATA +3 -1
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.12.0.dist-info}/RECORD +84 -77
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.12.0.dist-info}/WHEEL +1 -1
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.12.0.dist-info}/entry_points.txt +4 -0
- simtools/_version.py +9 -4
- simtools/applications/convert_all_model_parameters_from_simtel.py +0 -1
- simtools/applications/convert_model_parameter_from_simtel.py +0 -1
- simtools/applications/db_add_file_to_db.py +0 -1
- simtools/applications/db_get_parameter_from_db.py +7 -28
- simtools/applications/derive_mirror_rnda.py +1 -2
- simtools/applications/derive_psf_parameters.py +1 -0
- simtools/applications/docs_produce_array_element_report.py +71 -0
- simtools/applications/docs_produce_model_parameter_reports.py +63 -0
- simtools/applications/generate_corsika_histograms.py +2 -2
- simtools/applications/generate_regular_arrays.py +4 -2
- simtools/applications/production_derive_limits.py +95 -0
- simtools/applications/production_generate_simulation_config.py +15 -29
- simtools/applications/production_scale_events.py +2 -7
- simtools/applications/run_application.py +165 -0
- simtools/applications/simulate_light_emission.py +0 -4
- simtools/applications/submit_model_parameter_from_external.py +11 -6
- simtools/applications/validate_file_using_schema.py +3 -3
- simtools/configuration/commandline_parser.py +30 -1
- simtools/configuration/configurator.py +8 -10
- simtools/corsika/corsika_config.py +11 -10
- simtools/corsika/corsika_histograms.py +4 -6
- simtools/corsika/corsika_histograms_visualize.py +2 -4
- simtools/data_model/metadata_collector.py +18 -9
- simtools/data_model/model_data_writer.py +67 -15
- simtools/data_model/schema.py +10 -3
- simtools/data_model/validate_data.py +70 -24
- simtools/db/db_handler.py +46 -14
- simtools/dependencies.py +112 -0
- simtools/layout/array_layout.py +5 -4
- simtools/model/model_parameter.py +35 -2
- simtools/production_configuration/calculate_statistical_errors_grid_point.py +5 -6
- simtools/production_configuration/event_scaler.py +3 -19
- simtools/production_configuration/generate_simulation_config.py +4 -12
- simtools/production_configuration/interpolation_handler.py +2 -5
- simtools/production_configuration/limits_calculation.py +202 -0
- simtools/reporting/docs_read_parameters.py +310 -0
- simtools/runners/corsika_simtel_runner.py +1 -3
- simtools/schemas/{integration_tests_config.metaschema.yml → application_workflow.metaschema.yml} +51 -27
- simtools/schemas/array_elements.yml +8 -0
- simtools/schemas/model_parameter.metaschema.yml +96 -0
- simtools/schemas/model_parameter_and_data_schema.metaschema.yml +2 -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 +2 -0
- simtools/schemas/model_parameters/corsika_cherenkov_photon_wavelength_range.schema.yml +2 -0
- simtools/schemas/model_parameters/corsika_first_interaction_height.schema.yml +2 -0
- simtools/schemas/model_parameters/corsika_iact_io_buffer.schema.yml +2 -0
- simtools/schemas/model_parameters/corsika_iact_max_bunches.schema.yml +2 -0
- simtools/schemas/model_parameters/corsika_iact_split_auto.schema.yml +2 -0
- simtools/schemas/model_parameters/corsika_longitudinal_shower_development.schema.yml +2 -0
- simtools/schemas/model_parameters/corsika_particle_kinetic_energy_cutoff.schema.yml +2 -0
- simtools/schemas/model_parameters/corsika_starting_grammage.schema.yml +2 -0
- 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/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/random_generator.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/store_photoelectrons.schema.yml +1 -1
- simtools/schemas/model_parameters/tailcut_scale.schema.yml +1 -1
- simtools/schemas/production_tables.schema.yml +1 -1
- simtools/simtel/simtel_config_reader.py +1 -2
- simtools/simtel/simtel_config_writer.py +1 -2
- simtools/simtel/simtel_io_histogram.py +0 -1
- simtools/simtel/simtel_io_histograms.py +2 -4
- simtools/simtel/simulator_camera_efficiency.py +1 -3
- simtools/simtel/simulator_light_emission.py +2 -5
- simtools/simtel/simulator_ray_tracing.py +1 -3
- simtools/testing/configuration.py +2 -1
- simtools/testing/validate_output.py +23 -13
- simtools/utils/general.py +12 -2
- simtools/utils/names.py +290 -152
- simtools/utils/value_conversion.py +20 -14
- simtools/version.py +2 -2
- simtools/visualization/legend_handlers.py +2 -0
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.12.0.dist-info}/LICENSE +0 -0
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.12.0.dist-info}/top_level.txt +0 -0
|
@@ -87,7 +87,7 @@ def get_value_unit_type(value, unit_str=None):
|
|
|
87
87
|
return base_value, _unit_as_string(base_unit), base_type
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
def split_value_and_unit(value):
|
|
90
|
+
def split_value_and_unit(value, is_integer=False):
|
|
91
91
|
"""
|
|
92
92
|
Split a value into its value and unit.
|
|
93
93
|
|
|
@@ -98,6 +98,8 @@ def split_value_and_unit(value):
|
|
|
98
98
|
----------
|
|
99
99
|
value: str, int, float, bool, u.Quantity
|
|
100
100
|
Value to be parsed.
|
|
101
|
+
is_integer: bool
|
|
102
|
+
Flag to indicate if the value is an integer.
|
|
101
103
|
|
|
102
104
|
Returns
|
|
103
105
|
-------
|
|
@@ -105,40 +107,44 @@ def split_value_and_unit(value):
|
|
|
105
107
|
Value and units as (value, unit), or lists of values and unites
|
|
106
108
|
"""
|
|
107
109
|
if isinstance(value, u.Quantity):
|
|
108
|
-
return _split_value_is_quantity(value)
|
|
110
|
+
return _split_value_is_quantity(value, is_integer)
|
|
109
111
|
if isinstance(value, str):
|
|
110
|
-
return _split_value_is_string(value)
|
|
112
|
+
return _split_value_is_string(value, is_integer)
|
|
111
113
|
if isinstance(value, list | np.ndarray):
|
|
112
|
-
return _split_value_is_list(value)
|
|
114
|
+
return _split_value_is_list(value, is_integer)
|
|
113
115
|
return value, None
|
|
114
116
|
|
|
115
117
|
|
|
116
|
-
def _split_value_is_quantity(value):
|
|
118
|
+
def _split_value_is_quantity(value, is_integer=False):
|
|
117
119
|
"""Split value and unit for an astropy Quantity."""
|
|
118
|
-
if isinstance(value.value, list | np.ndarray): # type [100.0, 200] * u.m
|
|
119
|
-
return
|
|
120
|
-
return value.value, str(value.unit)
|
|
120
|
+
if isinstance(value.value, list | np.ndarray): # type [100.0, 200] * u.m
|
|
121
|
+
return [int(v) if is_integer else v for v in value.value], [str(value.unit)] * len(value)
|
|
122
|
+
return int(value.value) if is_integer else value.value, str(value.unit)
|
|
121
123
|
|
|
122
124
|
|
|
123
|
-
def _split_value_is_string(value):
|
|
124
|
-
"""Split
|
|
125
|
+
def _split_value_is_string(value, is_integer=False):
|
|
126
|
+
"""Split value and unit for a string."""
|
|
125
127
|
if value.isdigit(): # single integer value
|
|
126
128
|
return int(value), None
|
|
127
129
|
try: # single value with/without unit
|
|
128
|
-
|
|
130
|
+
quantity = u.Quantity(value)
|
|
131
|
+
unit = str(quantity.unit)
|
|
132
|
+
if unit.isdigit(): # cases where numbers are wrongly identified as units
|
|
133
|
+
raise ValueError
|
|
134
|
+
return (int(quantity.value), unit) if is_integer else (quantity.value, unit)
|
|
129
135
|
except ValueError:
|
|
130
|
-
return _split_value_is_list(gen.convert_string_to_list(value))
|
|
136
|
+
return _split_value_is_list(gen.convert_string_to_list(value), is_integer)
|
|
131
137
|
except TypeError: # string value (not numerical)
|
|
132
138
|
return value, None
|
|
133
139
|
|
|
134
140
|
|
|
135
|
-
def _split_value_is_list(value):
|
|
141
|
+
def _split_value_is_list(value, is_integer=False):
|
|
136
142
|
"""Split value and unit for a list."""
|
|
137
143
|
value_list = []
|
|
138
144
|
unit_list = []
|
|
139
145
|
for item in value:
|
|
140
146
|
_value, _unit = split_value_and_unit(item)
|
|
141
|
-
value_list.append(_value)
|
|
147
|
+
value_list.append(int(_value) if is_integer else _value)
|
|
142
148
|
if isinstance(_unit, str):
|
|
143
149
|
unit_list.append(_unit)
|
|
144
150
|
else:
|
simtools/version.py
CHANGED
|
@@ -9,11 +9,11 @@ try:
|
|
|
9
9
|
from ._dev_version import version
|
|
10
10
|
except ImportError:
|
|
11
11
|
from ._version import version
|
|
12
|
-
except Exception:
|
|
12
|
+
except Exception: # pylint: disable=broad-except
|
|
13
13
|
import warnings
|
|
14
14
|
|
|
15
15
|
warnings.warn("Could not determine simtools version; this indicates a broken installation.")
|
|
16
16
|
del warnings
|
|
17
|
-
version = "0.0.0"
|
|
17
|
+
version = "0.0.0" # pylint: disable=invalid-name
|
|
18
18
|
|
|
19
19
|
__version__ = version
|
|
@@ -71,6 +71,7 @@ class TelescopeHandler:
|
|
|
71
71
|
def __init__(self, radius=None):
|
|
72
72
|
self.colors_dict = {
|
|
73
73
|
"LSTN": "darkorange",
|
|
74
|
+
"MSTx": "dodgerblue",
|
|
74
75
|
"MSTN": "dodgerblue",
|
|
75
76
|
"LSTS": "darkorange",
|
|
76
77
|
"MSTS": "dodgerblue",
|
|
@@ -84,6 +85,7 @@ class TelescopeHandler:
|
|
|
84
85
|
# hardwired values; this is for plotting purposes only
|
|
85
86
|
self.radius_dict = {
|
|
86
87
|
"LSTN": 12.5,
|
|
88
|
+
"MSTx": 9.15,
|
|
87
89
|
"MSTN": 9.15,
|
|
88
90
|
"LSTS": 12.5,
|
|
89
91
|
"MSTS": 9.15,
|
|
File without changes
|
|
File without changes
|