OSVAS

The OSVAS Workflow

OSVAS’s central control scripts

OSVAS uses Python workflow launchers in scripts/python_scripts/ for platform-specific execution:

Both scripts read the station configuration from config_files/Stations/${STATION_NAME}/${STATION_NAME}.yml and control which workflow steps execute via the OSVAS_steps block. The YAML also defines forcing data sources, validation datasets, and station metadata.

Notebook execution

The workflow includes data processing steps implemented as Jupyter notebooks:

These notebooks are automatically converted to Python scripts using jupyter nbconvert when the launcher runs, enabling execution in environments without Jupyter. Pre-converted .py versions are also available and can be executed directly when setting jupyter = False in the central control scripts.

Command Line Arguments

Both launcher scripts accept command line arguments to override environment variables:

Example:

# Process the workflow for multiple stations in sequence
python3 scripts/python_scripts/surfex_OSVAS_run_linux.py --stations Majadas_del_tietar Loobos Meteopole

# Override default paths
python3 scripts/python_scripts/surfex_OSVAS_run_linux.py --osvas /custom/path/to/osvas

Key workflow behavior

SURFEX and physiography setup

The Python launchers expect SURFEX binaries and environment files to be available on the host system.

For local Linux:

For ATOS:

Initialization workflow

Soil initialization can derive from validation data or station metadata via the Initialization_data block in the station YAML:

Profiles are stored as NumPy arrays (tg_profile.npy, hug_profile.npy) in profiles/{station}/ and applied by scripts/python_scripts/apply_soil_initialization.py.

Paths