Skip to content

Neptune

Continuous ocean monitoring to fuse live sensor data from different sources and data types to action live incident reporting.

Core trick

Scores a streaming sensor signal for anomalies, then queries satellite slick detections to confirm or flag a first discovery.

Tags

Description

Continuous ocean monitoring to fuse live sensor data from different sources and data types to action live incident reporting.
nickparkes7/Neptune★ 00 forksPythonCreated Sep 27, 2025 · last push Sep 28, 2025

README excerpt

# Neptune

This repo contains the Phase 1 prototype for the Neptune spill response pipeline. The workflow revolves around a synthetic SeaOWL stream, anomaly scoring, and visual artifacts that help interpret the signal. Minimal update: after a SeaOWL anomaly, the agent first performs a lightweight Cerulean query for recent satellite‑detected slicks; if none are found we characterize with onboard data only, mark it as a "first discovery," and schedule a next‑day Cerulean re‑query. Direct satellite fetching is retained as a future extension for data layers not covered by Cerulean (e.g., algal blooms), not as a fallback.

## Prerequisites

- Python 3.9+
- [uv](https://github.com/astral-sh/uv) for environment management (preferred)

Create or refresh the environment:

```cmd
uv venv
uv sync
```

## Core Pipeline Commands

1. **Simulate SeaOWL stream** — regenerates the canonical NDJSON sample.

   ```cmd
   uv run tools/sim_seaowl.py --output data/ship/seaowl_sample.ndjson
   ```

2. **Plot baseline telemetry + track** — produces `artifacts/seaowl/seaowl_timeseries.png` and `seaowl_track.png` for quick visual inspection.

   ```cmd
   uv run python tools/plot_seaowl.py data/ship/seaowl_sample.ndjson --outdir artifacts/seaowl
   ```

3. **Run Hybrid Oil Alert** — adaptive baseline + absolute limits + persistence with visuals under `artifacts/hybrid/`.

   ```cmd
   uv run python tools/plot_hybrid_alerts.py \
     --input data/ship/seaowl_sample.ndjson \
     --output artifacts/hybr

Team