Skip to content

Running physical experiments

The public repository includes physical-model and thermoacoustic data-assimilation experiments. Their YAML configurations are in configs/twin_da/ and configs/tai_da/. Run them from the repository root after installing romda in editable mode:

pip install -e ".[dev,notebooks]" --use-pep517

Run a configuration

Use romda.experiments.run_experiment from Python:

from romda.experiments import run_experiment

filter_ensemble, truth, metrics = run_experiment(
    "configs/tai_da/rijke.yml",
    seed=1,
)
print(metrics)

The same runner is available from the command line:

python -m romda.experiments configs/twin_da/lorenz63.yml --seed 3
python -m romda.experiments configs/tai_da/rijke.yml --seed 1
python -m romda.experiments configs/tai_da/annular.yml --set truth.ER=0.5375

The --seed option redraws the initial ensemble while keeping the physical truth fixed. Use --set key=value for temporary dotted-key overrides. Numbers, booleans, lists, and null are parsed as JSON. The final output line contains the experiment metrics as JSON.

The annular case downloads its experimental data on first use. Generated data and results are written under results/.

Available cases

Configuration Experiment
configs/twin_da/lorenz63.yml Lorenz 63 twin
configs/twin_da/lorenz96.yml Lorenz 96 twin
configs/tai_da/vdp.yml Van der Pol twin
configs/tai_da/rijke.yml Rijke-tube twin
configs/tai_da/annular.yml Annular experimental data

The Python API returns the filtered ensemble, truth observations, and a metrics dictionary, which can be used to create custom plots or further analysis.