gammasimtools 0.17.0__py3-none-any.whl → 0.19.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.17.0.dist-info → gammasimtools-0.19.0.dist-info}/METADATA +27 -69
- gammasimtools-0.19.0.dist-info/RECORD +393 -0
- {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/entry_points.txt +10 -2
- {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/licenses/LICENSE +1 -1
- simtools/_version.py +16 -3
- simtools/applications/calculate_trigger_rate.py +1 -1
- 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 +10 -1
- simtools/applications/db_add_value_from_json_to_db.py +2 -1
- simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +8 -13
- simtools/applications/db_generate_compound_indexes.py +61 -0
- simtools/applications/db_get_file_from_db.py +1 -1
- simtools/applications/db_get_parameter_from_db.py +4 -4
- simtools/applications/db_inspect_databases.py +20 -10
- simtools/applications/derive_mirror_rnda.py +18 -12
- simtools/applications/derive_psf_parameters.py +59 -309
- 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_sim_telarray_histograms.py +1 -1
- simtools/applications/generate_simtel_event_data.py +97 -5
- 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 +16 -18
- simtools/applications/plot_array_layout.py +3 -3
- simtools/applications/plot_simtel_events.py +379 -0
- simtools/applications/plot_tabular_data.py +21 -3
- simtools/applications/plot_tabular_data_for_model_parameter.py +104 -0
- simtools/applications/print_version.py +8 -9
- simtools/applications/production_derive_corsika_limits.py +64 -27
- 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 +2 -1
- 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 +31 -1
- simtools/configuration/configurator.py +4 -4
- simtools/constants.py +2 -0
- 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 +88 -24
- simtools/data_model/validate_data.py +34 -9
- simtools/db/db_handler.py +48 -37
- simtools/db/db_model_upload.py +3 -3
- simtools/dependencies.py +88 -25
- simtools/io/ascii_handler.py +279 -0
- simtools/{io_operations → io}/io_handler.py +25 -3
- simtools/{io_operations/io_table_handler.py → io/table_handler.py} +1 -1
- simtools/job_execution/htcondor_script_generator.py +15 -4
- simtools/layout/array_layout.py +1 -1
- simtools/layout/array_layout_utils.py +19 -8
- simtools/model/array_model.py +28 -5
- simtools/model/flasher_model.py +106 -0
- simtools/model/model_parameter.py +4 -4
- simtools/model/model_repository.py +197 -2
- simtools/model/telescope_model.py +3 -1
- simtools/production_configuration/derive_corsika_limits.py +361 -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/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/resources/array-element-ids.json +126 -0
- 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 +7 -3
- 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 +42 -1
- simtools/schemas/model_parameters/atmospheric_transmission.schema.yml +44 -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 +11 -1
- simtools/schemas/model_parameters/camera_filter_incidence_angle.schema.yml +11 -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 +32 -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 +13 -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 +11 -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 +11 -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 +13 -1
- 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 +1 -1
- 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 +20 -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 +11 -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 +1 -1
- 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 +51 -59
- simtools/schemas/production_configuration_metrics.schema.yml +12 -2
- simtools/schemas/production_tables.schema.yml +2 -2
- simtools/simtel/simtel_config_reader.py +2 -2
- simtools/simtel/simtel_config_writer.py +16 -4
- simtools/simtel/simtel_io_event_histograms.py +746 -0
- simtools/simtel/simtel_io_event_reader.py +16 -43
- simtools/simtel/simtel_io_event_writer.py +46 -10
- simtools/simtel/simtel_io_histogram.py +3 -1
- simtools/simtel/simtel_io_histograms.py +7 -3
- simtools/simtel/simtel_io_metadata.py +99 -3
- simtools/simtel/simtel_table_reader.py +92 -10
- 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/testing/configuration.py +24 -26
- simtools/testing/helpers.py +2 -2
- simtools/testing/log_inspector.py +50 -0
- simtools/testing/validate_output.py +87 -37
- simtools/utils/general.py +125 -257
- simtools/utils/geometry.py +36 -0
- simtools/utils/names.py +72 -3
- simtools/visualization/legend_handlers.py +180 -264
- simtools/visualization/plot_array_layout.py +20 -8
- simtools/visualization/plot_pixels.py +1 -2
- simtools/visualization/plot_tables.py +202 -27
- simtools/visualization/simtel_event_plots.py +816 -0
- simtools/visualization/visualize.py +4 -101
- gammasimtools-0.17.0.dist-info/RECORD +0 -374
- simtools/production_configuration/derive_corsika_limits_grid.py +0 -189
- {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/WHEEL +0 -0
- {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.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/{schemas → resources}/array_elements.yml +0 -0
simtools/_version.py
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
# file generated by setuptools-scm
|
|
2
2
|
# don't change, don't track in version control
|
|
3
3
|
|
|
4
|
-
__all__ = [
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
5
12
|
|
|
6
13
|
TYPE_CHECKING = False
|
|
7
14
|
if TYPE_CHECKING:
|
|
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
|
|
|
9
16
|
from typing import Union
|
|
10
17
|
|
|
11
18
|
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
12
20
|
else:
|
|
13
21
|
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
14
23
|
|
|
15
24
|
version: str
|
|
16
25
|
__version__: str
|
|
17
26
|
__version_tuple__: VERSION_TUPLE
|
|
18
27
|
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
19
30
|
|
|
20
|
-
__version__ = version = '0.
|
|
21
|
-
__version_tuple__ = version_tuple = (0,
|
|
31
|
+
__version__ = version = '0.19.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 19, 0)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = None
|
|
@@ -48,7 +48,7 @@ from pathlib import Path
|
|
|
48
48
|
|
|
49
49
|
import simtools.utils.general as gen
|
|
50
50
|
from simtools.configuration import configurator
|
|
51
|
-
from simtools.
|
|
51
|
+
from simtools.io import io_handler
|
|
52
52
|
from simtools.simtel.simtel_io_histograms import SimtelIOHistograms
|
|
53
53
|
|
|
54
54
|
|
|
@@ -69,7 +69,8 @@ import simtools.data_model.model_data_writer as writer
|
|
|
69
69
|
import simtools.utils.general as gen
|
|
70
70
|
from simtools.configuration import configurator
|
|
71
71
|
from simtools.data_model import schema
|
|
72
|
-
from simtools.
|
|
72
|
+
from simtools.io import ascii_handler
|
|
73
|
+
from simtools.io.io_handler import IOHandler
|
|
73
74
|
from simtools.simtel import simtel_config_reader
|
|
74
75
|
|
|
75
76
|
|
|
@@ -170,7 +171,7 @@ def get_number_of_camera_pixel(args_dict, logger):
|
|
|
170
171
|
)
|
|
171
172
|
_camera_pixel = config_reader.parameter_dict.get(args_dict["simtel_telescope_name"])
|
|
172
173
|
except (FileNotFoundError, AttributeError):
|
|
173
|
-
logger.warning("
|
|
174
|
+
logger.warning("Unable to retrieve camera pixel parameter.")
|
|
174
175
|
_camera_pixel = None
|
|
175
176
|
logger.info(f"Number of camera pixels: {_camera_pixel}")
|
|
176
177
|
return _camera_pixel
|
|
@@ -319,7 +320,7 @@ def print_list_of_files(args_dict, logger):
|
|
|
319
320
|
"""
|
|
320
321
|
model_files = sorted(Path(args_dict["output_path"]).rglob("*.json"))
|
|
321
322
|
for file in model_files:
|
|
322
|
-
model_dict =
|
|
323
|
+
model_dict = ascii_handler.collect_data_from_file(file_name=file)
|
|
323
324
|
if model_dict.get("file"):
|
|
324
325
|
logger.info(f"{file.name}: {model_dict['value']}")
|
|
325
326
|
|
|
@@ -140,10 +140,10 @@ def _parse(label=None, description=None):
|
|
|
140
140
|
def main():
|
|
141
141
|
"""Print a list of array elements."""
|
|
142
142
|
label = Path(__file__).stem
|
|
143
|
-
|
|
143
|
+
model_parameter_name = "array_coordinates"
|
|
144
144
|
args_dict, db_config = _parse(
|
|
145
145
|
label,
|
|
146
|
-
description=f"Print a list of array element positions ({
|
|
146
|
+
description=f"Print a list of array element positions ({model_parameter_name})",
|
|
147
147
|
)
|
|
148
148
|
|
|
149
149
|
logger = logging.getLogger()
|
|
@@ -153,7 +153,7 @@ def main():
|
|
|
153
153
|
site = args_dict.get("site", None)
|
|
154
154
|
metadata, validate_schema_file = None, None
|
|
155
155
|
else:
|
|
156
|
-
metadata = MetadataCollector(args_dict=args_dict,
|
|
156
|
+
metadata = MetadataCollector(args_dict=args_dict, model_parameter_name=model_parameter_name)
|
|
157
157
|
site = metadata.get_site(from_input_meta=True)
|
|
158
158
|
validate_schema_file = metadata.get_data_model_schema_file_name()
|
|
159
159
|
|
|
@@ -18,7 +18,16 @@ r"""
|
|
|
18
18
|
|
|
19
19
|
Examples
|
|
20
20
|
--------
|
|
21
|
-
Upload model data repository to the DB
|
|
21
|
+
Upload model data repository to the DB
|
|
22
|
+
Loops over all subdirectories in 'input_path' and uploads all json files to the
|
|
23
|
+
database 'new_db_name' (or updates an existing database with the same name):
|
|
24
|
+
|
|
25
|
+
* subdirectories starting with 'OBS' are uploaded to the 'sites' collection
|
|
26
|
+
* json files from the subdirectory 'configuration_sim_telarray/configuration_corsika'
|
|
27
|
+
are uploaded to the 'configuration_sim_telarray/configuration_corsika' collection
|
|
28
|
+
* 'Files' are added to the 'files' collection
|
|
29
|
+
* all other json files are uploaded to collection defined in the array element description
|
|
30
|
+
in 'simtools/schemas/array_elements.yml'
|
|
22
31
|
|
|
23
32
|
.. code-block:: console
|
|
24
33
|
|
|
@@ -32,6 +32,7 @@ from pathlib import Path
|
|
|
32
32
|
import simtools.utils.general as gen
|
|
33
33
|
from simtools.configuration import configurator
|
|
34
34
|
from simtools.db import db_handler
|
|
35
|
+
from simtools.io import ascii_handler
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
def _parse():
|
|
@@ -86,7 +87,7 @@ def main(): # noqa: D103
|
|
|
86
87
|
|
|
87
88
|
if gen.user_confirm():
|
|
88
89
|
for file_to_insert_now in files_to_insert:
|
|
89
|
-
par_dict =
|
|
90
|
+
par_dict = ascii_handler.collect_data_from_file(file_name=file_to_insert_now)
|
|
90
91
|
logger.info(f"Adding the following parameter to the DB: {par_dict['parameter']}")
|
|
91
92
|
db.add_new_parameter(
|
|
92
93
|
db_name=db_config["db_simulation_model"],
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
|
|
34
34
|
"""
|
|
35
35
|
|
|
36
|
-
import json
|
|
37
36
|
import logging
|
|
38
37
|
from pathlib import Path
|
|
39
38
|
|
|
@@ -41,7 +40,8 @@ import astropy.table
|
|
|
41
40
|
|
|
42
41
|
import simtools.utils.general as gen
|
|
43
42
|
from simtools.configuration import configurator
|
|
44
|
-
from simtools.data_model.model_data_writer import
|
|
43
|
+
from simtools.data_model.model_data_writer import ModelDataWriter
|
|
44
|
+
from simtools.io import ascii_handler
|
|
45
45
|
from simtools.model.array_model import ArrayModel
|
|
46
46
|
|
|
47
47
|
|
|
@@ -145,17 +145,12 @@ def write_ground_array_elements_to_repository(args_dict, db_config, logger):
|
|
|
145
145
|
output_path = Path(args_dict["repository_path"]) / f"{element_name}"
|
|
146
146
|
output_path.mkdir(parents=True, exist_ok=True)
|
|
147
147
|
logger.info(f"Writing array element positions (ground) to {output_path}")
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
indent=4,
|
|
155
|
-
sort_keys=False,
|
|
156
|
-
cls=JsonNumpyEncoder,
|
|
157
|
-
)
|
|
158
|
-
file.write("\n")
|
|
148
|
+
ascii_handler.write_data_to_file(
|
|
149
|
+
data=data,
|
|
150
|
+
output_file=output_path / "array_element_position_ground.json",
|
|
151
|
+
sort_keys=False,
|
|
152
|
+
numpy_types=True,
|
|
153
|
+
)
|
|
159
154
|
|
|
160
155
|
|
|
161
156
|
def main():
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/python3
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generate compound indexes for the specified database.
|
|
5
|
+
|
|
6
|
+
This needs to be done once after a database has been set up.
|
|
7
|
+
Significantly accelerates database querying (at least a factor
|
|
8
|
+
of 5 in query time with a factor of 10 less documents examined).
|
|
9
|
+
|
|
10
|
+
Command line arguments
|
|
11
|
+
----------------------
|
|
12
|
+
db_name (str, optional)
|
|
13
|
+
Database name (use "all" for all databases)
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import logging
|
|
17
|
+
|
|
18
|
+
import simtools.utils.general as gen
|
|
19
|
+
from simtools.configuration import configurator
|
|
20
|
+
from simtools.db import db_handler
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _parse():
|
|
24
|
+
config = configurator.Configurator(
|
|
25
|
+
description="Generate compound indexes for a specific database"
|
|
26
|
+
)
|
|
27
|
+
config.parser.add_argument(
|
|
28
|
+
"--db_name",
|
|
29
|
+
help="Database name",
|
|
30
|
+
default="all",
|
|
31
|
+
required=True,
|
|
32
|
+
)
|
|
33
|
+
return config.initialize(db_config=True)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def main(): # noqa: D103
|
|
37
|
+
args_dict, db_config = _parse()
|
|
38
|
+
|
|
39
|
+
logger = logging.getLogger()
|
|
40
|
+
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
41
|
+
|
|
42
|
+
db = db_handler.DatabaseHandler(mongo_db_config=db_config)
|
|
43
|
+
# databases without internal databases we don't have rights to modify
|
|
44
|
+
databases = [
|
|
45
|
+
d for d in db.db_client.list_database_names() if d not in ("config", "admin", "local")
|
|
46
|
+
]
|
|
47
|
+
requested = args_dict["db_name"]
|
|
48
|
+
if requested != "all" and requested not in databases:
|
|
49
|
+
raise ValueError(
|
|
50
|
+
f"Requested database '{requested}' not found. "
|
|
51
|
+
f"Following databases are available: {', '.join(databases)}"
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
databases = databases if requested == "all" else [requested]
|
|
55
|
+
for db_name in databases:
|
|
56
|
+
logger.info(f"Generating compound indexes for database: {db_name}")
|
|
57
|
+
db.generate_compound_indexes(db_name=db_name)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
if __name__ == "__main__":
|
|
61
|
+
main()
|
|
@@ -60,7 +60,6 @@ r"""
|
|
|
60
60
|
|
|
61
61
|
"""
|
|
62
62
|
|
|
63
|
-
import json
|
|
64
63
|
import logging
|
|
65
64
|
from pathlib import Path
|
|
66
65
|
from pprint import pprint
|
|
@@ -68,7 +67,7 @@ from pprint import pprint
|
|
|
68
67
|
import simtools.utils.general as gen
|
|
69
68
|
from simtools.configuration import configurator
|
|
70
69
|
from simtools.db import db_handler
|
|
71
|
-
from simtools.
|
|
70
|
+
from simtools.io import ascii_handler, io_handler
|
|
72
71
|
|
|
73
72
|
|
|
74
73
|
def _parse():
|
|
@@ -142,8 +141,9 @@ def main(): # noqa: D103
|
|
|
142
141
|
)
|
|
143
142
|
pars[args_dict["parameter"]].pop("_id")
|
|
144
143
|
pars[args_dict["parameter"]].pop("entry_date")
|
|
145
|
-
|
|
146
|
-
|
|
144
|
+
ascii_handler.write_data_to_file(
|
|
145
|
+
data=pars[args_dict["parameter"]], output_file=_output_file
|
|
146
|
+
)
|
|
147
147
|
else:
|
|
148
148
|
pprint(pars[args_dict["parameter"]])
|
|
149
149
|
|
|
@@ -6,7 +6,7 @@ Inspect databases and print (available database names and collections).
|
|
|
6
6
|
Command line arguments
|
|
7
7
|
----------------------
|
|
8
8
|
db_name (str, optional)
|
|
9
|
-
|
|
9
|
+
Database name (use "all" for all databases)
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
12
|
import logging
|
|
@@ -20,11 +20,11 @@ def _parse():
|
|
|
20
20
|
config = configurator.Configurator(description="Inspect databases")
|
|
21
21
|
config.parser.add_argument(
|
|
22
22
|
"--db_name",
|
|
23
|
-
help="
|
|
23
|
+
help="Database name",
|
|
24
24
|
default="all",
|
|
25
25
|
required=True,
|
|
26
26
|
)
|
|
27
|
-
return config.initialize(db_config=True
|
|
27
|
+
return config.initialize(db_config=True)
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
def main(): # noqa: D103
|
|
@@ -34,18 +34,28 @@ def main(): # noqa: D103
|
|
|
34
34
|
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
|
|
35
35
|
|
|
36
36
|
db = db_handler.DatabaseHandler(mongo_db_config=db_config)
|
|
37
|
-
|
|
38
|
-
databases =
|
|
37
|
+
# databases without internal databases we don't have rights to modify
|
|
38
|
+
databases = [
|
|
39
|
+
d for d in db.db_client.list_database_names() if d not in ("config", "admin", "local")
|
|
40
|
+
]
|
|
41
|
+
requested = args_dict["db_name"]
|
|
42
|
+
if requested != "all" and requested not in databases:
|
|
43
|
+
raise ValueError(
|
|
44
|
+
f"Requested database '{requested}' not found. "
|
|
45
|
+
f"Following databases are available: {', '.join(databases)}"
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
databases = databases if requested == "all" else [requested]
|
|
39
49
|
|
|
40
50
|
for db_name in databases:
|
|
41
|
-
if args_dict["db_name"] != "all" and db_name != args_dict["db_name"]:
|
|
42
|
-
continue
|
|
43
|
-
# missing admin rights; skip config and admin
|
|
44
|
-
if db_name in ("config", "admin", "local"):
|
|
45
|
-
continue
|
|
46
51
|
print("Database:", db_name)
|
|
47
52
|
collections = db.get_collections(db_name=db_name)
|
|
48
53
|
print(" Collections:", collections)
|
|
54
|
+
print(" Indexes:")
|
|
55
|
+
for collection_name in collections:
|
|
56
|
+
db_collection = db.get_collection(collection_name=collection_name, db_name=db_name)
|
|
57
|
+
for idx in db_collection.list_indexes():
|
|
58
|
+
print(f" {collection_name}: {idx}")
|
|
49
59
|
|
|
50
60
|
|
|
51
61
|
if __name__ == "__main__":
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/python3
|
|
2
2
|
|
|
3
3
|
r"""
|
|
4
|
-
Derive
|
|
5
|
-
|
|
6
|
-
This parameter, often referred to as "mirror roughness," is used to align the simulation
|
|
7
|
-
with the measured containment diameter of the optical point-spread function (PSF) for
|
|
8
|
-
individual mirror panels.
|
|
4
|
+
Derive mirror random reflection angle (mirror roughness) of a single mirror panel.
|
|
9
5
|
|
|
10
6
|
Description
|
|
11
7
|
-----------
|
|
12
8
|
|
|
13
9
|
This application derives the value of the simulation model parameter
|
|
14
10
|
*mirror_reflection_random_angle* using measurements of the focal length
|
|
15
|
-
and PSF of individual mirror panels.
|
|
11
|
+
and point-spread function (PSF) of individual mirror panels.
|
|
12
|
+
This parameter is sometimes referred to as the "mirror roughness".
|
|
16
13
|
|
|
17
14
|
PSF measurements are provided by one of the following options:
|
|
18
15
|
|
|
@@ -22,7 +19,7 @@ r"""
|
|
|
22
19
|
* file (table) with measured PSF for each mirror panel spot size (``--psf_measurement``)
|
|
23
20
|
|
|
24
21
|
The containment fraction used for the PSF diameter calculation is set through
|
|
25
|
-
the argument ``--containment_fraction`` (typically 0.8 = 80
|
|
22
|
+
the argument ``--containment_fraction`` (typically 0.8 = 80%; called below D80).
|
|
26
23
|
|
|
27
24
|
Mirror panels are simulated individually, using one of the following options to set the
|
|
28
25
|
mirror panel focal length:
|
|
@@ -37,7 +34,7 @@ r"""
|
|
|
37
34
|
taken from the Model Parameters DB (default) or can be set using the argument ``--rnda``.
|
|
38
35
|
|
|
39
36
|
Ray-tracing simulations are performed for single mirror configurations for each
|
|
40
|
-
mirror given in the
|
|
37
|
+
mirror given in the mirror list. The mean simulated containment diameter for all the mirrors
|
|
41
38
|
is compared with the mean measured containment diameter. The algorithm defines a new value for
|
|
42
39
|
the random reflection angle based on the sign of the difference between measured and simulated
|
|
43
40
|
containment diameters and a new set of simulations is performed. This process is repeated
|
|
@@ -59,7 +56,7 @@ r"""
|
|
|
59
56
|
.. image:: images/derive_mirror_rnda_North-MST-FlashCam-D_D80-distributions.png
|
|
60
57
|
:width: 49 %
|
|
61
58
|
|
|
62
|
-
This application uses the following
|
|
59
|
+
This application uses the following software tools:
|
|
63
60
|
|
|
64
61
|
- sim_telarray/bin/sim_telarray
|
|
65
62
|
- sim_telarray/bin/rx (optional)
|
|
@@ -67,7 +64,7 @@ r"""
|
|
|
67
64
|
Command line arguments
|
|
68
65
|
----------------------
|
|
69
66
|
telescope (str, required)
|
|
70
|
-
Telescope name (e.g.
|
|
67
|
+
Telescope name (e.g. LSTN-01, SSTS-25)
|
|
71
68
|
model_version (str, optional)
|
|
72
69
|
Model version
|
|
73
70
|
psf_measurement (str, optional)
|
|
@@ -89,6 +86,8 @@ r"""
|
|
|
89
86
|
random_focal_length (float, optional)
|
|
90
87
|
Value of the random focal lengths to replace the default random_focal_length. Only used if
|
|
91
88
|
'use_random_focal_length' is activated.
|
|
89
|
+
random_focal_length_seed (int, optional)
|
|
90
|
+
Seed for the random number generator used for focal length variation.
|
|
92
91
|
no_tuning (activation mode, optional)
|
|
93
92
|
Turn off the tuning - A single case will be simulated and plotted.
|
|
94
93
|
test (activation mode, optional)
|
|
@@ -96,8 +95,8 @@ r"""
|
|
|
96
95
|
|
|
97
96
|
Example
|
|
98
97
|
-------
|
|
99
|
-
Derive mirror random reflection angle for a
|
|
100
|
-
simulation production
|
|
98
|
+
Derive mirror random reflection angle for a large-sized telescope (LSTS),
|
|
99
|
+
simulation production 6.0.0
|
|
101
100
|
|
|
102
101
|
.. code-block:: console
|
|
103
102
|
|
|
@@ -200,6 +199,13 @@ def _parse(label):
|
|
|
200
199
|
type=float,
|
|
201
200
|
required=False,
|
|
202
201
|
)
|
|
202
|
+
config.parser.add_argument(
|
|
203
|
+
"--random_focal_length_seed",
|
|
204
|
+
help="Seed for the random number generator used for focal length variation.",
|
|
205
|
+
type=int,
|
|
206
|
+
required=False,
|
|
207
|
+
default=None,
|
|
208
|
+
)
|
|
203
209
|
config.parser.add_argument(
|
|
204
210
|
"--no_tuning",
|
|
205
211
|
help="no tuning of random_reflection_angle (a single case will be simulated).",
|