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
-
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")
-
Pipeline Execution
Running the pipeline executes each step defined by the config in orderresults = pipeline.run()
-
Diagnostics & Visualization
Steps can optionally include diagnostic plots or summaries by setting:diagnostics: true
-
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
Copyright 2025-2026 The National Oceanography Centre and contributors.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a397a4dde0c37d717dcc5b3eee1ac40e713f22626566fa17a0083224eee8991d
|
|
| MD5 |
9ab7243fb8b3bcd900b3267ad0c7c892
|
|
| BLAKE2b-256 |
f12ff047f6bc2a034a63013fd6c3b7005ef5b586c14d1fd680b8ed1941f1b668
|
Provenance
The following attestation bundles were made for pelagos_py-0.0.0.tar.gz:
Publisher:
publish.yml on NOC-OBG-Autonomy/pelagos-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pelagos_py-0.0.0.tar.gz -
Subject digest:
a397a4dde0c37d717dcc5b3eee1ac40e713f22626566fa17a0083224eee8991d - Sigstore transparency entry: 1789610580
- Sigstore integration time:
-
Permalink:
NOC-OBG-Autonomy/pelagos-py@66654f33931bf54c9577fe533f057ffd4fd7b98b -
Branch / Tag:
refs/tags/v0.0.0 - Owner: https://github.com/NOC-OBG-Autonomy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@66654f33931bf54c9577fe533f057ffd4fd7b98b -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dafa2f61609b685158f3a6ebc186fa76c72c6a2fc2c5ed22d209faf96361400
|
|
| MD5 |
60580089951972ae04b5026a73784f54
|
|
| BLAKE2b-256 |
9fd23b2026ad9a8814b6888028ec4866d6e22421b9ab661c850fd4705ec066fd
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pelagos_py-0.0.0-py3-none-any.whl -
Subject digest:
1dafa2f61609b685158f3a6ebc186fa76c72c6a2fc2c5ed22d209faf96361400 - Sigstore transparency entry: 1789610593
- Sigstore integration time:
-
Permalink:
NOC-OBG-Autonomy/pelagos-py@66654f33931bf54c9577fe533f057ffd4fd7b98b -
Branch / Tag:
refs/tags/v0.0.0 - Owner: https://github.com/NOC-OBG-Autonomy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@66654f33931bf54c9577fe533f057ffd4fd7b98b -
Trigger Event:
release
-
Statement type: