gammasimtools 0.6.1__py3-none-any.whl → 0.8.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.
- gammasimtools-0.8.1.dist-info/METADATA +172 -0
- gammasimtools-0.8.1.dist-info/RECORD +346 -0
- {gammasimtools-0.6.1.dist-info → gammasimtools-0.8.1.dist-info}/WHEEL +1 -1
- gammasimtools-0.8.1.dist-info/entry_points.txt +31 -0
- simtools/_version.py +2 -2
- simtools/applications/calculate_trigger_rate.py +210 -0
- simtools/applications/convert_all_model_parameters_from_simtel.py +372 -0
- simtools/applications/{print_array_elements.py → convert_geo_coordinates_of_array_elements.py} +58 -63
- simtools/applications/convert_model_parameter_from_simtel.py +119 -0
- simtools/applications/{add_file_to_db.py → db_add_file_to_db.py} +70 -60
- simtools/applications/db_add_model_parameters_from_repository_to_db.py +184 -0
- simtools/applications/db_add_value_from_json_to_db.py +105 -0
- simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +180 -0
- simtools/applications/db_get_array_layouts_from_db.py +162 -0
- simtools/applications/{get_file_from_db.py → db_get_file_from_db.py} +30 -34
- simtools/applications/db_get_parameter_from_db.py +131 -0
- simtools/applications/db_inspect_databases.py +52 -0
- simtools/applications/derive_mirror_rnda.py +39 -255
- simtools/applications/derive_psf_parameters.py +441 -0
- simtools/applications/generate_array_config.py +82 -0
- simtools/applications/generate_corsika_histograms.py +52 -52
- simtools/applications/generate_default_metadata.py +5 -8
- simtools/applications/generate_regular_arrays.py +117 -0
- simtools/applications/generate_simtel_array_histograms.py +97 -56
- simtools/applications/plot_array_layout.py +345 -115
- simtools/applications/production_generate_simulation_config.py +158 -0
- simtools/applications/production_scale_events.py +168 -0
- simtools/applications/simulate_light_emission.py +478 -0
- simtools/applications/simulate_prod.py +97 -175
- simtools/applications/submit_data_from_external.py +9 -12
- simtools/applications/submit_model_parameter_from_external.py +122 -0
- simtools/applications/validate_camera_efficiency.py +35 -102
- simtools/applications/validate_camera_fov.py +20 -19
- simtools/applications/{compare_cumulative_psf.py → validate_cumulative_psf.py} +45 -44
- simtools/applications/validate_file_using_schema.py +113 -47
- simtools/applications/validate_optics.py +17 -22
- simtools/camera_efficiency.py +193 -202
- simtools/configuration/commandline_parser.py +384 -96
- simtools/configuration/configurator.py +55 -71
- simtools/constants.py +5 -5
- simtools/corsika/corsika_config.py +482 -342
- simtools/corsika/corsika_histograms.py +226 -204
- simtools/corsika/corsika_histograms_visualize.py +23 -24
- simtools/corsika/primary_particle.py +159 -0
- simtools/data_model/data_reader.py +25 -20
- simtools/data_model/format_checkers.py +52 -0
- simtools/data_model/metadata_collector.py +210 -184
- simtools/data_model/metadata_model.py +115 -37
- simtools/data_model/model_data_writer.py +335 -26
- simtools/data_model/validate_data.py +366 -154
- simtools/db/db_array_elements.py +130 -0
- simtools/db/db_from_repo_handler.py +106 -0
- simtools/db/db_handler.py +1246 -0
- simtools/io_operations/hdf5_handler.py +3 -1
- simtools/io_operations/io_handler.py +32 -57
- simtools/job_execution/job_manager.py +82 -69
- simtools/layout/array_layout.py +325 -537
- simtools/layout/geo_coordinates.py +8 -11
- simtools/layout/telescope_position.py +163 -86
- simtools/model/array_model.py +305 -256
- simtools/model/calibration_model.py +50 -0
- simtools/model/camera.py +233 -493
- simtools/model/mirrors.py +61 -44
- simtools/model/model_parameter.py +602 -0
- simtools/model/model_utils.py +7 -35
- simtools/model/site_model.py +161 -0
- simtools/model/telescope_model.py +127 -621
- simtools/production_configuration/calculate_statistical_errors_grid_point.py +454 -0
- simtools/production_configuration/event_scaler.py +146 -0
- simtools/production_configuration/generate_simulation_config.py +193 -0
- simtools/production_configuration/interpolation_handler.py +197 -0
- simtools/ray_tracing/__init__.py +0 -0
- simtools/ray_tracing/mirror_panel_psf.py +280 -0
- simtools/{psf_analysis.py → ray_tracing/psf_analysis.py} +133 -47
- simtools/ray_tracing/ray_tracing.py +646 -0
- simtools/runners/__init__.py +0 -0
- simtools/runners/corsika_runner.py +240 -0
- simtools/runners/corsika_simtel_runner.py +225 -0
- simtools/runners/runner_services.py +307 -0
- simtools/runners/simtel_runner.py +224 -0
- simtools/schemas/array_elements.yml +137 -0
- simtools/schemas/integration_tests_config.metaschema.yml +93 -0
- simtools/schemas/metadata.metaschema.yml +6 -0
- simtools/schemas/model_parameter.metaschema.yml +78 -0
- simtools/schemas/{data.metaschema.yml → model_parameter_and_data_schema.metaschema.yml} +27 -44
- simtools/schemas/model_parameters/adjust_gain.schema.yml +37 -0
- simtools/schemas/model_parameters/altitude.schema.yml +37 -0
- simtools/schemas/model_parameters/array_coordinates.schema.yml +33 -0
- simtools/schemas/model_parameters/array_coordinates_UTM.schema.yml +77 -0
- simtools/schemas/model_parameters/array_element_position_ground.schema.yml +39 -0
- simtools/schemas/model_parameters/array_element_position_utm.schema.yml +39 -0
- simtools/schemas/model_parameters/array_layouts.schema.yml +48 -0
- simtools/schemas/model_parameters/array_triggers.schema.yml +93 -0
- simtools/schemas/model_parameters/asum_clipping.schema.yml +38 -0
- simtools/schemas/model_parameters/asum_offset.schema.yml +35 -0
- simtools/schemas/model_parameters/asum_shaping.schema.yml +35 -0
- simtools/schemas/model_parameters/asum_threshold.schema.yml +38 -0
- simtools/schemas/model_parameters/atmospheric_profile.schema.yml +32 -0
- simtools/schemas/model_parameters/atmospheric_transmission.schema.yml +35 -0
- simtools/schemas/model_parameters/axes_offsets.schema.yml +53 -0
- simtools/schemas/model_parameters/camera_body_diameter.schema.yml +40 -0
- simtools/schemas/model_parameters/camera_body_shape.schema.yml +45 -0
- simtools/schemas/model_parameters/camera_config_file.schema.yml +40 -0
- simtools/schemas/model_parameters/camera_config_rotate.schema.yml +36 -0
- simtools/schemas/model_parameters/camera_degraded_efficiency.schema.yml +43 -0
- simtools/schemas/model_parameters/camera_degraded_map.schema.yml +42 -0
- simtools/schemas/model_parameters/camera_depth.schema.yml +42 -0
- simtools/schemas/model_parameters/camera_filter.schema.yml +45 -0
- simtools/schemas/model_parameters/camera_filter_incidence_angle.schema.yml +29 -0
- simtools/schemas/model_parameters/camera_pixels.schema.yml +36 -0
- simtools/schemas/model_parameters/camera_transmission.schema.yml +41 -0
- simtools/schemas/model_parameters/channels_per_chip.schema.yml +36 -0
- simtools/schemas/model_parameters/correct_nsb_spectrum_to_telescope_altitude.schema.yml +35 -0
- simtools/schemas/model_parameters/corsika_cherenkov_photon_bunch_size.schema.yml +27 -0
- simtools/schemas/model_parameters/corsika_cherenkov_photon_wavelength_range.schema.yml +38 -0
- simtools/schemas/model_parameters/corsika_first_interaction_height.schema.yml +28 -0
- simtools/schemas/model_parameters/corsika_iact_io_buffer.schema.yml +23 -0
- simtools/schemas/model_parameters/corsika_iact_max_bunches.schema.yml +27 -0
- simtools/schemas/model_parameters/corsika_iact_split_auto.schema.yml +28 -0
- simtools/schemas/model_parameters/corsika_longitudinal_shower_development.schema.yml +27 -0
- simtools/schemas/model_parameters/corsika_observation_level.schema.yml +38 -0
- simtools/schemas/model_parameters/corsika_particle_kinetic_energy_cutoff.schema.yml +52 -0
- simtools/schemas/model_parameters/corsika_starting_grammage.schema.yml +27 -0
- simtools/schemas/model_parameters/dark_events.schema.yml +32 -0
- simtools/schemas/model_parameters/default_trigger.schema.yml +35 -0
- simtools/schemas/model_parameters/design_model.schema.yml +31 -0
- simtools/schemas/model_parameters/disc_ac_coupled.schema.yml +32 -0
- simtools/schemas/model_parameters/disc_bins.schema.yml +39 -0
- simtools/schemas/model_parameters/disc_start.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_amplitude.schema.yml +42 -0
- simtools/schemas/model_parameters/discriminator_fall_time.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_gate_length.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_hysteresis.schema.yml +39 -0
- simtools/schemas/model_parameters/discriminator_output_amplitude.schema.yml +40 -0
- simtools/schemas/model_parameters/discriminator_output_var_percent.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_pulse_shape.schema.yml +33 -0
- simtools/schemas/model_parameters/discriminator_rise_time.schema.yml +42 -0
- simtools/schemas/model_parameters/discriminator_scale_threshold.schema.yml +37 -0
- simtools/schemas/model_parameters/discriminator_sigsum_over_threshold.schema.yml +44 -0
- simtools/schemas/model_parameters/discriminator_threshold.schema.yml +36 -0
- simtools/schemas/model_parameters/discriminator_time_over_threshold.schema.yml +45 -0
- simtools/schemas/model_parameters/discriminator_var_gate_length.schema.yml +40 -0
- simtools/schemas/model_parameters/discriminator_var_sigsum_over_threshold.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_var_threshold.schema.yml +38 -0
- simtools/schemas/model_parameters/discriminator_var_time_over_threshold.schema.yml +38 -0
- simtools/schemas/model_parameters/dish_shape_length.schema.yml +41 -0
- simtools/schemas/model_parameters/dsum_clipping.schema.yml +38 -0
- simtools/schemas/model_parameters/dsum_ignore_below.schema.yml +38 -0
- simtools/schemas/model_parameters/dsum_offset.schema.yml +37 -0
- simtools/schemas/model_parameters/dsum_pedsub.schema.yml +33 -0
- simtools/schemas/model_parameters/dsum_pre_clipping.schema.yml +39 -0
- simtools/schemas/model_parameters/dsum_prescale.schema.yml +44 -0
- simtools/schemas/model_parameters/dsum_presum_max.schema.yml +38 -0
- simtools/schemas/model_parameters/dsum_presum_shift.schema.yml +45 -0
- simtools/schemas/model_parameters/dsum_shaping.schema.yml +44 -0
- simtools/schemas/model_parameters/dsum_shaping_renormalize.schema.yml +32 -0
- simtools/schemas/model_parameters/dsum_threshold.schema.yml +43 -0
- simtools/schemas/model_parameters/dsum_zero_clip.schema.yml +42 -0
- simtools/schemas/model_parameters/effective_focal_length.schema.yml +61 -0
- simtools/schemas/model_parameters/epsg_code.schema.yml +37 -0
- simtools/schemas/model_parameters/fadc_ac_coupled.schema.yml +35 -0
- simtools/schemas/model_parameters/fadc_amplitude.schema.yml +46 -0
- simtools/schemas/model_parameters/fadc_bins.schema.yml +40 -0
- simtools/schemas/model_parameters/fadc_compensate_pedestal.schema.yml +50 -0
- simtools/schemas/model_parameters/fadc_dev_pedestal.schema.yml +38 -0
- simtools/schemas/model_parameters/fadc_err_compensate_pedestal.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_err_pedestal.schema.yml +49 -0
- simtools/schemas/model_parameters/fadc_lg_amplitude.schema.yml +47 -0
- simtools/schemas/model_parameters/fadc_lg_compensate_pedestal.schema.yml +51 -0
- simtools/schemas/model_parameters/fadc_lg_dev_pedestal.schema.yml +37 -0
- simtools/schemas/model_parameters/fadc_lg_err_compensate_pedestal.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_lg_err_pedestal.schema.yml +49 -0
- simtools/schemas/model_parameters/fadc_lg_max_signal.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_lg_max_sum.schema.yml +39 -0
- simtools/schemas/model_parameters/fadc_lg_noise.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_lg_pedestal.schema.yml +40 -0
- simtools/schemas/model_parameters/fadc_lg_sensitivity.schema.yml +50 -0
- simtools/schemas/model_parameters/fadc_lg_sysvar_pedestal.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_lg_var_pedestal.schema.yml +41 -0
- simtools/schemas/model_parameters/fadc_lg_var_sensitivity.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_max_signal.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_max_sum.schema.yml +39 -0
- simtools/schemas/model_parameters/fadc_mhz.schema.yml +31 -0
- simtools/schemas/model_parameters/fadc_noise.schema.yml +41 -0
- simtools/schemas/model_parameters/fadc_pedestal.schema.yml +40 -0
- simtools/schemas/model_parameters/fadc_pulse_shape.schema.yml +39 -0
- simtools/schemas/model_parameters/fadc_sensitivity.schema.yml +50 -0
- simtools/schemas/model_parameters/fadc_sum_bins.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_sum_offset.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_sysvar_pedestal.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_var_pedestal.schema.yml +41 -0
- simtools/schemas/model_parameters/fadc_var_sensitivity.schema.yml +42 -0
- simtools/schemas/model_parameters/flatfielding.schema.yml +37 -0
- simtools/schemas/model_parameters/focal_length.schema.yml +45 -0
- simtools/schemas/model_parameters/focal_surface_parameters.schema.yml +158 -0
- simtools/schemas/model_parameters/focal_surface_ref_radius.schema.yml +29 -0
- simtools/schemas/model_parameters/focus_offset.schema.yml +66 -0
- simtools/schemas/model_parameters/gain_variation.schema.yml +43 -0
- simtools/schemas/model_parameters/geomag_horizontal.schema.yml +34 -0
- simtools/schemas/model_parameters/geomag_rotation.schema.yml +37 -0
- simtools/schemas/model_parameters/geomag_vertical.schema.yml +34 -0
- simtools/schemas/model_parameters/hg_lg_variation.schema.yml +36 -0
- simtools/schemas/model_parameters/iobuf_maximum.schema.yml +34 -0
- simtools/schemas/model_parameters/iobuf_output_maximum.schema.yml +34 -0
- simtools/schemas/model_parameters/laser_events.schema.yml +36 -0
- simtools/schemas/model_parameters/laser_external_trigger.schema.yml +35 -0
- simtools/schemas/model_parameters/laser_photons.schema.yml +32 -0
- simtools/schemas/model_parameters/laser_pulse_exptime.schema.yml +34 -0
- simtools/schemas/model_parameters/laser_pulse_offset.schema.yml +34 -0
- simtools/schemas/model_parameters/laser_pulse_sigtime.schema.yml +33 -0
- simtools/schemas/model_parameters/laser_pulse_twidth.schema.yml +33 -0
- simtools/schemas/model_parameters/laser_var_photons.schema.yml +33 -0
- simtools/schemas/model_parameters/laser_wavelength.schema.yml +33 -0
- simtools/schemas/model_parameters/led_events.schema.yml +34 -0
- simtools/schemas/model_parameters/led_photons.schema.yml +34 -0
- simtools/schemas/model_parameters/led_pulse_offset.schema.yml +32 -0
- simtools/schemas/model_parameters/led_pulse_sigtime.schema.yml +33 -0
- simtools/schemas/model_parameters/led_var_photons.schema.yml +34 -0
- simtools/schemas/model_parameters/lightguide_efficiency_vs_incidence_angle.schema.yml +41 -0
- simtools/schemas/model_parameters/lightguide_efficiency_vs_wavelength.schema.yml +43 -0
- simtools/schemas/model_parameters/min_photoelectrons.schema.yml +35 -0
- simtools/schemas/model_parameters/min_photons.schema.yml +32 -0
- simtools/schemas/model_parameters/mirror_align_random_distance.schema.yml +36 -0
- simtools/schemas/model_parameters/mirror_align_random_horizontal.schema.yml +64 -0
- simtools/schemas/model_parameters/mirror_align_random_vertical.schema.yml +64 -0
- simtools/schemas/model_parameters/mirror_class.schema.yml +41 -0
- simtools/schemas/model_parameters/mirror_degraded_reflection.schema.yml +51 -0
- simtools/schemas/model_parameters/mirror_focal_length.schema.yml +42 -0
- simtools/schemas/model_parameters/mirror_list.schema.yml +38 -0
- simtools/schemas/model_parameters/mirror_offset.schema.yml +41 -0
- simtools/schemas/model_parameters/mirror_panel_2f_measurements.schema.yml +39 -0
- simtools/schemas/model_parameters/mirror_reflection_random_angle.schema.yml +61 -0
- simtools/schemas/model_parameters/mirror_reflectivity.schema.yml +40 -0
- simtools/schemas/model_parameters/multiplicity_offset.schema.yml +46 -0
- simtools/schemas/model_parameters/nsb_autoscale_airmass.schema.yml +51 -0
- simtools/schemas/model_parameters/nsb_gain_drop_scale.schema.yml +37 -0
- simtools/schemas/model_parameters/nsb_offaxis.schema.yml +79 -0
- simtools/schemas/model_parameters/nsb_pixel_rate.schema.yml +47 -0
- simtools/schemas/model_parameters/nsb_reference_spectrum.schema.yml +34 -0
- simtools/schemas/model_parameters/nsb_reference_value.schema.yml +33 -0
- simtools/schemas/model_parameters/nsb_scaling_factor.schema.yml +35 -0
- simtools/schemas/model_parameters/nsb_skymap.schema.yml +39 -0
- simtools/schemas/model_parameters/nsb_spectrum.schema.yml +50 -0
- simtools/schemas/model_parameters/num_gains.schema.yml +34 -0
- simtools/schemas/model_parameters/only_triggered_telescopes.schema.yml +33 -0
- simtools/schemas/model_parameters/optics_properties.schema.yml +31 -0
- simtools/schemas/model_parameters/parabolic_dish.schema.yml +32 -0
- simtools/schemas/model_parameters/pedestal_events.schema.yml +32 -0
- simtools/schemas/model_parameters/photon_delay.schema.yml +38 -0
- simtools/schemas/model_parameters/photons_per_run.schema.yml +33 -0
- simtools/schemas/model_parameters/pixel_cells.schema.yml +35 -0
- simtools/schemas/model_parameters/pixels_parallel.schema.yml +54 -0
- simtools/schemas/model_parameters/pixeltrg_time_step.schema.yml +40 -0
- simtools/schemas/model_parameters/pm_average_gain.schema.yml +34 -0
- simtools/schemas/model_parameters/pm_collection_efficiency.schema.yml +40 -0
- simtools/schemas/model_parameters/pm_gain_index.schema.yml +36 -0
- simtools/schemas/model_parameters/pm_photoelectron_spectrum.schema.yml +41 -0
- simtools/schemas/model_parameters/pm_transit_time.schema.yml +63 -0
- simtools/schemas/model_parameters/pm_voltage_variation.schema.yml +39 -0
- simtools/schemas/model_parameters/primary_mirror_degraded_map.schema.yml +42 -0
- simtools/schemas/model_parameters/primary_mirror_diameter.schema.yml +33 -0
- simtools/schemas/model_parameters/primary_mirror_hole_diameter.schema.yml +33 -0
- simtools/schemas/model_parameters/primary_mirror_incidence_angle.schema.yml +29 -0
- simtools/schemas/model_parameters/primary_mirror_parameters.schema.yml +168 -0
- simtools/schemas/model_parameters/primary_mirror_ref_radius.schema.yml +36 -0
- simtools/schemas/model_parameters/primary_mirror_segmentation.schema.yml +34 -0
- simtools/schemas/model_parameters/qe_variation.schema.yml +43 -0
- simtools/schemas/model_parameters/quantum_efficiency.schema.yml +42 -0
- simtools/schemas/model_parameters/random_focal_length.schema.yml +45 -0
- simtools/schemas/model_parameters/random_generator.schema.yml +36 -0
- simtools/schemas/model_parameters/reference_point_altitude.schema.yml +35 -0
- simtools/schemas/model_parameters/reference_point_latitude.schema.yml +36 -0
- simtools/schemas/model_parameters/reference_point_longitude.schema.yml +36 -0
- simtools/schemas/model_parameters/reference_point_utm_east.schema.yml +34 -0
- simtools/schemas/model_parameters/reference_point_utm_north.schema.yml +34 -0
- simtools/schemas/model_parameters/sampled_output.schema.yml +31 -0
- simtools/schemas/model_parameters/save_pe_with_amplitude.schema.yml +34 -0
- simtools/schemas/model_parameters/secondary_mirror_baffle.schema.yml +79 -0
- simtools/schemas/model_parameters/secondary_mirror_degraded_map.schema.yml +42 -0
- simtools/schemas/model_parameters/secondary_mirror_degraded_reflection.schema.yml +41 -0
- simtools/schemas/model_parameters/secondary_mirror_diameter.schema.yml +33 -0
- simtools/schemas/model_parameters/secondary_mirror_hole_diameter.schema.yml +36 -0
- simtools/schemas/model_parameters/secondary_mirror_incidence_angle.schema.yml +29 -0
- simtools/schemas/model_parameters/secondary_mirror_parameters.schema.yml +168 -0
- simtools/schemas/model_parameters/secondary_mirror_ref_radius.schema.yml +36 -0
- simtools/schemas/model_parameters/secondary_mirror_reflectivity.schema.yml +35 -0
- simtools/schemas/model_parameters/secondary_mirror_segmentation.schema.yml +37 -0
- simtools/schemas/model_parameters/secondary_mirror_shadow_diameter.schema.yml +40 -0
- simtools/schemas/model_parameters/secondary_mirror_shadow_offset.schema.yml +40 -0
- simtools/schemas/model_parameters/store_photoelectrons.schema.yml +41 -0
- simtools/schemas/model_parameters/tailcut_scale.schema.yml +40 -0
- simtools/schemas/model_parameters/telescope_axis_height.schema.yml +31 -0
- simtools/schemas/model_parameters/telescope_random_angle.schema.yml +35 -0
- simtools/schemas/model_parameters/telescope_random_error.schema.yml +34 -0
- simtools/schemas/model_parameters/telescope_sphere_radius.schema.yml +37 -0
- simtools/schemas/model_parameters/telescope_transmission.schema.yml +113 -0
- simtools/schemas/model_parameters/teltrig_min_sigsum.schema.yml +41 -0
- simtools/schemas/model_parameters/teltrig_min_time.schema.yml +36 -0
- simtools/schemas/model_parameters/transit_time_calib_error.schema.yml +36 -0
- simtools/schemas/model_parameters/transit_time_compensate_error.schema.yml +37 -0
- simtools/schemas/model_parameters/transit_time_compensate_step.schema.yml +38 -0
- simtools/schemas/model_parameters/transit_time_error.schema.yml +45 -0
- simtools/schemas/model_parameters/transit_time_jitter.schema.yml +36 -0
- simtools/schemas/model_parameters/trigger_current_limit.schema.yml +32 -0
- simtools/schemas/model_parameters/trigger_delay_compensation.schema.yml +53 -0
- simtools/schemas/model_parameters/trigger_pixels.schema.yml +40 -0
- simtools/simtel/simtel_config_reader.py +353 -0
- simtools/simtel/simtel_config_writer.py +244 -63
- simtools/simtel/{simtel_events.py → simtel_io_events.py} +26 -25
- simtools/simtel/simtel_io_histogram.py +661 -0
- simtools/simtel/simtel_io_histograms.py +569 -0
- simtools/simtel/simulator_array.py +145 -0
- simtools/simtel/{simtel_runner_camera_efficiency.py → simulator_camera_efficiency.py} +76 -52
- simtools/simtel/simulator_light_emission.py +473 -0
- simtools/simtel/simulator_ray_tracing.py +262 -0
- simtools/simulator.py +220 -446
- simtools/testing/__init__.py +0 -0
- simtools/testing/assertions.py +151 -0
- simtools/testing/configuration.py +226 -0
- simtools/testing/helpers.py +42 -0
- simtools/testing/validate_output.py +240 -0
- simtools/utils/general.py +340 -437
- simtools/utils/geometry.py +12 -12
- simtools/utils/names.py +258 -644
- simtools/utils/value_conversion.py +176 -0
- simtools/version.py +2 -0
- simtools/visualization/legend_handlers.py +135 -152
- simtools/visualization/plot_camera.py +379 -0
- simtools/visualization/visualize.py +346 -167
- gammasimtools-0.6.1.dist-info/METADATA +0 -180
- gammasimtools-0.6.1.dist-info/RECORD +0 -91
- gammasimtools-0.6.1.dist-info/entry_points.txt +0 -23
- simtools/applications/db_development_tools/add_new_parameter_to_db.py +0 -81
- simtools/applications/db_development_tools/add_unit_to_parameter_in_db.py +0 -59
- simtools/applications/db_development_tools/mark_non_optics_parameters_non_applicable.py +0 -102
- simtools/applications/get_parameter.py +0 -92
- simtools/applications/make_regular_arrays.py +0 -160
- simtools/applications/produce_array_config.py +0 -136
- simtools/applications/production.py +0 -313
- simtools/applications/sim_showers_for_trigger_rates.py +0 -187
- simtools/applications/tune_psf.py +0 -334
- simtools/corsika/corsika_default_config.py +0 -282
- simtools/corsika/corsika_runner.py +0 -450
- simtools/corsika_simtel/corsika_simtel_runner.py +0 -197
- simtools/db_handler.py +0 -1480
- simtools/ray_tracing.py +0 -525
- simtools/simtel/simtel_histograms.py +0 -414
- simtools/simtel/simtel_runner.py +0 -244
- simtools/simtel/simtel_runner_array.py +0 -293
- simtools/simtel/simtel_runner_ray_tracing.py +0 -277
- {gammasimtools-0.6.1.dist-info → gammasimtools-0.8.1.dist-info}/LICENSE +0 -0
- {gammasimtools-0.6.1.dist-info → gammasimtools-0.8.1.dist-info}/top_level.txt +0 -0
- /simtools/{corsika_simtel → db}/__init__.py +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"""Application configuration."""
|
|
2
|
+
|
|
1
3
|
import argparse
|
|
2
4
|
import logging
|
|
3
5
|
import os
|
|
@@ -13,11 +15,11 @@ from simtools.utils import general as gen
|
|
|
13
15
|
|
|
14
16
|
__all__ = [
|
|
15
17
|
"Configurator",
|
|
16
|
-
"
|
|
18
|
+
"InvalidConfigurationParameterError",
|
|
17
19
|
]
|
|
18
20
|
|
|
19
21
|
|
|
20
|
-
class
|
|
22
|
+
class InvalidConfigurationParameterError(Exception):
|
|
21
23
|
"""Exception for Invalid configuration parameter."""
|
|
22
24
|
|
|
23
25
|
|
|
@@ -51,10 +53,7 @@ class Configurator:
|
|
|
51
53
|
"""
|
|
52
54
|
|
|
53
55
|
def __init__(self, config=None, label=None, usage=None, description=None, epilog=None):
|
|
54
|
-
"""
|
|
55
|
-
Initialize Configurator.
|
|
56
|
-
"""
|
|
57
|
-
|
|
56
|
+
"""Initialize Configurator."""
|
|
58
57
|
self._logger = logging.getLogger(__name__)
|
|
59
58
|
self._logger.debug("Init Configuration")
|
|
60
59
|
|
|
@@ -71,7 +70,7 @@ class Configurator:
|
|
|
71
70
|
|
|
72
71
|
def default_config(self, arg_list=None, add_db_config=False):
|
|
73
72
|
"""
|
|
74
|
-
|
|
73
|
+
Return dictionary of default configuration.
|
|
75
74
|
|
|
76
75
|
Parameters
|
|
77
76
|
----------
|
|
@@ -85,10 +84,13 @@ class Configurator:
|
|
|
85
84
|
dict
|
|
86
85
|
Configuration parameters as dict.
|
|
87
86
|
"""
|
|
88
|
-
|
|
89
87
|
self.parser.initialize_default_arguments()
|
|
88
|
+
simulation_model = None
|
|
90
89
|
if arg_list and "--site" in arg_list:
|
|
91
|
-
|
|
90
|
+
simulation_model = ["site"]
|
|
91
|
+
if arg_list and "--telescope" in arg_list:
|
|
92
|
+
simulation_model = ["site", "telescope"]
|
|
93
|
+
self.parser.initialize_simulation_model_arguments(simulation_model)
|
|
92
94
|
if add_db_config:
|
|
93
95
|
self.parser.initialize_db_config_arguments()
|
|
94
96
|
|
|
@@ -100,14 +102,15 @@ class Configurator:
|
|
|
100
102
|
require_command_line=True,
|
|
101
103
|
paths=True,
|
|
102
104
|
output=False,
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
simulation_model=None,
|
|
106
|
+
simulation_configuration=None,
|
|
105
107
|
db_config=False,
|
|
106
108
|
job_submission=False,
|
|
107
109
|
):
|
|
108
110
|
"""
|
|
109
|
-
Initialize
|
|
110
|
-
|
|
111
|
+
Initialize application configuration.
|
|
112
|
+
|
|
113
|
+
Configure from command line, configuration file, class config, or environmental variable.
|
|
111
114
|
|
|
112
115
|
Priorities in parameter settings.
|
|
113
116
|
1. command line; 2. yaml file; 3. class init; 4. env variables.
|
|
@@ -124,10 +127,10 @@ class Configurator:
|
|
|
124
127
|
Add path configuration to list of args.
|
|
125
128
|
output: bool
|
|
126
129
|
Add output file configuration to list of args.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
130
|
+
simulation_model: list
|
|
131
|
+
List of simulation model configuration parameters to add to list of args
|
|
132
|
+
simulation_configuration: dict
|
|
133
|
+
Dict of simulation software configuration parameters to add to list of args.
|
|
131
134
|
db_config: bool
|
|
132
135
|
Add database configuration parameters to list of args.
|
|
133
136
|
job_submission: bool
|
|
@@ -140,18 +143,12 @@ class Configurator:
|
|
|
140
143
|
dict
|
|
141
144
|
Dictionary with DB parameters
|
|
142
145
|
|
|
143
|
-
Raises
|
|
144
|
-
------
|
|
145
|
-
InvalidConfigurationParameter
|
|
146
|
-
if parameter has already been defined with a different value.
|
|
147
|
-
|
|
148
146
|
"""
|
|
149
|
-
|
|
150
147
|
self.parser.initialize_default_arguments(
|
|
151
148
|
paths=paths,
|
|
152
149
|
output=output,
|
|
153
|
-
|
|
154
|
-
|
|
150
|
+
simulation_model=simulation_model,
|
|
151
|
+
simulation_configuration=simulation_configuration,
|
|
155
152
|
db_config=db_config,
|
|
156
153
|
job_submission=job_submission,
|
|
157
154
|
)
|
|
@@ -176,6 +173,7 @@ class Configurator:
|
|
|
176
173
|
def _fill_from_command_line(self, arg_list=None, require_command_line=True):
|
|
177
174
|
"""
|
|
178
175
|
Fill configuration parameters from command line arguments.
|
|
176
|
+
|
|
179
177
|
Triggers a print of the help if no command line arguments are given and
|
|
180
178
|
require_command_line is set.
|
|
181
179
|
|
|
@@ -186,13 +184,7 @@ class Configurator:
|
|
|
186
184
|
require_command_line: bool
|
|
187
185
|
Require at least one command line argument.
|
|
188
186
|
|
|
189
|
-
Raises
|
|
190
|
-
------
|
|
191
|
-
InvalidConfigurationParameter
|
|
192
|
-
invalid configuration.
|
|
193
|
-
|
|
194
187
|
"""
|
|
195
|
-
|
|
196
188
|
if arg_list is None:
|
|
197
189
|
arg_list = sys.argv[1:]
|
|
198
190
|
|
|
@@ -208,12 +200,11 @@ class Configurator:
|
|
|
208
200
|
def _reset_required_arguments(self):
|
|
209
201
|
"""
|
|
210
202
|
Reset required parser arguments (i.e., arguments added with "required=True").
|
|
211
|
-
Includes also mutually exclusive groups.
|
|
212
203
|
|
|
204
|
+
Includes also mutually exclusive groups.
|
|
213
205
|
Access protected attributes of parser (no public method available).
|
|
214
206
|
|
|
215
207
|
"""
|
|
216
|
-
|
|
217
208
|
for group in self.parser._mutually_exclusive_groups: # pylint: disable=protected-access
|
|
218
209
|
group.required = False
|
|
219
210
|
for action in self.parser._actions: # pylint: disable=protected-access
|
|
@@ -221,8 +212,9 @@ class Configurator:
|
|
|
221
212
|
|
|
222
213
|
def _fill_from_config_dict(self, input_dict, overwrite=False):
|
|
223
214
|
"""
|
|
224
|
-
Fill configuration parameters from dictionary.
|
|
225
|
-
|
|
215
|
+
Fill configuration parameters from dictionary.
|
|
216
|
+
|
|
217
|
+
Enforce that configuration parameter names are lower case.
|
|
226
218
|
|
|
227
219
|
Parameters
|
|
228
220
|
----------
|
|
@@ -245,8 +237,9 @@ class Configurator:
|
|
|
245
237
|
|
|
246
238
|
def _check_parameter_configuration_status(self, key, value):
|
|
247
239
|
"""
|
|
248
|
-
Check if a parameter is already configured and not still set to the default value.
|
|
249
|
-
|
|
240
|
+
Check if a parameter is already configured and not still set to the default value.
|
|
241
|
+
|
|
242
|
+
Allow configuration with None values.
|
|
250
243
|
|
|
251
244
|
Parameters
|
|
252
245
|
----------
|
|
@@ -256,10 +249,8 @@ class Configurator:
|
|
|
256
249
|
|
|
257
250
|
Raises
|
|
258
251
|
------
|
|
259
|
-
|
|
252
|
+
InvalidConfigurationParameterError
|
|
260
253
|
if parameter has already been defined with a different value.
|
|
261
|
-
|
|
262
|
-
|
|
263
254
|
"""
|
|
264
255
|
# parameter not changed or None
|
|
265
256
|
if self.parser.get_default(key) == self.config[key] or self.config[key] is None:
|
|
@@ -271,7 +262,7 @@ class Configurator:
|
|
|
271
262
|
f"Inconsistent configuration parameter ({key}) definition "
|
|
272
263
|
f"({self.config[key]} vs {value})"
|
|
273
264
|
)
|
|
274
|
-
raise
|
|
265
|
+
raise InvalidConfigurationParameterError
|
|
275
266
|
|
|
276
267
|
def _fill_from_config_file(self, config_file):
|
|
277
268
|
"""
|
|
@@ -288,11 +279,10 @@ class Configurator:
|
|
|
288
279
|
if configuration file has not been found.
|
|
289
280
|
|
|
290
281
|
"""
|
|
291
|
-
|
|
292
282
|
try:
|
|
293
283
|
self._logger.debug(f"Reading configuration from {config_file}")
|
|
294
|
-
_config_dict =
|
|
295
|
-
file_name=config_file
|
|
284
|
+
_config_dict = (
|
|
285
|
+
gen.collect_data_from_file(file_name=config_file) if config_file else None
|
|
296
286
|
)
|
|
297
287
|
# yaml parser adds \n in multiline strings, remove them
|
|
298
288
|
_config_dict = gen.remove_substring_recursively_from_dict(_config_dict, substring="\n")
|
|
@@ -319,11 +309,11 @@ class Configurator:
|
|
|
319
309
|
|
|
320
310
|
def _fill_from_environmental_variables(self):
|
|
321
311
|
"""
|
|
322
|
-
Fill any configuration parameters
|
|
323
|
-
from environmental variables or from file (default: ".env").
|
|
312
|
+
Fill any configuration parameters from environmental variables or from file (e.g., ".env").
|
|
324
313
|
|
|
325
|
-
|
|
314
|
+
Only parameters which are not already configured are changed (i.e., parameter is None).
|
|
326
315
|
|
|
316
|
+
"""
|
|
327
317
|
_env_dict = {}
|
|
328
318
|
try:
|
|
329
319
|
load_dotenv(self.config["env_file"])
|
|
@@ -341,10 +331,7 @@ class Configurator:
|
|
|
341
331
|
self._fill_from_config_dict(_env_dict)
|
|
342
332
|
|
|
343
333
|
def _initialize_io_handler(self):
|
|
344
|
-
"""
|
|
345
|
-
Initialize IOHandler with input and output paths.
|
|
346
|
-
|
|
347
|
-
"""
|
|
334
|
+
"""Initialize IOHandler with input and output paths."""
|
|
348
335
|
_io_handler = io_handler.IOHandler()
|
|
349
336
|
_io_handler.set_paths(
|
|
350
337
|
output_path=self.config.get("output_path", None),
|
|
@@ -354,11 +341,9 @@ class Configurator:
|
|
|
354
341
|
)
|
|
355
342
|
|
|
356
343
|
def _initialize_output(self):
|
|
357
|
-
"""
|
|
358
|
-
Initialize default output file names (in case output_file is not configured).
|
|
359
|
-
|
|
360
|
-
"""
|
|
344
|
+
"""Initialize default output file names (in case output_file is not configured)."""
|
|
361
345
|
if self.config.get("output_file", None) is None:
|
|
346
|
+
self.config["output_file_from_default"] = True
|
|
362
347
|
prefix = "TEST"
|
|
363
348
|
label = extension = ""
|
|
364
349
|
if not self.config.get("test", False):
|
|
@@ -395,17 +380,15 @@ class Configurator:
|
|
|
395
380
|
Dict keys and values as dict.
|
|
396
381
|
|
|
397
382
|
"""
|
|
398
|
-
|
|
399
383
|
if isinstance(input_var, dict):
|
|
400
384
|
_list_args = []
|
|
401
385
|
for key, value in input_var.items():
|
|
402
386
|
if isinstance(value, list):
|
|
403
387
|
_list_args.append("--" + key)
|
|
404
|
-
_list_args
|
|
405
|
-
elif isinstance(value, u.Quantity)
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
elif not isinstance(value, bool) and value is not None and len(str(value)) > 0:
|
|
388
|
+
_list_args.extend(map(str, value))
|
|
389
|
+
elif isinstance(value, u.Quantity) or (
|
|
390
|
+
not isinstance(value, bool) and value is not None and len(str(value)) > 0
|
|
391
|
+
):
|
|
409
392
|
_list_args.append("--" + key)
|
|
410
393
|
_list_args.append(str(value))
|
|
411
394
|
elif value:
|
|
@@ -418,7 +401,7 @@ class Configurator:
|
|
|
418
401
|
return []
|
|
419
402
|
|
|
420
403
|
@staticmethod
|
|
421
|
-
def
|
|
404
|
+
def _convert_string_none_to_none(input_dict):
|
|
422
405
|
"""
|
|
423
406
|
Convert string type 'None' to type None (argparse returns None as str).
|
|
424
407
|
|
|
@@ -428,7 +411,6 @@ class Configurator:
|
|
|
428
411
|
Dictionary with values to be converted.
|
|
429
412
|
|
|
430
413
|
"""
|
|
431
|
-
|
|
432
414
|
for key, value in input_dict.items():
|
|
433
415
|
input_dict[key] = None if value == "None" else value
|
|
434
416
|
|
|
@@ -442,10 +424,8 @@ class Configurator:
|
|
|
442
424
|
----------
|
|
443
425
|
input_container
|
|
444
426
|
List or dictionary with configuration updates.
|
|
445
|
-
|
|
446
427
|
"""
|
|
447
|
-
|
|
448
|
-
self.config = self._convert_stringnone_to_none(
|
|
428
|
+
self.config = self._convert_string_none_to_none(
|
|
449
429
|
vars(
|
|
450
430
|
self.parser.parse_args(
|
|
451
431
|
self._arglist_from_config(self.config)
|
|
@@ -456,18 +436,22 @@ class Configurator:
|
|
|
456
436
|
|
|
457
437
|
def _get_db_parameters(self):
|
|
458
438
|
"""
|
|
459
|
-
Return parameters for DB configuration
|
|
439
|
+
Return parameters for DB configuration.
|
|
460
440
|
|
|
461
441
|
Parameters
|
|
462
442
|
----------
|
|
463
443
|
dict
|
|
464
444
|
Dictionary with DB parameters
|
|
465
|
-
|
|
466
|
-
|
|
467
445
|
"""
|
|
468
|
-
|
|
469
446
|
_db_dict = {}
|
|
470
|
-
_db_para = (
|
|
447
|
+
_db_para = (
|
|
448
|
+
"db_api_user",
|
|
449
|
+
"db_api_pw",
|
|
450
|
+
"db_api_port",
|
|
451
|
+
"db_server",
|
|
452
|
+
"db_simulation_model",
|
|
453
|
+
"db_simulation_model_url",
|
|
454
|
+
)
|
|
471
455
|
try:
|
|
472
456
|
for _para in _db_para:
|
|
473
457
|
_db_dict[_para] = self.config[_para]
|
simtools/constants.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"""Project wide constants."""
|
|
2
2
|
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
3
5
|
# Path to metadata jsonschema
|
|
4
|
-
METADATA_JSON_SCHEMA = "schemas/metadata.metaschema.yml"
|
|
5
|
-
# Path to data and modelparameter jsonschema
|
|
6
|
-
DATA_JSON_SCHEMA = "schemas/data.metaschema.yml"
|
|
6
|
+
METADATA_JSON_SCHEMA = Path(__file__).parent / "../simtools/schemas/metadata.metaschema.yml"
|
|
7
7
|
|
|
8
|
-
#
|
|
9
|
-
|
|
8
|
+
# Path to model parameter schema files
|
|
9
|
+
MODEL_PARAMETER_SCHEMA_PATH = Path(__file__).parent / "../simtools/schemas/model_parameters"
|