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.
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