Skip to content
Ollie Tooth edited this page Apr 13, 2026 · 1 revision

The OceanOSSE Command-Line Interface (CLI) will implement the following syntax:

OceanOSSE run --flags

Each OceanOSSE workflow will follow the same structure:

1. Input

  • Read & validate (using pydantic) configuration .toml file defining ocean model output file paths, parameter choices etc.
  • Open ocean model output files (netCDFs) and reference climatologies as xarray.Datasets with standardised dimensions, coordinates and variable names using mappings defined in the .toml configuration file.

2. Initialse Sampler

  • Define one or more ArgoSampler / MooringSampler / SatelliteSampler classes using parameters specified in the configuration .toml file.
  • Optionally define InstrumentError model to be applied to subsampled seawater properties.
  • Prepare historical/ user-specified probability tensor / sampling database.

3. Sample Ocean Model

  • Subsample seawater temperature and salinity using specified sampled (e.g., ArgoSampler draws $N$ profiles from the specified or historical Argo sampling distribution and stores these in an xarray.Dataset.)
  • Add sampling and / or instrument errors to sampled seawater property fields.

4. Interpolation onto Ocean Model Grid

  • Our objective is to regrid our sparse ocean observations onto our original ocean model grid.
  • Example: Estimate property field akin to Optimal Interpolation: $x= x_{ref}+P(y^* -x_{ref} )$ where $x_{ref}$ is the reference property value from input climatology, $y^*=E(y)$ where E is an error operator simulating sampling & instrument errors, and P is the likelihood that a given model grid cell will be sampled by the platform.
  • Apply convective adjustment in the vertical.
  • Construct output xarray.Dataset using original ocean model grid coordinates & compute derived variables (e.g., potential density).

5. Outputs

  • Write sampled conservative temperature, absolute salinity & potential density fields to file (e.g., netCDF, Zarr etc.) – this will have the same structure as the input file to facilitate downstream analysis.

Clone this wiki locally