Product Requirements (PRD)
Executive Summary
Helio Ocean repurposes Helio's industrial IoT observability engine — heterogeneous data ingestion, normalization, AI-assisted analysis, and live visualization — for ocean plastic waste monitoring. The product gives marine researchers and coastal scientists a single, map-first view of where plastic waste enters and accumulates in coastal waters, fusing satellite detection with ground-truth reports that today live in disconnected silos.
This is a parallel pivot exploration: Helio continues selling to manufacturers while this proof of concept validates that the engine transfers. Nothing in this repository touches or depends on production Helio code.
Anchor use case: the Southern California coast — the LA River and San Gabriel River outlets into San Pedro Bay / Long Beach — with pre/post-storm comparison around the February 2024 atmospheric river events, when storm discharge produced documented debris plumes at both river mouths.
Problem & Opportunity
Ocean plastic monitoring data exists, but it is fragmented across incompatible silos:
| Silo | Form | Pain |
|---|---|---|
| Satellite imagery | Multi-band rasters (Sentinel-2) | Requires remote-sensing expertise to turn into debris detections |
| Agency surveys (NOAA MDMAP) | Structured survey CSVs | Beach-level, sparse in time, separate portal |
| Citizen science (Debris Tracker) | Item logs + free-text notes + photos | Unstructured, inconsistent taxonomy, no cross-referencing |
| Municipal stormwater records | PDFs, CSVs, narrative reports | Locked in documents; rarely joined to outcomes at sea |
| Ocean currents/wind | Model output (Copernicus Marine) | Needed for drift prediction, unused by field teams |
No single tool answers the questions practitioners actually ask: Where is debris accumulating right now? Which detections are confirmed by ground truth? What did last week's storm push out of the river mouths? Where should the cleanup crew go first?
This is the same problem shape Helio already solves for factories: pool inconsistent streams from many sources into one normalized visibility layer, add an intelligence layer on top, and expose it through live dashboards and natural-language queries.
Why Helio's Engine Transfers
| Helio (manufacturing) | Helio Ocean (this POC) |
|---|---|
| Machine sensor streams (MQTT/API) | Satellite passes via STAC API |
| Maintenance logs & operator notes | Citizen-science reports with free-text notes |
| Inconsistent vendor CSV/PDF exports | Agency survey CSVs, municipal stormwater PDFs |
| Normalization into unified telemetry schema | Normalization into unified observation schema |
| Anomaly detection on machine metrics | FDI-based debris detection on spectral bands |
| Cross-referencing alarms against work orders | Cross-referencing satellite detections against ground truth |
| LangGraph agents + chat over machine data | NL query interface + auto-generated briefings |
| Factory dashboard | Map-first coastal dashboard |
Users
Primary users (MVP is built for them):
- Marine debris researchers — study debris flux, sources, and accumulation dynamics; need fused satellite + ground datasets they can interrogate and export.
- Coastal / environmental scientists (agencies, universities, consultancies) — monitor specific coastal segments; need post-event situational awareness and defensible evidence of where debris went.
Downstream beneficiaries (post-MVP):
- Coastal municipalities — prioritize post-storm cleanup spend and MS4 permit reporting.
- Port authorities — situational awareness for harbor debris hazards.
- Cleanup NGOs — dispatch volunteers to confirmed accumulation zones instead of guessing.
Product Vision
A map-first web application: the map is the home screen, everything else hangs off it.
- See waste inputs (river outlets, reported dumping) and accumulation (detected/confirmed zones) over time.
- Drill into a region and a time window — e.g., Long Beach the week after a storm.
- Distinguish confirmed accumulation zones (satellite + ground truth agree) from suspected ones (satellite-only) and reported ones (ground-only).
- Ask questions in plain language and get answers grounded in the normalized data.
- Receive auto-generated post-event briefings.
Data Sources
| # | Source | Access | Type | MVP |
|---|---|---|---|---|
| 1 | Sentinel-2 L2A imagery | Element84 earth-search STAC (public, no credentials) | Raster, 10–20 m | ✅ |
| 2 | NOAA Marine Debris Program / MDMAP | Survey export CSV | Structured | ✅ |
| 3 | Debris Tracker citizen reports | Export CSV with free-text notes | Semi/unstructured | ✅ |
| 4 | Municipal stormwater / discharge records | PDFs, CSVs, narrative reports | Unstructured | Post-MVP |
| 5 | Copernicus Marine currents & wind | Copernicus Marine Service API | Model output | Post-MVP |
Notes:
- The Copernicus Data Space API remains the strategic source for Sentinel-2; the POC uses the public earth-search mirror of the same L2A scenes to avoid credential gating. The ingestion adapter interface (FS-1) keeps a slot for a CDSE adapter.
- MARIDA (Marine Debris Archive) is the open labeled Sentinel-2 dataset for marine debris; it is referenced as the training corpus for a future ML classifier that would replace the rule-based FDI thresholding (post-MVP).
- Where a live pull requires an account or data request the POC ships clearly-labeled fixtures in the source's exact export format, and the ingestion adapter treats live and fixture data identically.
System Architecture
Mapping to Helio production for a real pivot: the FastAPI service maps to Helio's Lambda/ECS APIs, the map frontend maps to the Next.js helio-frontend pattern, the NL query layer maps to helio-api-chat's LangGraph/Bedrock architecture (supervisor → per-source agents → synthesizer), and SQLite maps to the production data store. The POC keeps everything in one process on purpose.
Intelligence Layer
- Normalize — every source lands in one
Observationschema (source, timestamps, geometry, debris attributes, confidence, full raw payload retained for provenance). - Extract — unstructured inputs (citizen report notes; later, municipal PDFs) are parsed into structured debris records; ambiguous extractions are flagged, never silently guessed.
- Cross-reference — satellite detections are joined against ground observations in space and time to classify accumulation zones as confirmed (satellite + ground agree), suspected (satellite only), or reported (ground only).
- Query — a natural-language interface (Claude via AWS Bedrock, tool-use over the normalized store) answers questions with data-grounded citations; degrades to a labeled offline mode without credentials.
- Brief — auto-generated post-event briefings summarize detections, zones, and ground-truth activity for a region and time window.
MVP Scope (POC)
In: Sentinel-2 FDI detection for the SoCal AOI over pre/post-storm windows (Jan/Feb 2024); NOAA MDMAP + Debris Tracker ingestion; normalization pipeline into SQLite/GeoJSON; zone classification; live MapLibre map with confirmed/suspected/reported zones and a time toggle; NL query interface; one auto-generated post-storm briefing.
Non-goals for the POC: user accounts/auth, multi-region support, drift modeling, ML classifier (FDI thresholding only), municipal PDF extraction, alerting/notifications, cloud deployment, mobile. Each is specced in the roadmap backlog instead.
Success Criteria
The POC succeeds if a 10-minute demo shows, live and unfaked:
- Real Sentinel-2 scenes for the AOI pulled from the public STAC API and scored with FDI (SC-1).
- Ground observations from two sources normalized into one schema with provenance intact (SC-2).
- The map distinguishing confirmed vs. suspected zones, changing between pre- and post-storm windows (SC-3).
- A natural-language question answered from the normalized data (SC-4).
- A generated post-storm briefing (SC-5).
- A traceability matrix connecting every feature spec to code and passing tests (SC-6).
Risks
| Risk | Impact | Mitigation |
|---|---|---|
| FDI false positives (whitecaps, sun glint, ships, foam) | Misleading "suspected" zones | Conservative thresholds; NDWI water mask; zones only confirmed with ground truth; MARIDA-trained classifier post-MVP |
| Cloud cover over post-storm scenes | Missing detections | Configurable cloud filter; select best scene per window |
| Debris Tracker / MDMAP bulk exports need accounts | Fixture fallback in POC | Adapters read the exact export formats so real files drop in with zero code change |
| 10–20 m resolution vs. small debris patches | Under-detection | Frame detections as accumulation indicators, not item counts |
| Pivot distracts from manufacturing revenue | Business risk | Background workstream; isolated repo; no production coupling |
Requirements Index
| ID | Requirement | Detailed in |
|---|---|---|
| PRD-R1 | Ingest Sentinel-2 L2A and compute FDI debris detections for an AOI/time window | FS-1 |
| PRD-R2 | Ingest NOAA MDMAP shoreline survey data | FS-2 |
| PRD-R3 | Ingest Debris Tracker citizen reports incl. free-text extraction | FS-3 |
| PRD-R4 | Normalize all sources into one observation schema with provenance | FS-4 |
| PRD-R5 | Classify accumulation zones: confirmed / suspected / reported | FS-5 |
| PRD-R6 | Map-first UI with zone layers and pre/post-storm time toggle | FS-6 |
| PRD-R7 | Natural-language query over normalized data (Bedrock, offline fallback) | FS-7 |
| PRD-R8 | Auto-generated post-event briefing | FS-8 |