Skip to content

[feature] Initial OceanOSSE workflow skeleton. #1

@oj-tooth

Description

@oj-tooth

Skeleton OceanOSSE End-to-End Workflow

Milestone: M0 - Foundation Infrastructure

Summary

  • Establish the structural skeleton of the OceanOSSE package by implementing a minimal, pass-through end-to-end workflow.
  • All core modules and abstract base classes are scaffolded and assembled together in pipeline.py and can be executed using OceanOSSE CLI (cli.py.
  • Basic Test: Example ocean model outputs stored in a netCDF input file should be able to traverse the entire OceanOSSE pipeline and be re-written to a netCDF output file.
  • No actual transformation applied at any stage (i.e., identity transformations implemented).
  • Purpose is to establish initial module interfaces and orchestration logic before any scientific functionality is implemented.

Scope

Following components should be stubbed and connected:

  • cli.py — add a run command that accepts a .toml config path, optional log file path and invokes the pipeline.
  • pipeline.pyrun and describe functions that instantiate and sequences all functions in order.
  • io/reader.py — functions to opens a netCDF file and returns xarray.Dataset.
  • sampling/base.pyObsBaseSampler ABC with a sample(dataset) method that returns the dataset unchanged.
  • error/base.pyInstrumentBaseError ABC with an apply(dataset) method that returns the dataset unchanged.
  • gridding/base.pyObsBaseRegridder ABC with a grid(dataset) method that returns the dataset unchanged.
  • io/writer.py — functions to write the dataset to a netCDF output file.
  • config/validation.py — a minimal pydantic .toml schema covering input path, output path, and placeholder sections for each module.

Metadata

Metadata

Assignees

Labels

featureNew feature or feature request.mod: errorRelates to instrument error modules.mod: pipelineRelates to pipeline.py module.mod: regridderRelates to regridding modules.mod: utilsRelates to I/O or utility modules.mod:cliRelates to cli.py module.mod:samplerRelates to sampling modules.priority: highHigh priority task.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions