Skip to main content

Configuration

All simulation parameters are defined in config.json. The file uses a nested format where each parameter has a value and description field.

Config Format

{
"atmosphere_params": {
"num_layers": {
"value": 20,
"description": "Number of atmospheric layers"
}
}
}

Top-Level Flags

KeyTypeDefaultDescription
real_world_simulation_flag.valuebooltrueWhen true, simulation steps = whole_simulation_time / per_tick_simulation. When false, defaults to 100 steps.
save.flagbooltrueWhether to save output files
create_data_set.flagboolfalseEnable dataset generation mode
create_data_set.number_of_datasetsint3Number of datasets to generate

Atmosphere Parameters

Parameters under atmosphere_params:

ParameterDefaultUnitsDescription
num_layers20--Number of atmospheric turbulence layers
total_r020e-2metersFried parameter (turbulence strength). Smaller values = stronger turbulence
phase_screen_size2048pixelsNxN grid size for phase screens
delta0.01metersSpatial resolution (pixel scale) of phase screens
ground_wind_speed5m/sWind speed at ground level
L025metersOuter scale of turbulence
wavefront_wavelength1.55e-6metersPropagating wavefront wavelength (1550 nm)
satellite_zenith_angle_starting0degreesStarting zenith angle (unvalidated -- do not change)

Simulation Parameters

Parameters under simulation_params:

ParameterDefaultUnitsDescription
whole_simulation_time0.10secondsTotal simulation duration
per_tick_simulation0.001secondsTime step per iteration
satellite_orbit600000.0metersSatellite orbit altitude (600 km)

Monte Carlo Configuration

Parameters under monte_carlo:

ParameterDefaultDescription
enabled.valuefalseEnable Monte Carlo mode
num_runs.value1000Number of Monte Carlo iterations
save_interval.value100Checkpoint save interval
analysis_metrics.value["scintillation_index", "mcf"]Metrics to compute per iteration

Performance Testing Configuration

Parameters under performance_testing:

ParameterDefaultDescription
enabled.valuefalseEnable performance testing
iterations_per_config.value100Iterations per test configuration
configurations.valueArrayTest configs with num_layers, resolution, r0_values

Monitoring Configuration

Parameters under monitoring:

ParameterDefaultDescription
enabled.valuetrueEnable system monitoring
tensorboard.enabled.valuetrueEnable TensorBoard logging
tensorboard.log_interval.value10Steps between TensorBoard log entries
system_metrics.enabled.valuetrueEnable system metrics collection
system_metrics.log_interval.value5Steps between system metric samples

Example: Custom Config

{
"real_world_simulation_flag": { "value": true },
"save": { "flag": true },
"create_data_set": { "flag": false, "number_of_datasets": 1 },
"atmosphere_params": {
"num_layers": { "value": 10, "description": "Number of layers" },
"total_r0": { "value": 0.15, "description": "Fried parameter" },
"phase_screen_size": { "value": 1024, "description": "Grid size" },
"delta": { "value": 0.01, "description": "Pixel scale" },
"ground_wind_speed": { "value": 5, "description": "Ground wind" },
"L0": { "value": 25, "description": "Outer scale" },
"wavefront_wavelength": { "value": 1.55e-6, "description": "Wavelength" },
"satellite_zenith_angle_starting": { "value": 0, "description": "Zenith angle" }
},
"simulation_params": {
"whole_simulation_time": { "value": 0.05, "description": "Duration" },
"per_tick_simulation": { "value": 0.001, "description": "Time step" },
"satellite_orbit": { "value": 600000.0, "description": "Orbit altitude" }
}
}

Parameter Guidelines

ParameterTypical RangeNotes
total_r00.05 -- 0.30 m0.05 = very strong turbulence, 0.30 = weak
num_layers5 -- 30More layers = more accurate but slower
phase_screen_size512 -- 4096Must be power of 2. Larger = more detail but more memory
per_tick_simulation0.0005 -- 0.01 sSmaller = finer temporal resolution