Calibration
Calibration runs tune selected scenario parameters against measured link data.
The AODT client workflow first runs the base EM simulation to populate the
database and exported result tables, then reloads the same scenario with
calibration settings and calls run_calibration().
Use this workflow when you have measured RU/UE link data and want the worker to optimize calibration targets such as UE settings, RU settings, beams, building materials, or vegetation materials.
Workflow
The typical calibration workflow is:
- Create a
dt_client.DigitalTwinClient. - Generate or load a base EM simulation YAML with
RAYPATHSoutput enabled. - Start the base scenario with
client.start(...). - Run
client.run_full_simulation()to write the baseline outputs. - Generate or load a calibration YAML for the same scenario, keeping the
sim,db, andgissections aligned with the base YAML. - Start the calibration scenario with
client.start(...). - Call
client.run_calibration().
The base simulation run is required because calibration reads the exported
simulation data back from the configured database and S3/Iceberg storage. The
base scenario must enable full RAYPATHS output before running calibration.
Example
Run the calibration example:
The example generates two YAML configurations:
- A simulation YAML, used to load and run the base EM scenario.
- A calibration YAML, used to add calibration targets, measurements, timeline, and output location.
You can override the scene, asset config, S3 settings, and Iceberg catalog:
The core client pattern is:
run_calibration() is a blocking streaming RPC. It reports coarse progress
stages such as started, building_edges, running, and completed, then
returns a dictionary with stage, total_time_seconds, and message.
Calibration Configuration
Calibration settings are emitted in the top-level cal section of the scenario
YAML. When building YAML with the Config Builder API, configure the calibration
section after the base simulation, storage, panels, nodes, mobility, and result
tables are defined.
The calibration YAML should describe the same scenario that produced the
baseline results. Keep the sim, db, and gis sections the same between the
base simulation YAML and the calibration YAML so calibration reads from the same
database, exported tables, scene, and GIS assets.
When you already have a generated base YAML file, prefer loading it with
SimConfig.from_yaml_file(...) and then adding the calibration section. This
reduces drift between the base simulation YAML and the calibration YAML:
The required calibration settings are:
set_calibration_targets(...): choose which groups calibration should tune.add_calibration_measurement(...): add measured data for each RU/UE link.set_calibration_timeline(...): choose the time indices used for calibration.set_calibration_output(...): set the output folder key under the configured S3 bucket.
For example:
The shipped example calibrates UE settings only. Other target flags support building materials, vegetation materials, RU settings, and RU beam settings when the scenario and measurement data provide the required inputs.
Inputs And Outputs
Before running calibration, make sure the scenario has:
- Valid S3 settings with Parquet export enabled.
- An Iceberg catalog configuration if your deployment reads exported tables through Iceberg.
DBTable.RAYPATHSenabled with thefulltable option.- Calibration measurement CSV files for the RU/UE links being calibrated.
- A calibration output folder key under the configured S3 bucket.
Calibration writes its artifacts under the configured output folder. Use server
logs, the returned message, and the configured S3 location to inspect the
result of a run.
When To Use
Use Calibration when:
- You have measurement data for one or more RU/UE links.
- You need to tune selected scenario parameters against those measurements.
- You can first run the base EM scenario to produce the exported data that calibration reads.
Use Batched Mode for a regular full EM simulation that does not need calibration. Use Interactive Mode when application logic needs selected time steps or NumPy CIR arrays during the run.
API Reference
See the DigitalTwinClient API for start,
run_full_simulation, run_calibration, and server log streaming methods.
See the Config Builder API for simulation YAML construction,
including SimConfig, S3Config, DBTable, panels, nodes, material
calibration helpers, and calibration run settings.