Skip to main content

Customizable processing pipeline for oceanographic data from autonomous assets

Project description

Pelagos-py

Pelagos-py provides a flexible, modular pipeline framework for defining, executing, and visualising multi-step data-processing workflows for oceanographic data.

Each pipeline is composed of a series of steps that are automatically built from a central user-defined YAML configuration file. As Pelagos-py only depends on the config file to construct a pipeline, processing can be easily reproduced by others through sharing of configs.

Documentation

The documentation for this package is available here.

Please note that the documentation is still under construction.

Overview

The Pipeline class orchestrates the flow of data through a sequence of modular “steps.” Each step performs a specific processing task (e.g., data loading, quality control, profile detection, export).

Key characteristics:

Component Description
Configuration-driven Users define the workflow in a YAML file describing each step, its parameters, and diagnostics options.
In-build Quality Control Pre-build quality control tests can be specified in the config by the user to flag bad data.
Diagnostics Where possible, data is can be visualized to see the effect of each component of the pipeline.

Installation

Pelagos-py is not yet and installable package, so for the moment you have to make a local copy to run it:

git clone https://github.com/NOC-OBG-Autonomy/pelagos-py.git
cd pelagos-py
# create/activate a virtual environment
pip install -e . 

See Getting Started for more details.

How to run

  1. Initialization

    Import the 'Pipeline' class and create a pipeline using your config (see below for example)
     from pelagos_py.pipeline import Pipeline
     pipeline = Pipeline(config_path="my_pipeline.yaml")
    
  2. Pipeline Execution

    Running the pipeline executes each step defined by the config in order
     results = pipeline.run()
    
  3. Diagnostics & Visualization

    Steps can optionally include diagnostic plots or summaries by setting:
     diagnostics: true
    
  4. Exporting Pipeline Configuration

    The entire pipeline configuration can be exported to a YAML file for reproducibility:
    pipeline.export_config("exported_pipeline.yaml")
    

🧩 Example Configuration

An example YAML configuration for a simple pipeline. See examples/notebooks/pipeline_demo.ipynb for a full demo.

 # Pipeline Configuration
 pipeline:
   name: Example CTD Processing Pipeline
   description: A pipeline for processing CTD data
   visualisation: false
 
 steps:
   - name: Load OG1
     parameters:
       file_path: ../examples/data/OG1/Nelson_646_R.nc # Path to the input NetCDF file
     diagnostics: false
 
   - name: Derive CTD
     parameters:
       to_derive: [
         DEPTH,
         PRAC_SALINITY,
         ABS_SALINITY,
         CONS_TEMP,
         DENSITY
       ]
     diagnostics: false
 
   - name: "Data Export"
     parameters:
       export_format: "netcdf"
       output_path: "../examples/data/OG1/Nelson_646_R_Processed.nc"

🔁 Extending the Pipeline

A full breakdown can be found here: Developer Guide.

License

Apache 2.0 License

Copyright 2025-2026 The National Oceanography Centre and contributors.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pelagos_py-0.0.0.tar.gz (227.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pelagos_py-0.0.0-py3-none-any.whl (136.4 kB view details)

Uploaded Python 3

File details

Details for the file pelagos_py-0.0.0.tar.gz.

File metadata

  • Download URL: pelagos_py-0.0.0.tar.gz
  • Upload date:
  • Size: 227.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pelagos_py-0.0.0.tar.gz
Algorithm Hash digest
SHA256 a397a4dde0c37d717dcc5b3eee1ac40e713f22626566fa17a0083224eee8991d
MD5 9ab7243fb8b3bcd900b3267ad0c7c892
BLAKE2b-256 f12ff047f6bc2a034a63013fd6c3b7005ef5b586c14d1fd680b8ed1941f1b668

See more details on using hashes here.

Provenance

The following attestation bundles were made for pelagos_py-0.0.0.tar.gz:

Publisher: publish.yml on NOC-OBG-Autonomy/pelagos-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pelagos_py-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: pelagos_py-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 136.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pelagos_py-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1dafa2f61609b685158f3a6ebc186fa76c72c6a2fc2c5ed22d209faf96361400
MD5 60580089951972ae04b5026a73784f54
BLAKE2b-256 9fd23b2026ad9a8814b6888028ec4866d6e22421b9ab661c850fd4705ec066fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pelagos_py-0.0.0-py3-none-any.whl:

Publisher: publish.yml on NOC-OBG-Autonomy/pelagos-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page