gammasimtools 0.6.1__py3-none-any.whl → 0.8.2__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.2.dist-info/METADATA +173 -0
- gammasimtools-0.8.2.dist-info/RECORD +345 -0
- {gammasimtools-0.6.1.dist-info → gammasimtools-0.8.2.dist-info}/WHEEL +1 -1
- gammasimtools-0.8.2.dist-info/entry_points.txt +31 -0
- simtools/_dev_version/__init__.py +9 -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 +111 -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 +211 -185
- 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 +312 -259
- simtools/model/calibration_model.py +50 -0
- simtools/model/camera.py +277 -523
- simtools/model/mirrors.py +68 -49
- simtools/model/model_parameter.py +602 -0
- simtools/model/model_utils.py +11 -39
- simtools/model/site_model.py +161 -0
- simtools/model/telescope_model.py +143 -633
- 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 +257 -644
- simtools/utils/value_conversion.py +176 -0
- simtools/version.py +3 -1
- 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/_dev_version/scm_version.py +0 -10
- 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.2.dist-info}/LICENSE +0 -0
- {gammasimtools-0.6.1.dist-info → gammasimtools-0.8.2.dist-info}/top_level.txt +0 -0
- /simtools/{corsika_simtel → db}/__init__.py +0 -0
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/python3
|
|
2
|
-
"""
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
r"""
|
|
3
|
+
Validate a file or files in a directory using a schema.
|
|
4
|
+
|
|
5
|
+
Input files can be metadata, schema, or data files in yaml, json, or ecsv format.
|
|
6
6
|
|
|
7
7
|
Command line arguments
|
|
8
8
|
----------------------
|
|
9
9
|
file_name (str)
|
|
10
10
|
input file to be validated
|
|
11
|
+
model_parameters_directory (str)
|
|
12
|
+
directory with json files of model parameters to be validated
|
|
11
13
|
schema (str)
|
|
12
14
|
schema file (jsonschema format) used for validation
|
|
15
|
+
data_type (str)
|
|
16
|
+
type of input data (allowed types: metadata, schema, data)
|
|
13
17
|
|
|
14
18
|
Raises
|
|
15
19
|
------
|
|
@@ -21,23 +25,25 @@
|
|
|
21
25
|
|
|
22
26
|
.. code-block:: console
|
|
23
27
|
|
|
24
|
-
simtools-validate-file-using-schema
|
|
25
|
-
--file_name tests/resources/MLTdata-preproduction.meta.yml
|
|
26
|
-
--schema simtools/schemas/metadata.metaschema.yml
|
|
28
|
+
simtools-validate-file-using-schema \\
|
|
29
|
+
--file_name tests/resources/MLTdata-preproduction.meta.yml \\
|
|
30
|
+
--schema simtools/schemas/metadata.metaschema.yml \\
|
|
31
|
+
--data_type metadata
|
|
27
32
|
|
|
28
33
|
"""
|
|
29
34
|
|
|
30
35
|
import logging
|
|
36
|
+
from importlib.resources import files
|
|
31
37
|
from pathlib import Path
|
|
32
38
|
|
|
33
39
|
import simtools.utils.general as gen
|
|
34
40
|
from simtools.configuration import configurator
|
|
35
|
-
from simtools.data_model import
|
|
41
|
+
from simtools.data_model import metadata_collector, metadata_model, validate_data
|
|
36
42
|
|
|
37
43
|
|
|
38
44
|
def _parse(label, description):
|
|
39
45
|
"""
|
|
40
|
-
Parse command line configuration
|
|
46
|
+
Parse command line configuration.
|
|
41
47
|
|
|
42
48
|
Parameters
|
|
43
49
|
----------
|
|
@@ -52,75 +58,133 @@ def _parse(label, description):
|
|
|
52
58
|
application configuration
|
|
53
59
|
|
|
54
60
|
"""
|
|
55
|
-
|
|
56
61
|
config = configurator.Configurator(label=label, description=description)
|
|
57
|
-
config.parser.
|
|
58
|
-
|
|
62
|
+
group = config.parser.add_mutually_exclusive_group(required=True)
|
|
63
|
+
group.add_argument("--file_name", help="File to be validated")
|
|
64
|
+
group.add_argument(
|
|
65
|
+
"--model_parameters_directory",
|
|
66
|
+
help=(
|
|
67
|
+
"Directory with json files with model parameters to be validated."
|
|
68
|
+
"All *.json files in the directory will be validated."
|
|
69
|
+
"Schema files will be taken from simtools/schemas/model_parameters/."
|
|
70
|
+
"Note that in this case the data_type argument is ignored"
|
|
71
|
+
"and data_type=model_parameter is always used."
|
|
72
|
+
),
|
|
73
|
+
)
|
|
74
|
+
config.parser.add_argument("--schema", help="Json schema file", required=False)
|
|
75
|
+
config.parser.add_argument(
|
|
76
|
+
"--data_type",
|
|
77
|
+
help="Type of input data",
|
|
78
|
+
choices=["metadata", "schema", "data", "model_parameter"],
|
|
79
|
+
default="data",
|
|
80
|
+
)
|
|
59
81
|
config.parser.add_argument(
|
|
60
|
-
"--
|
|
61
|
-
help="
|
|
82
|
+
"--require_exact_data_type",
|
|
83
|
+
help="Require exact data type for validation",
|
|
62
84
|
action="store_true",
|
|
63
|
-
default=False,
|
|
64
85
|
)
|
|
65
86
|
return config.initialize(paths=False)
|
|
66
87
|
|
|
67
88
|
|
|
68
|
-
def
|
|
69
|
-
"""
|
|
70
|
-
Validate a yaml or json file.
|
|
71
|
-
Schema is either given as command line argument, read from the meta_schema_url or from
|
|
72
|
-
the metadata section of the data dictionary.
|
|
73
|
-
|
|
89
|
+
def _get_schema_file_name(args_dict, data_dict=None):
|
|
74
90
|
"""
|
|
91
|
+
Get schema file name from metadata, data dict, or from command line argument.
|
|
75
92
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
)
|
|
81
|
-
|
|
93
|
+
Parameters
|
|
94
|
+
----------
|
|
95
|
+
args_dict (dict)
|
|
96
|
+
command line arguments
|
|
97
|
+
data_dict (dict)
|
|
98
|
+
dictionary with metaschema information
|
|
82
99
|
|
|
100
|
+
Returns
|
|
101
|
+
-------
|
|
102
|
+
schema_file: str
|
|
103
|
+
schema file name
|
|
83
104
|
|
|
84
|
-
def _validate_ecsv_file(args_dict, logger):
|
|
85
105
|
"""
|
|
86
|
-
|
|
106
|
+
schema_file = args_dict.get("schema")
|
|
107
|
+
if schema_file is None and data_dict is not None:
|
|
108
|
+
schema_file = data_dict.get("meta_schema_url")
|
|
109
|
+
if schema_file is None:
|
|
110
|
+
metadata = metadata_collector.MetadataCollector(
|
|
111
|
+
None, metadata_file_name=args_dict["file_name"]
|
|
112
|
+
)
|
|
113
|
+
schema_file = metadata.get_data_model_schema_file_name()
|
|
114
|
+
return schema_file
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def validate_schema(args_dict, logger):
|
|
118
|
+
"""
|
|
119
|
+
Validate a schema file given in yaml or json format.
|
|
120
|
+
|
|
121
|
+
Schema is either given as command line argument, read from the meta_schema_url or from
|
|
122
|
+
the metadata section of the data dictionary.
|
|
87
123
|
|
|
88
124
|
"""
|
|
125
|
+
try:
|
|
126
|
+
data = gen.collect_data_from_file(file_name=args_dict["file_name"])
|
|
127
|
+
except FileNotFoundError as exc:
|
|
128
|
+
logger.error(f"Error reading schema file from {args_dict['file_name']}")
|
|
129
|
+
raise exc
|
|
130
|
+
metadata_model.validate_schema(data, _get_schema_file_name(args_dict, data))
|
|
131
|
+
logger.info(f"Successful validation of schema file {args_dict['file_name']}")
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def validate_data_files(args_dict, logger):
|
|
135
|
+
"""Validate data files."""
|
|
136
|
+
model_parameters_directory = args_dict.get("model_parameters_directory")
|
|
137
|
+
if model_parameters_directory is not None:
|
|
138
|
+
tmp_args_dict = {}
|
|
139
|
+
for file_name in Path(model_parameters_directory).rglob("*.json"):
|
|
140
|
+
tmp_args_dict["file_name"] = file_name
|
|
141
|
+
schema_file = (
|
|
142
|
+
files("simtools") / "schemas/model_parameters" / f"{file_name.stem}.schema.yml"
|
|
143
|
+
)
|
|
144
|
+
tmp_args_dict["schema"] = schema_file
|
|
145
|
+
tmp_args_dict["data_type"] = "model_parameter"
|
|
146
|
+
tmp_args_dict["require_exact_data_type"] = args_dict["require_exact_data_type"]
|
|
147
|
+
validate_data_file(tmp_args_dict, logger)
|
|
148
|
+
else:
|
|
149
|
+
validate_data_file(args_dict, logger)
|
|
150
|
+
|
|
89
151
|
|
|
152
|
+
def validate_data_file(args_dict, logger):
|
|
153
|
+
"""Validate a data file (e.g., in ecsv, json, yaml format)."""
|
|
90
154
|
data_validator = validate_data.DataValidator(
|
|
91
|
-
schema_file=args_dict
|
|
155
|
+
schema_file=_get_schema_file_name(args_dict),
|
|
92
156
|
data_file=args_dict["file_name"],
|
|
157
|
+
check_exact_data_type=args_dict["require_exact_data_type"],
|
|
93
158
|
)
|
|
94
|
-
data_validator.validate_and_transform()
|
|
95
|
-
|
|
96
|
-
|
|
159
|
+
data_validator.validate_and_transform(is_model_parameter=True)
|
|
160
|
+
if args_dict["data_type"].lower() == "model_parameter":
|
|
161
|
+
data_validator.validate_parameter_and_file_name()
|
|
97
162
|
|
|
98
|
-
|
|
99
|
-
"""
|
|
100
|
-
Validate metadata.
|
|
163
|
+
logger.info(f"Successful validation of data file {args_dict['file_name']}")
|
|
101
164
|
|
|
102
|
-
"""
|
|
103
165
|
|
|
166
|
+
def validate_metadata(args_dict, logger):
|
|
167
|
+
"""Validate metadata."""
|
|
104
168
|
# metadata_collector runs the metadata validation by default, no need to do anything else
|
|
105
169
|
metadata_collector.MetadataCollector(None, metadata_file_name=args_dict["file_name"])
|
|
106
|
-
logger.
|
|
170
|
+
logger.info(f"Successful validation of metadata {args_dict['file_name']}")
|
|
107
171
|
|
|
108
172
|
|
|
109
|
-
def main():
|
|
173
|
+
def main(): # noqa: D103
|
|
110
174
|
label = Path(__file__).stem
|
|
111
|
-
args_dict, _ = _parse(
|
|
175
|
+
args_dict, _ = _parse(
|
|
176
|
+
label, description="Validate a file (metadata, schema, or data file) using a schema."
|
|
177
|
+
)
|
|
112
178
|
|
|
113
179
|
logger = logging.getLogger()
|
|
114
180
|
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
115
181
|
|
|
116
|
-
if args_dict["
|
|
117
|
-
|
|
118
|
-
elif
|
|
119
|
-
|
|
120
|
-
elif args_dict["file_name"].endswith(".ecsv"):
|
|
121
|
-
_validate_ecsv_file(args_dict, logger)
|
|
182
|
+
if args_dict["data_type"].lower() == "metadata":
|
|
183
|
+
validate_metadata(args_dict, logger)
|
|
184
|
+
elif args_dict["data_type"].lower() == "schema":
|
|
185
|
+
validate_schema(args_dict, logger)
|
|
122
186
|
else:
|
|
123
|
-
|
|
187
|
+
validate_data_files(args_dict, logger)
|
|
124
188
|
|
|
125
189
|
|
|
126
190
|
if __name__ == "__main__":
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/python3
|
|
2
2
|
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
of the whole telescope, assuming a point-like light source. The output includes PSF (D80), \
|
|
3
|
+
r"""
|
|
4
|
+
Validate the optical model parameters through ray tracing simulations of the whole telescope.
|
|
5
|
+
|
|
6
|
+
A point-like light source is assumed. The output includes PSF (D80), \
|
|
8
7
|
effective mirror area and effective focal length as a function of the off-axis angle. \
|
|
9
8
|
|
|
10
9
|
The telescope zenith angle and the source distance can be set by command line arguments.
|
|
@@ -45,16 +44,14 @@
|
|
|
45
44
|
Produce a multiple pages pdf file with the image plots.
|
|
46
45
|
test (activation mode, optional)
|
|
47
46
|
If activated, application will be faster by simulating fewer photons.
|
|
48
|
-
verbosity (str, optional)
|
|
49
|
-
Log level to print.
|
|
50
47
|
|
|
51
48
|
Example
|
|
52
49
|
-------
|
|
53
|
-
LST-1
|
|
50
|
+
LST-1 5.0.0
|
|
54
51
|
|
|
55
52
|
.. code-block:: console
|
|
56
53
|
|
|
57
|
-
simtools-validate-optics --site North --telescope LST-1 --max_offset 1.0
|
|
54
|
+
simtools-validate-optics --site North --telescope LST-1 --max_offset 1.0 \\
|
|
58
55
|
--zenith 20 --src_distance 10 --test
|
|
59
56
|
|
|
60
57
|
The output is saved in simtools-output/validate_optics
|
|
@@ -80,15 +77,11 @@ import simtools.utils.general as gen
|
|
|
80
77
|
from simtools.configuration import configurator
|
|
81
78
|
from simtools.io_operations import io_handler
|
|
82
79
|
from simtools.model.telescope_model import TelescopeModel
|
|
83
|
-
from simtools.ray_tracing import RayTracing
|
|
80
|
+
from simtools.ray_tracing.ray_tracing import RayTracing
|
|
84
81
|
|
|
85
82
|
|
|
86
83
|
def _parse(label):
|
|
87
|
-
"""
|
|
88
|
-
Parse command line configuratio
|
|
89
|
-
|
|
90
|
-
"""
|
|
91
|
-
|
|
84
|
+
"""Parse command line configuration."""
|
|
92
85
|
config = configurator.Configurator(
|
|
93
86
|
label=label,
|
|
94
87
|
description=(
|
|
@@ -121,10 +114,10 @@ def _parse(label):
|
|
|
121
114
|
help="Produce a multiple pages pdf file with the image plots.",
|
|
122
115
|
action="store_true",
|
|
123
116
|
)
|
|
124
|
-
return config.initialize(db_config=True,
|
|
117
|
+
return config.initialize(db_config=True, simulation_model=["telescope"])
|
|
125
118
|
|
|
126
119
|
|
|
127
|
-
def main():
|
|
120
|
+
def main(): # noqa: D103
|
|
128
121
|
label = Path(__file__).stem
|
|
129
122
|
args_dict, db_config = _parse(label)
|
|
130
123
|
|
|
@@ -136,7 +129,7 @@ def main():
|
|
|
136
129
|
|
|
137
130
|
tel_model = TelescopeModel(
|
|
138
131
|
site=args_dict["site"],
|
|
139
|
-
|
|
132
|
+
telescope_name=args_dict["telescope"],
|
|
140
133
|
model_version=args_dict["model_version"],
|
|
141
134
|
label=label,
|
|
142
135
|
mongo_db_config=db_config,
|
|
@@ -155,13 +148,15 @@ def main():
|
|
|
155
148
|
|
|
156
149
|
print(f"\nValidating telescope optics with ray tracing simulations for {tel_model.name}\n")
|
|
157
150
|
|
|
158
|
-
ray = RayTracing
|
|
151
|
+
ray = RayTracing(
|
|
159
152
|
telescope_model=tel_model,
|
|
160
|
-
|
|
161
|
-
source_distance=args_dict["src_distance"] * u.km,
|
|
153
|
+
simtel_path=args_dict["simtel_path"],
|
|
162
154
|
zenith_angle=args_dict["zenith"] * u.deg,
|
|
155
|
+
source_distance=args_dict["src_distance"] * u.km,
|
|
163
156
|
off_axis_angle=np.linspace(
|
|
164
|
-
0,
|
|
157
|
+
0,
|
|
158
|
+
args_dict["max_offset"],
|
|
159
|
+
int(args_dict["max_offset"] / args_dict["offset_steps"]) + 1,
|
|
165
160
|
)
|
|
166
161
|
* u.deg,
|
|
167
162
|
)
|