gammasimtools 0.5.1__py3-none-any.whl → 0.6.1__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 (78) hide show
  1. {gammasimtools-0.5.1.dist-info → gammasimtools-0.6.1.dist-info}/METADATA +80 -28
  2. gammasimtools-0.6.1.dist-info/RECORD +91 -0
  3. {gammasimtools-0.5.1.dist-info → gammasimtools-0.6.1.dist-info}/WHEEL +1 -1
  4. {gammasimtools-0.5.1.dist-info → gammasimtools-0.6.1.dist-info}/entry_points.txt +4 -2
  5. simtools/_version.py +14 -2
  6. simtools/applications/add_file_to_db.py +2 -1
  7. simtools/applications/compare_cumulative_psf.py +10 -15
  8. simtools/applications/db_development_tools/add_new_parameter_to_db.py +12 -6
  9. simtools/applications/derive_mirror_rnda.py +95 -71
  10. simtools/applications/generate_corsika_histograms.py +216 -131
  11. simtools/applications/generate_default_metadata.py +110 -0
  12. simtools/applications/generate_simtel_array_histograms.py +192 -0
  13. simtools/applications/get_file_from_db.py +1 -1
  14. simtools/applications/get_parameter.py +3 -3
  15. simtools/applications/make_regular_arrays.py +89 -93
  16. simtools/applications/{plot_layout_array.py → plot_array_layout.py} +15 -14
  17. simtools/applications/print_array_elements.py +81 -34
  18. simtools/applications/produce_array_config.py +2 -2
  19. simtools/applications/production.py +39 -5
  20. simtools/applications/sim_showers_for_trigger_rates.py +26 -30
  21. simtools/applications/simulate_prod.py +49 -107
  22. simtools/applications/submit_data_from_external.py +8 -10
  23. simtools/applications/tune_psf.py +16 -18
  24. simtools/applications/validate_camera_efficiency.py +63 -9
  25. simtools/applications/validate_camera_fov.py +9 -13
  26. simtools/applications/validate_file_using_schema.py +127 -0
  27. simtools/applications/validate_optics.py +13 -15
  28. simtools/camera_efficiency.py +73 -80
  29. simtools/configuration/commandline_parser.py +52 -22
  30. simtools/configuration/configurator.py +98 -33
  31. simtools/constants.py +9 -0
  32. simtools/corsika/corsika_config.py +28 -22
  33. simtools/corsika/corsika_default_config.py +282 -0
  34. simtools/corsika/corsika_histograms.py +328 -282
  35. simtools/corsika/corsika_histograms_visualize.py +162 -163
  36. simtools/corsika/corsika_runner.py +8 -4
  37. simtools/corsika_simtel/corsika_simtel_runner.py +18 -23
  38. simtools/data_model/data_reader.py +129 -0
  39. simtools/data_model/metadata_collector.py +346 -118
  40. simtools/data_model/metadata_model.py +123 -218
  41. simtools/data_model/model_data_writer.py +79 -22
  42. simtools/data_model/validate_data.py +96 -46
  43. simtools/db_handler.py +67 -42
  44. simtools/io_operations/__init__.py +0 -0
  45. simtools/io_operations/hdf5_handler.py +112 -0
  46. simtools/{io_handler.py → io_operations/io_handler.py} +51 -22
  47. simtools/job_execution/job_manager.py +1 -1
  48. simtools/layout/{layout_array.py → array_layout.py} +168 -199
  49. simtools/layout/geo_coordinates.py +196 -0
  50. simtools/layout/telescope_position.py +12 -12
  51. simtools/model/array_model.py +16 -14
  52. simtools/model/camera.py +5 -8
  53. simtools/model/mirrors.py +136 -73
  54. simtools/model/model_utils.py +1 -69
  55. simtools/model/telescope_model.py +32 -25
  56. simtools/psf_analysis.py +26 -19
  57. simtools/ray_tracing.py +54 -26
  58. simtools/schemas/data.metaschema.yml +400 -0
  59. simtools/schemas/metadata.metaschema.yml +566 -0
  60. simtools/simtel/simtel_config_writer.py +14 -5
  61. simtools/simtel/simtel_histograms.py +266 -83
  62. simtools/simtel/simtel_runner.py +8 -7
  63. simtools/simtel/simtel_runner_array.py +7 -8
  64. simtools/simtel/simtel_runner_camera_efficiency.py +48 -2
  65. simtools/simtel/simtel_runner_ray_tracing.py +61 -25
  66. simtools/simulator.py +43 -50
  67. simtools/utils/general.py +232 -286
  68. simtools/utils/geometry.py +163 -0
  69. simtools/utils/names.py +294 -142
  70. simtools/visualization/legend_handlers.py +115 -9
  71. simtools/visualization/visualize.py +13 -13
  72. gammasimtools-0.5.1.dist-info/RECORD +0 -83
  73. simtools/applications/plot_simtel_histograms.py +0 -120
  74. simtools/applications/validate_schema_files.py +0 -135
  75. simtools/corsika/corsika_output_visualize.py +0 -345
  76. simtools/data_model/validate_schema.py +0 -285
  77. {gammasimtools-0.5.1.dist-info → gammasimtools-0.6.1.dist-info}/LICENSE +0 -0
  78. {gammasimtools-0.5.1.dist-info → gammasimtools-0.6.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,400 @@
1
+ ---
2
+ $schema: http://json-schema.org/draft-06/schema#
3
+ $ref: '#/definitions/SimtoolsDataAndModelParameters'
4
+ title: SimPipe Data and Model Parameter Metaschema
5
+ description: YAML representation of data and model parameter metaschema
6
+ version: 0.1.0
7
+ name: data.metaschema
8
+ type: object
9
+ additionalProperties: false
10
+
11
+
12
+ definitions:
13
+ SimtoolsDataAndModelParameters:
14
+ type: object
15
+ additionalProperties: false
16
+ properties:
17
+ title:
18
+ type: string
19
+ description: "title for schema file"
20
+ version:
21
+ type: string
22
+ description: "version of this schema file (semver)"
23
+ meta_schema:
24
+ type: string
25
+ description: "name of meta schema (e.g. simpipe-schema)"
26
+ meta_schema_url:
27
+ type: string
28
+ description: "url to meta schema definition"
29
+ meta_schema_version:
30
+ type: string
31
+ description: "version of meta schema applied to this file (semver)"
32
+ name:
33
+ type: string
34
+ description: "name of model parameter"
35
+ developer_note:
36
+ type: string
37
+ description: "notes for developers"
38
+ short_description:
39
+ type: string
40
+ description: "short description of model parameter"
41
+ description:
42
+ type: string
43
+ description: "description of model parameter"
44
+ instrument:
45
+ $ref: '#/definitions/Instrument'
46
+ description: "associated instruments and sites"
47
+ data:
48
+ $ref: '#/definitions/DataUnion'
49
+ activity:
50
+ $ref: '#/definitions/Activity'
51
+ source:
52
+ type: array
53
+ items:
54
+ $ref: '#/definitions/Source'
55
+ simulation_software:
56
+ description: |-
57
+ "name of simulation software"
58
+ type: array
59
+ items:
60
+ $ref: '#/definitions/SimulationSoftware'
61
+ required:
62
+ - version
63
+ - meta_schema
64
+ - meta_schema_version
65
+ - name
66
+ - data
67
+ - description
68
+ title: SimulationModelParameters
69
+ Activity:
70
+ type: object
71
+ additionalProperties: false
72
+ properties:
73
+ setting:
74
+ type: array
75
+ items:
76
+ $ref: '#/definitions/Setting'
77
+ description: "setting workflows"
78
+ validation:
79
+ type: array
80
+ items:
81
+ $ref: '#/definitions/Validation'
82
+ description: "validation workflows"
83
+ required:
84
+ - setting
85
+ - validation
86
+ title: Activity
87
+ Datum:
88
+ type: object
89
+ additionalProperties: false
90
+ properties:
91
+ name:
92
+ type: string
93
+ type:
94
+ $ref: '#/definitions/TableColumnType'
95
+ description: |-
96
+ "use numpy basic types where possible
97
+ (https://numpy.org/doc/stable/user/basics.types.html).
98
+ Use `file` if the parameter describes a file name.
99
+ Use `data_table` if the parameter describes a data table
100
+ (requires TABLE_COLUMNS description)"
101
+ units:
102
+ $ref: '#/definitions/Units'
103
+ allowed_range:
104
+ $ref: '#/definitions/ValueRange'
105
+ allowed_values:
106
+ type: array
107
+ default:
108
+ type:
109
+ - number
110
+ - string
111
+ - boolean
112
+ table_columns:
113
+ type: array
114
+ items:
115
+ $ref: '#/definitions/TableColumn'
116
+ required:
117
+ type: boolean
118
+ condition:
119
+ type: string
120
+ description:
121
+ type: string
122
+ developer_note:
123
+ type: string
124
+ required:
125
+ - type
126
+ title: Datum
127
+ DataClass:
128
+ type: object
129
+ additionalProperties: false
130
+ properties:
131
+ type:
132
+ $ref: '#/definitions/TableColumnType'
133
+ description: "parameter type"
134
+ allowed_range:
135
+ $ref: '#/definitions/ValueRange'
136
+ required:
137
+ type: boolean
138
+ description: "required or optional parameter"
139
+ default:
140
+ type:
141
+ - number
142
+ - string
143
+ - boolean
144
+ description: "default value"
145
+ units:
146
+ $ref: '#/definitions/Units'
147
+ description: |-
148
+ "parameter units
149
+ (using astropy names wherever possible)"
150
+ required:
151
+ - type
152
+ - units
153
+ title: DataClass
154
+ ValueRange:
155
+ type: object
156
+ additionalProperties: false
157
+ properties:
158
+ min:
159
+ type: number
160
+ max:
161
+ type: number
162
+ title: ValueRange
163
+ TableColumn:
164
+ type: object
165
+ additionalProperties: false
166
+ properties:
167
+ name:
168
+ type: string
169
+ description: "column name"
170
+ description:
171
+ type: string
172
+ description: "column description"
173
+ developer_note:
174
+ type: string
175
+ description: "notes for developers"
176
+ required:
177
+ type: boolean
178
+ description: "required or optional data column"
179
+ default:
180
+ type:
181
+ - number
182
+ - string
183
+ - boolean
184
+ description: "default value"
185
+ condition:
186
+ type: string
187
+ description: "condition to change this column to a required data column"
188
+ units:
189
+ type: string
190
+ description: "column units"
191
+ type:
192
+ $ref: '#/definitions/TableColumnType'
193
+ description: "column data type"
194
+ allowed_range:
195
+ $ref: '#/definitions/ValueRange'
196
+ description: "allowed range of values in data column"
197
+ allowed_values:
198
+ type: array
199
+ description: "list of allowed values in data column"
200
+ required_range:
201
+ $ref: '#/definitions/ValueRange'
202
+ description: "required range of values in data column"
203
+ column_type:
204
+ type: string
205
+ enum:
206
+ - independent
207
+ - dependent
208
+ description: |-
209
+ "column type to allow several dependent columns in 3D
210
+ tables"
211
+ input_processing:
212
+ type: array
213
+ description: |
214
+ "input data processing steps applied to data columns"
215
+ items:
216
+ type: string
217
+ enum:
218
+ - remove_duplicates
219
+ - sort
220
+ - allow_nan
221
+ table_columns:
222
+ type: array
223
+ items:
224
+ $ref: '#/definitions/TableColumn'
225
+ required:
226
+ - description
227
+ - name
228
+ - type
229
+ - units
230
+ title: TableColumn
231
+ Instrument:
232
+ type: object
233
+ additionalProperties: false
234
+ properties:
235
+ class:
236
+ type: string
237
+ description: "instrument class"
238
+ enum:
239
+ - Camera
240
+ - Site
241
+ - Structure
242
+ - Telescope
243
+ type:
244
+ type: array
245
+ items:
246
+ $ref: '#/definitions/InstrumentTypeElement'
247
+ site:
248
+ type: array
249
+ description: "associated CTAO site"
250
+ items:
251
+ type: string
252
+ enum:
253
+ - North
254
+ - South
255
+ required:
256
+ - class
257
+ - type
258
+ title: Instrument
259
+ InstrumentTypeElement:
260
+ type: string
261
+ description: "specific type of instrument"
262
+ enum:
263
+ - Atmosphere
264
+ - FlashCam
265
+ - LSTCam
266
+ - LSTStructure
267
+ - MSTStructure
268
+ - NectarCam
269
+ - Observatory
270
+ - SCTCam
271
+ - SCTStructure
272
+ - SSTCam
273
+ - SSTStructure
274
+ - None
275
+ title: InstrumentTypeElement
276
+ SimulationSoftware:
277
+ type: object
278
+ additionalProperties: false
279
+ properties:
280
+ name:
281
+ $ref: '#/definitions/SimulationSoftwareName'
282
+ version:
283
+ type: string
284
+ description: |-
285
+ "version of simulation software this parameter is used"
286
+ parameter_name:
287
+ type: string
288
+ description: |-
289
+ "name of simulation model parameter as used by this software"
290
+ required:
291
+ - name
292
+ title: SimulationSoftware
293
+ DataUnion:
294
+ anyOf:
295
+ - type: array
296
+ items:
297
+ $ref: '#/definitions/Datum'
298
+ - $ref: '#/definitions/DataClass'
299
+ title: DataUnion
300
+ Setting:
301
+ type: string
302
+ description: "list of setting workflows"
303
+ enum:
304
+ - SetArrayElementCoordinates
305
+ - SetEffectiveFocalLength
306
+ - SetGeomagneticField
307
+ - SetLightGuideEfficiency
308
+ - SetMirrorPanelAlignment
309
+ - SetMirrorPanelRandomReflection
310
+ - SetNightSkyBackgroundRate
311
+ - SetParameterFromExternal
312
+ - SetPhotonDelay
313
+ - SetReadoutPulseShape
314
+ - SetSinglePhotoElectronResponse
315
+ - SetTelescopeEfficiency
316
+ - SetTelescopeFiducialSphere
317
+ - SetTelescopeShadowingParameters
318
+ - SetTriggerThresholdsFromRateScan
319
+ - None
320
+ title: Setting
321
+ Validation:
322
+ type: string
323
+ description: "list of validation workflows"
324
+ enum:
325
+ - ValidateArrayElementCoordinates
326
+ - ValidateAtmosphericModel
327
+ - ValidateCameraChargeResponse
328
+ - ValidateCameraGainsAndEfficiency
329
+ - ValidateCameraGeometry
330
+ - ValidateCameraLinearity
331
+ - ValidateCameraPlateScale
332
+ - ValidateCameraTimeResponse
333
+ - ValidateMirrorPanelParameters
334
+ - ValidateNightSkyBackgroundMeasurement
335
+ - ValidateOpticalPSF
336
+ - ValidateParameterByExpert
337
+ - ValidatePedestalEvents
338
+ - ValidatePixelStatus
339
+ - ValidateReadout
340
+ - ValidateSinglePhotoElectronResponse
341
+ - ValidateTelescopeEfficiency
342
+ - ValidateTelescopeShadowing
343
+ - ValidateTelescopeSimulationModel
344
+ - ValidateTelescopeStructure
345
+ - ValidateTriggerPerformance
346
+ - ValidationWorkflowMissing
347
+ - None
348
+ TableColumnType:
349
+ type: string
350
+ enum:
351
+ - boolean
352
+ - datatable
353
+ - double
354
+ - float64
355
+ - int
356
+ - string
357
+ - uint
358
+ title: TableColumnType
359
+ Units:
360
+ type: string
361
+ description: |-
362
+ "Units correspond to astropy unit names
363
+ (wherever possible)"
364
+ enum:
365
+ - dimensionless
366
+ - ns
367
+ - V
368
+ - mV
369
+ - deg
370
+ - m
371
+ - cm
372
+ - nm
373
+ - uT
374
+ - adc_counts
375
+ - MHz
376
+ - GHz
377
+ - adc_counts / mV
378
+ - mV * ns
379
+ - pct
380
+ - uA
381
+ title: Units
382
+ SimulationSoftwareName:
383
+ type: string
384
+ description: |-
385
+ "Names of simulation software"
386
+ enum:
387
+ - sim_telarray
388
+ - corsika
389
+ - gammasim-tools
390
+ title: Name
391
+ Source:
392
+ type: string
393
+ description: "origin of data / how it is obtained"
394
+ enum:
395
+ - Initial instrument setup
396
+ - Calibration
397
+ - External
398
+ - Observation execution
399
+ - SimPipe Derived
400
+ title: Source