gammasimtools 0.10.0__py3-none-any.whl → 0.11.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.11.0.dist-info}/METADATA +3 -1
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.11.0.dist-info}/RECORD +84 -77
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.11.0.dist-info}/WHEEL +1 -1
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.11.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 +29 -0
- 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 +42 -12
- 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 +17 -13
- simtools/version.py +2 -2
- simtools/visualization/legend_handlers.py +2 -0
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.11.0.dist-info}/LICENSE +0 -0
- {gammasimtools-0.10.0.dist-info → gammasimtools-0.11.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,42 @@ 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):
|
|
125
|
+
def _split_value_is_string(value, is_integer=False):
|
|
124
126
|
"""Split vale 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
|
-
return u.Quantity(value).value
|
|
130
|
+
return int(u.Quantity(value).value) if is_integer else u.Quantity(value).value, str(
|
|
131
|
+
u.Quantity(value).unit
|
|
132
|
+
)
|
|
129
133
|
except ValueError:
|
|
130
|
-
return _split_value_is_list(gen.convert_string_to_list(value))
|
|
134
|
+
return _split_value_is_list(gen.convert_string_to_list(value), is_integer)
|
|
131
135
|
except TypeError: # string value (not numerical)
|
|
132
136
|
return value, None
|
|
133
137
|
|
|
134
138
|
|
|
135
|
-
def _split_value_is_list(value):
|
|
139
|
+
def _split_value_is_list(value, is_integer=False):
|
|
136
140
|
"""Split value and unit for a list."""
|
|
137
141
|
value_list = []
|
|
138
142
|
unit_list = []
|
|
139
143
|
for item in value:
|
|
140
144
|
_value, _unit = split_value_and_unit(item)
|
|
141
|
-
value_list.append(_value)
|
|
145
|
+
value_list.append(int(_value) if is_integer else _value)
|
|
142
146
|
if isinstance(_unit, str):
|
|
143
147
|
unit_list.append(_unit)
|
|
144
148
|
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
|