gammasimtools 0.18.0__py3-none-any.whl → 0.20.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.18.0.dist-info → gammasimtools-0.20.0.dist-info}/METADATA +24 -69
- gammasimtools-0.20.0.dist-info/RECORD +395 -0
- {gammasimtools-0.18.0.dist-info → gammasimtools-0.20.0.dist-info}/entry_points.txt +11 -4
- {gammasimtools-0.18.0.dist-info → gammasimtools-0.20.0.dist-info}/licenses/LICENSE +1 -1
- simtools/_version.py +16 -3
- simtools/applications/calculate_incident_angles.py +182 -0
- simtools/applications/convert_all_model_parameters_from_simtel.py +4 -3
- simtools/applications/convert_geo_coordinates_of_array_elements.py +3 -3
- simtools/applications/db_add_simulation_model_from_repository_to_db.py +17 -14
- simtools/applications/db_add_value_from_json_to_db.py +8 -10
- simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +8 -13
- simtools/applications/db_generate_compound_indexes.py +65 -0
- simtools/applications/db_get_file_from_db.py +12 -24
- simtools/applications/db_get_parameter_from_db.py +4 -4
- simtools/applications/db_inspect_databases.py +20 -10
- simtools/applications/derive_mirror_rnda.py +17 -11
- simtools/applications/derive_psf_parameters.py +59 -309
- simtools/applications/derive_trigger_rates.py +91 -0
- simtools/applications/docs_produce_array_element_report.py +1 -1
- simtools/applications/docs_produce_calibration_reports.py +1 -1
- simtools/applications/docs_produce_model_parameter_reports.py +1 -1
- simtools/applications/docs_produce_simulation_configuration_report.py +1 -1
- simtools/applications/generate_corsika_histograms.py +1 -1
- simtools/applications/generate_default_metadata.py +8 -24
- simtools/applications/generate_simtel_event_data.py +11 -11
- simtools/applications/maintain_simulation_model_add_production_table.py +71 -0
- simtools/applications/maintain_simulation_model_compare_productions.py +98 -0
- simtools/applications/{verify_simulation_model_production_tables.py → maintain_simulation_model_verify_production_tables.py} +9 -1
- simtools/applications/merge_tables.py +2 -2
- simtools/applications/plot_array_layout.py +3 -3
- simtools/applications/plot_simtel_events.py +421 -0
- simtools/applications/plot_tabular_data.py +9 -2
- simtools/applications/plot_tabular_data_for_model_parameter.py +2 -1
- simtools/applications/print_version.py +8 -9
- simtools/applications/production_derive_corsika_limits.py +6 -7
- simtools/applications/production_derive_statistics.py +1 -1
- simtools/applications/production_generate_grid.py +2 -2
- simtools/applications/production_merge_corsika_limits.py +214 -0
- simtools/applications/run_application.py +47 -113
- simtools/applications/simulate_calibration_events.py +166 -0
- simtools/applications/simulate_flasher.py +141 -0
- simtools/applications/{simulate_light_emission.py → simulate_illuminator.py} +35 -99
- simtools/applications/simulate_prod.py +6 -24
- simtools/applications/simulate_prod_htcondor_generator.py +7 -0
- simtools/applications/submit_array_layouts.py +2 -1
- simtools/applications/submit_model_parameter_from_external.py +1 -1
- simtools/applications/validate_camera_efficiency.py +30 -12
- simtools/applications/validate_camera_fov.py +1 -1
- simtools/applications/validate_cumulative_psf.py +1 -1
- simtools/applications/validate_file_using_schema.py +9 -5
- simtools/applications/validate_optics.py +1 -1
- simtools/camera/camera_efficiency.py +61 -45
- simtools/camera/single_photon_electron_spectrum.py +1 -1
- simtools/configuration/commandline_parser.py +46 -11
- simtools/configuration/configurator.py +4 -4
- simtools/corsika/corsika_config.py +45 -25
- simtools/corsika/corsika_histograms.py +6 -5
- simtools/data_model/data_reader.py +2 -3
- simtools/data_model/metadata_collector.py +32 -36
- simtools/data_model/metadata_model.py +15 -12
- simtools/data_model/model_data_writer.py +13 -32
- simtools/data_model/schema.py +74 -24
- simtools/data_model/validate_data.py +42 -12
- simtools/db/db_handler.py +125 -62
- simtools/db/db_model_upload.py +14 -19
- simtools/dependencies.py +98 -30
- simtools/io/ascii_handler.py +279 -0
- simtools/{io_operations → io}/io_handler.py +25 -3
- simtools/job_execution/htcondor_script_generator.py +15 -4
- simtools/layout/array_layout.py +1 -1
- simtools/layout/array_layout_utils.py +51 -12
- simtools/model/array_model.py +41 -5
- simtools/model/flasher_model.py +106 -0
- simtools/model/model_parameter.py +4 -4
- simtools/model/model_repository.py +197 -2
- simtools/model/site_model.py +25 -0
- simtools/model/telescope_model.py +3 -1
- simtools/production_configuration/derive_corsika_limits.py +336 -427
- simtools/production_configuration/derive_production_statistics_handler.py +7 -6
- simtools/production_configuration/generate_production_grid.py +9 -11
- simtools/production_configuration/merge_corsika_limits.py +528 -0
- simtools/ray_tracing/incident_angles.py +706 -0
- simtools/ray_tracing/mirror_panel_psf.py +1 -0
- simtools/ray_tracing/psf_parameter_optimisation.py +792 -0
- simtools/ray_tracing/ray_tracing.py +6 -2
- simtools/reporting/docs_read_parameters.py +150 -62
- simtools/runners/corsika_runner.py +1 -1
- simtools/runners/corsika_simtel_runner.py +14 -5
- simtools/runners/runner_services.py +10 -5
- simtools/runners/simtools_runner.py +267 -0
- simtools/schemas/application_workflow.metaschema.yml +101 -68
- simtools/schemas/input/MST_mirror_2f_measurements.schema.yml +1 -1
- simtools/schemas/input/single_pe_spectrum.schema.yml +1 -1
- simtools/schemas/metadata.metaschema.yml +577 -3
- simtools/schemas/model_parameter.metaschema.yml +6 -6
- simtools/schemas/model_parameter_and_data_schema.metaschema.yml +4 -4
- 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/array_window.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 +3 -3
- 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 +2 -2
- 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_long_event_threshold.schema.yml +35 -0
- simtools/schemas/model_parameters/fadc_long_sum_bins.schema.yml +41 -0
- simtools/schemas/model_parameters/fadc_long_sum_offset.schema.yml +38 -0
- 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/fake_mirror_list.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 +50 -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/muon_mono_threshold.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 +2 -2
- 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_sky_map.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_spectrum.schema.yml +23 -30
- 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 +11 -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/random_mono_probability.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 +11 -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 +11 -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/stars.schema.yml +2 -2
- 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/schemas/plot_configuration.metaschema.yml +5 -2
- simtools/schemas/production_configuration_metrics.schema.yml +12 -2
- simtools/schemas/production_tables.schema.yml +7 -2
- simtools/simtel/simtel_config_reader.py +2 -2
- simtools/simtel/simtel_config_writer.py +33 -23
- simtools/simtel/simtel_io_event_histograms.py +483 -0
- simtools/simtel/simtel_io_event_reader.py +65 -43
- simtools/simtel/simtel_io_event_writer.py +40 -20
- simtools/simtel/simtel_io_metadata.py +1 -1
- simtools/simtel/simtel_table_reader.py +95 -13
- simtools/simtel/simulator_array.py +138 -10
- simtools/simtel/simulator_camera_efficiency.py +32 -23
- simtools/simtel/simulator_light_emission.py +437 -271
- simtools/simtel/simulator_ray_tracing.py +1 -1
- simtools/simulator.py +105 -147
- simtools/telescope_trigger_rates.py +119 -0
- simtools/testing/configuration.py +24 -26
- simtools/testing/helpers.py +2 -2
- simtools/testing/log_inspector.py +52 -0
- simtools/testing/validate_output.py +87 -37
- simtools/utils/general.py +125 -255
- simtools/utils/geometry.py +56 -0
- simtools/utils/names.py +1 -1
- simtools/visualization/legend_handlers.py +180 -264
- simtools/visualization/plot_array_layout.py +20 -8
- simtools/visualization/plot_incident_angles.py +431 -0
- simtools/visualization/plot_pixels.py +1 -1
- simtools/visualization/plot_simtel_event_histograms.py +376 -0
- simtools/visualization/plot_simtel_events.py +816 -0
- simtools/visualization/plot_tables.py +133 -37
- simtools/visualization/visualize.py +1 -100
- gammasimtools-0.18.0.dist-info/RECORD +0 -376
- simtools/applications/calculate_trigger_rate.py +0 -187
- simtools/applications/generate_sim_telarray_histograms.py +0 -196
- simtools/production_configuration/derive_corsika_limits_grid.py +0 -232
- simtools/simtel/simtel_io_histogram.py +0 -621
- simtools/simtel/simtel_io_histograms.py +0 -552
- {gammasimtools-0.18.0.dist-info → gammasimtools-0.20.0.dist-info}/WHEEL +0 -0
- {gammasimtools-0.18.0.dist-info → gammasimtools-0.20.0.dist-info}/top_level.txt +0 -0
- /simtools/{io_operations → io}/hdf5_handler.py +0 -0
- /simtools/{io_operations → io}/legacy_data_handler.py +0 -0
- /simtools/{io_operations/io_table_handler.py → io/table_handler.py} +0 -0
|
@@ -21,16 +21,13 @@ r"""
|
|
|
21
21
|
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
|
-
import json
|
|
25
24
|
import logging
|
|
26
25
|
from pathlib import Path
|
|
27
26
|
|
|
28
|
-
import yaml
|
|
29
|
-
|
|
30
27
|
import simtools.utils.general as gen
|
|
31
28
|
from simtools.configuration import configurator
|
|
32
29
|
from simtools.data_model import metadata_model
|
|
33
|
-
from simtools.
|
|
30
|
+
from simtools.io import ascii_handler, io_handler
|
|
34
31
|
|
|
35
32
|
|
|
36
33
|
def _parse(label, description):
|
|
@@ -74,8 +71,8 @@ def main(): # noqa: D103
|
|
|
74
71
|
label, description="Generate a default simtools metadata file from a json schema."
|
|
75
72
|
)
|
|
76
73
|
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
logger = logging.getLogger()
|
|
75
|
+
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
79
76
|
|
|
80
77
|
default_values = metadata_model.get_default_metadata_dict(args_dict["schema"])
|
|
81
78
|
|
|
@@ -83,24 +80,11 @@ def main(): # noqa: D103
|
|
|
83
80
|
print(default_values)
|
|
84
81
|
else:
|
|
85
82
|
_io_handler = io_handler.IOHandler()
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
default_values,
|
|
92
|
-
file,
|
|
93
|
-
default_flow_style=False,
|
|
94
|
-
sort_keys=False,
|
|
95
|
-
)
|
|
96
|
-
if args_dict["output_file"].endswith(".json"):
|
|
97
|
-
with open(_out_file, "w", encoding="utf-8") as file:
|
|
98
|
-
json.dump(
|
|
99
|
-
default_values,
|
|
100
|
-
file,
|
|
101
|
-
indent=4,
|
|
102
|
-
sort_keys=False,
|
|
103
|
-
)
|
|
83
|
+
output_file = _io_handler.get_output_file(args_dict["output_file"])
|
|
84
|
+
logger.info(f"Writing default values to {output_file}")
|
|
85
|
+
ascii_handler.write_data_to_file(
|
|
86
|
+
data=default_values, output_file=output_file, sort_keys=False
|
|
87
|
+
)
|
|
104
88
|
|
|
105
89
|
|
|
106
90
|
if __name__ == "__main__":
|
|
@@ -24,19 +24,19 @@ The output consists of an HDF5 or FITS file containing the following tables:
|
|
|
24
24
|
+-------------------+---------+-----------------------------------------------+
|
|
25
25
|
| energy_max | float32 | Maximum simulated energy (TeV) |
|
|
26
26
|
+-------------------+---------+-----------------------------------------------+
|
|
27
|
-
| viewcone_min | float32 | Min viewcone angle (
|
|
27
|
+
| viewcone_min | float32 | Min viewcone angle (deg) |
|
|
28
28
|
+-------------------+---------+-----------------------------------------------+
|
|
29
|
-
| viewcone_max | float32 | Max viewcone angle (
|
|
29
|
+
| viewcone_max | float32 | Max viewcone angle (deg) |
|
|
30
30
|
+-------------------+---------+-----------------------------------------------+
|
|
31
31
|
| core_scatter_min | float32 | Min core scatter radius (m) |
|
|
32
32
|
+-------------------+---------+-----------------------------------------------+
|
|
33
33
|
| core_scatter_max | float32 | Max core scatter radius (m) |
|
|
34
34
|
+-------------------+---------+-----------------------------------------------+
|
|
35
|
-
| zenith | float32 | Zenith angle (
|
|
35
|
+
| zenith | float32 | Zenith angle (deg) |
|
|
36
36
|
+-------------------+---------+-----------------------------------------------+
|
|
37
|
-
| azimuth | float32 | Azimuth angle (
|
|
37
|
+
| azimuth | float32 | Azimuth angle (deg) |
|
|
38
38
|
+-------------------+---------+-----------------------------------------------+
|
|
39
|
-
| nsb_level | float64 | Night sky background level (
|
|
39
|
+
| nsb_level | float64 | Night sky background level (factor to dark) |
|
|
40
40
|
+-------------------+---------+-----------------------------------------------+
|
|
41
41
|
|
|
42
42
|
**SHOWERS**
|
|
@@ -56,9 +56,9 @@ The output consists of an HDF5 or FITS file containing the following tables:
|
|
|
56
56
|
+------------------+---------+-----------------------------------------------+
|
|
57
57
|
| y_core | float64 | Shower core Y position on ground (m) |
|
|
58
58
|
+------------------+---------+-----------------------------------------------+
|
|
59
|
-
| shower_azimuth | float64 | Direction of shower azimuth (
|
|
59
|
+
| shower_azimuth | float64 | Direction of shower azimuth (deg) |
|
|
60
60
|
+------------------+---------+-----------------------------------------------+
|
|
61
|
-
| shower_altitude | float64 | Direction of shower altitude (
|
|
61
|
+
| shower_altitude | float64 | Direction of shower altitude (deg) |
|
|
62
62
|
+------------------+---------+-----------------------------------------------+
|
|
63
63
|
| area_weight | float64 | Weighting factor for sampling area |
|
|
64
64
|
+------------------+---------+-----------------------------------------------+
|
|
@@ -74,9 +74,9 @@ The output consists of an HDF5 or FITS file containing the following tables:
|
|
|
74
74
|
+-----------------+---------+-----------------------------------------------+
|
|
75
75
|
| file_id | int64 | Internal unique identifier for the file |
|
|
76
76
|
+-----------------+---------+-----------------------------------------------+
|
|
77
|
-
| array_altitude | float64 | Altitude of array pointing direction (
|
|
77
|
+
| array_altitude | float64 | Altitude of array pointing direction (deg) |
|
|
78
78
|
+-----------------+---------+-----------------------------------------------+
|
|
79
|
-
| array_azimuth | float64 | Azimuth of array pointing direction (
|
|
79
|
+
| array_azimuth | float64 | Azimuth of array pointing direction (deg) |
|
|
80
80
|
+-----------------+---------+-----------------------------------------------+
|
|
81
81
|
| telescope_list | string | Comma-separated list of triggered telescopes |
|
|
82
82
|
+-----------------+---------+-----------------------------------------------+
|
|
@@ -130,7 +130,7 @@ from pathlib import Path
|
|
|
130
130
|
import simtools.utils.general as gen
|
|
131
131
|
from simtools.configuration import configurator
|
|
132
132
|
from simtools.data_model.metadata_collector import MetadataCollector
|
|
133
|
-
from simtools.
|
|
133
|
+
from simtools.io import io_handler, table_handler
|
|
134
134
|
from simtools.simtel.simtel_io_event_writer import SimtelIOEventDataWriter
|
|
135
135
|
|
|
136
136
|
|
|
@@ -187,7 +187,7 @@ def main(): # noqa: D103
|
|
|
187
187
|
output_filepath = io_handler.IOHandler().get_output_file(args_dict["output_file"])
|
|
188
188
|
generator = SimtelIOEventDataWriter(files, args_dict["max_files"])
|
|
189
189
|
tables = generator.process_files()
|
|
190
|
-
|
|
190
|
+
table_handler.write_tables(tables, output_filepath, overwrite_existing=True)
|
|
191
191
|
MetadataCollector.dump(args_dict=args_dict, output_file=output_filepath.with_suffix(".yml"))
|
|
192
192
|
|
|
193
193
|
if args_dict["print_dataset_information"] > 0:
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
r"""
|
|
2
|
+
Generate new simulation model production tables by copying existing table and apply modifications.
|
|
3
|
+
|
|
4
|
+
This script should be used to maintain the simulation model repository. It allow to create a
|
|
5
|
+
new production table by copying an existing base version and apply modification defined in a YAML
|
|
6
|
+
file (see the example file listed below).
|
|
7
|
+
|
|
8
|
+
Example
|
|
9
|
+
-------
|
|
10
|
+
.. code-block:: console
|
|
11
|
+
|
|
12
|
+
simtools-maintain-simulation-model-add-production-table \\
|
|
13
|
+
--simulation_models_path ../simulation-models-dev/simulation-models/ \\
|
|
14
|
+
--source_prod_table_dir 6.0.0 \\
|
|
15
|
+
--modifications tests/resources/production_tables_changes_for_threshold_study_6.2.0.yml
|
|
16
|
+
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
import logging
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
|
|
22
|
+
import simtools.utils.general as gen
|
|
23
|
+
from simtools.configuration import configurator
|
|
24
|
+
from simtools.model import model_repository
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _parse(label, description):
|
|
28
|
+
"""
|
|
29
|
+
Parse command line arguments.
|
|
30
|
+
|
|
31
|
+
Returns
|
|
32
|
+
-------
|
|
33
|
+
dict
|
|
34
|
+
Parsed command-line arguments.
|
|
35
|
+
"""
|
|
36
|
+
config = configurator.Configurator(label=label, description=description)
|
|
37
|
+
config.parser.add_argument(
|
|
38
|
+
"--simulation_models_path",
|
|
39
|
+
type=str,
|
|
40
|
+
required=True,
|
|
41
|
+
help="Path to the simulation models repository.",
|
|
42
|
+
)
|
|
43
|
+
config.parser.add_argument(
|
|
44
|
+
"--source_prod_table_dir",
|
|
45
|
+
type=str,
|
|
46
|
+
required=True,
|
|
47
|
+
help="The source production table directory to copy from.",
|
|
48
|
+
)
|
|
49
|
+
config.parser.add_argument(
|
|
50
|
+
"--modifications",
|
|
51
|
+
type=str,
|
|
52
|
+
required=True,
|
|
53
|
+
help="File containing the list of changes to apply.",
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
return config.initialize(db_config=False, output=False)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def main(): # noqa: D103
|
|
60
|
+
label = Path(__file__).stem
|
|
61
|
+
args_dict, _ = _parse(
|
|
62
|
+
label=label, description=("Copy and update simulation model production tables.")
|
|
63
|
+
)
|
|
64
|
+
logger = logging.getLogger()
|
|
65
|
+
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
66
|
+
|
|
67
|
+
model_repository.copy_and_update_production_table(args_dict)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
if __name__ == "__main__":
|
|
71
|
+
main()
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
r"""
|
|
2
|
+
Compare two directories with model production tables in JSON format.
|
|
3
|
+
|
|
4
|
+
This script should be used to support the maintenance the simulation model repository.
|
|
5
|
+
|
|
6
|
+
Example
|
|
7
|
+
-------
|
|
8
|
+
.. code-block:: console
|
|
9
|
+
|
|
10
|
+
simtools-maintain-simulation-model-compare-productions \\
|
|
11
|
+
--directory_1 ../simulation-models-dev/simulation-models/6.0.0/ \\
|
|
12
|
+
--directory_2 ../simulation-models-dev/simulation-models/6.2.0
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import logging
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
import simtools.utils.general as gen
|
|
20
|
+
from simtools.configuration import configurator
|
|
21
|
+
from simtools.io import ascii_handler
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _parse(label, description):
|
|
25
|
+
"""Parse command line arguments."""
|
|
26
|
+
config = configurator.Configurator(label=label, description=description)
|
|
27
|
+
config.parser.add_argument(
|
|
28
|
+
"--directory_1",
|
|
29
|
+
type=str,
|
|
30
|
+
required=True,
|
|
31
|
+
help="Path to the first directory containing JSON files.",
|
|
32
|
+
)
|
|
33
|
+
config.parser.add_argument(
|
|
34
|
+
"--directory_2",
|
|
35
|
+
type=str,
|
|
36
|
+
required=True,
|
|
37
|
+
help="Path to the second directory containing JSON files.",
|
|
38
|
+
)
|
|
39
|
+
return config.initialize(db_config=False, output=False)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def _print_differences(differences, rel_path):
|
|
43
|
+
"""Print differences in a readable format."""
|
|
44
|
+
print(f"Difference in {rel_path}:\n{'-' * 40}")
|
|
45
|
+
for diff in differences:
|
|
46
|
+
# Clean up the path formatting for better readability
|
|
47
|
+
clean_diff = diff.replace("['parameters']['", "parameters.").replace("']['", ".")
|
|
48
|
+
clean_diff = clean_diff.replace("['", "").replace("']", "")
|
|
49
|
+
print(f" {clean_diff}")
|
|
50
|
+
print(f"{'-' * 40}\n")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def _compare_json_dirs(dir1, dir2, ignore_key="model_version"):
|
|
54
|
+
"""Compare two directories containing JSON files, ignoring a specific key."""
|
|
55
|
+
for path1 in dir1.rglob("*.json"):
|
|
56
|
+
rel_path = path1.relative_to(dir1)
|
|
57
|
+
path2 = dir2 / rel_path
|
|
58
|
+
|
|
59
|
+
if not path2.exists():
|
|
60
|
+
print(f"Missing in dir2: {rel_path}")
|
|
61
|
+
continue
|
|
62
|
+
|
|
63
|
+
try:
|
|
64
|
+
json1 = gen.remove_key_from_dict(
|
|
65
|
+
ascii_handler.collect_data_from_file(path1), ignore_key
|
|
66
|
+
)
|
|
67
|
+
json2 = gen.remove_key_from_dict(
|
|
68
|
+
ascii_handler.collect_data_from_file(path2), ignore_key
|
|
69
|
+
)
|
|
70
|
+
except FileNotFoundError as e:
|
|
71
|
+
print(f"Error reading {rel_path}: {e}")
|
|
72
|
+
continue
|
|
73
|
+
|
|
74
|
+
differences = gen.find_differences_in_json_objects(json1, json2)
|
|
75
|
+
if differences:
|
|
76
|
+
_print_differences(differences, rel_path)
|
|
77
|
+
|
|
78
|
+
# Check for files present in dir2 but not dir1
|
|
79
|
+
for path2 in dir2.rglob("*.json"):
|
|
80
|
+
rel_path = path2.relative_to(dir2)
|
|
81
|
+
if not (dir1 / rel_path).exists():
|
|
82
|
+
print(f"Missing in dir1: {rel_path}")
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def main(): # noqa: D103
|
|
86
|
+
label = Path(__file__).stem
|
|
87
|
+
args_dict, _ = _parse(
|
|
88
|
+
label=label,
|
|
89
|
+
description=("Compare two directories with model production tables in JSON format."),
|
|
90
|
+
)
|
|
91
|
+
logger = logging.getLogger()
|
|
92
|
+
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
93
|
+
|
|
94
|
+
_compare_json_dirs(Path(args_dict["directory_1"]), Path(args_dict["directory_2"]))
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
if __name__ == "__main__":
|
|
98
|
+
main()
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/python3
|
|
2
2
|
|
|
3
|
-
"""
|
|
3
|
+
r"""
|
|
4
4
|
Verify simulation model production tables and model parameters for completeness.
|
|
5
5
|
|
|
6
6
|
This application is a utility to be used in the CI pipeline of the SimulationModels
|
|
7
7
|
repository. It checks that all model parameters defined in the production tables
|
|
8
8
|
exist in the simulation models repository.
|
|
9
9
|
|
|
10
|
+
Example
|
|
11
|
+
-------
|
|
12
|
+
|
|
13
|
+
.. code-block:: console
|
|
14
|
+
|
|
15
|
+
simtools-maintain-simulation-model-verify-production-tables \\
|
|
16
|
+
--simulation_models_path /path/to/simulation/models/repository
|
|
17
|
+
|
|
10
18
|
"""
|
|
11
19
|
|
|
12
20
|
import logging
|
|
@@ -41,7 +41,7 @@ from pathlib import Path
|
|
|
41
41
|
|
|
42
42
|
import simtools.utils.general as gen
|
|
43
43
|
from simtools.configuration import configurator
|
|
44
|
-
from simtools.
|
|
44
|
+
from simtools.io import io_handler, table_handler
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
def _parse(label, description):
|
|
@@ -91,7 +91,7 @@ def main(): # noqa: D103
|
|
|
91
91
|
output_path = io_handler.IOHandler().get_output_directory(label)
|
|
92
92
|
output_filepath = Path(output_path).joinpath(f"{args_dict['output_file']}")
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
table_handler.merge_tables(
|
|
95
95
|
input_files,
|
|
96
96
|
input_table_names=args_dict["table_names"],
|
|
97
97
|
output_file=output_filepath,
|
|
@@ -13,7 +13,7 @@ For the following options, array element positions are retrieved from the model
|
|
|
13
13
|
(``--plot_all_layouts``)
|
|
14
14
|
|
|
15
15
|
* from a model parameter file
|
|
16
|
-
(e.g., ``-array_layout_parameter_file tests/resources/model_parameters/array_layouts-2.0.
|
|
16
|
+
(e.g., ``-array_layout_parameter_file tests/resources/model_parameters/array_layouts-2.0.2.json``)
|
|
17
17
|
|
|
18
18
|
* from a list of array elements (e.g., ``-array_element_list MSTN-01, MSTN-02``).
|
|
19
19
|
Positions are retrieved from the database.
|
|
@@ -88,7 +88,7 @@ Plot layout from a parameter file with a list of telescopes:
|
|
|
88
88
|
.. code-block:: console
|
|
89
89
|
|
|
90
90
|
simtools-plot-array-layout
|
|
91
|
-
--array_layout_parameter_file tests/resources/model_parameters/array_layouts-2.0.
|
|
91
|
+
--array_layout_parameter_file tests/resources/model_parameters/array_layouts-2.0.2.json
|
|
92
92
|
--model_version 6.0.0
|
|
93
93
|
|
|
94
94
|
|
|
@@ -108,7 +108,7 @@ import matplotlib.pyplot as plt
|
|
|
108
108
|
import simtools.layout.array_layout_utils as layout_utils
|
|
109
109
|
import simtools.utils.general as gen
|
|
110
110
|
from simtools.configuration import configurator
|
|
111
|
-
from simtools.
|
|
111
|
+
from simtools.io import io_handler
|
|
112
112
|
from simtools.visualization import visualize
|
|
113
113
|
from simtools.visualization.plot_array_layout import plot_array_layout
|
|
114
114
|
|