Project 02

Oil Spill Detection System

An end-to-end monitoring platform that acquires Sentinel-1 SAR imagery, preprocesses it through ESA SNAP, detects oil-like dark spots, enriches results with weather, and alerts operators.

Satellite AnalyticsWeb dashboard · Flutter mobile app

Automated Sentinel-1 SAR Detection & Monitoring

The Oil Spill Detection System automates the complete satellite monitoring chain from area definition and Sentinel-1 product discovery through SAR preprocessing, anomaly detection, movement tracking, weather enrichment, storage, and notification.

Operators manage geographic monitoring polygons, launch or schedule processing jobs, review confidence-scored detections in tables and maps, and monitor the health of database, SNAP, and Copernicus Data Space dependencies. Field teams receive push alerts and can inspect spill polygons from the companion mobile application.

Audience
Environmental operators, field response teams, and system administrators
Operational scope
Configurable maritime areas of interest
Delivery
Web dashboard · Flutter mobile app
Sentinel-1SAR source imagery
PostGISSpatial detection storage
FCMReal-time field alerts
One at a timeProtected job execution

A connected operational experience.

01

Area of interest management

Operators draw WGS84 polygons on an interactive map or upload GeoJSON. Active areas become the spatial boundary for satellite searches and scheduled runs.

02

Controlled detection jobs

Manual and scheduled pipelines follow a visible lifecycle from search and download to preprocessing, detection, tracking, weather enrichment, and notification, with stop, retry, and delete actions.

03

Adaptive SAR detection

VV-band dark spots are extracted using adaptive thresholding, morphology, and size and shape constraints. Each result stores geometry, area, mean backscatter, and confidence.

04

Interactive geospatial review

Leaflet overlays monitoring boundaries and detected spill polygons on OpenStreetMap. Popups and tables expose the properties required for operator assessment.

05

Automated scheduling

Celery Beat configuration supports per-AOI intervals, enable or disable controls, and immediate execution for operational testing or urgent monitoring.

06

Notifications and mobile access

Detection records generate in-app history and Firebase push messages. The Flutter app groups detections by job and opens selected spill polygons on a mobile map.

07

System health and safeguards

Health checks cover PostgreSQL, ESA SNAP GPT, and Copernicus authentication. Disk protection, retry logic, stale-job recovery, and one-job-at-a-time execution improve production safety.

Designed around the way work actually happens.

01

Detection pipeline

  1. 01

    Define or select an active maritime AOI

  2. 02

    Search Copernicus Data Space for a recent intersecting Sentinel-1 GRD product

  3. 03

    Download the selected product and preprocess it with ESA SNAP

  4. 04

    Detect and vectorise oil-like dark spots in the VV band

  5. 05

    Track movement, enrich detections with wind data, store results, and notify operators

02

Operational review

  1. 01

    Open the detections table or map

  2. 02

    Inspect area, mean backscatter, confidence, and related job

  3. 03

    Compare new polygons with previous detections

  4. 04

    Review system and source health

  5. 05

    Escalate verified events to field response teams

03

Job lifecycle

  1. 01

    Create a pending job

  2. 02

    Run the processing pipeline with visible progress

  3. 03

    Complete successfully or capture a failed or timed-out state

  4. 04

    Stop an active job when required

  5. 05

    Retry failed work without losing traceability

Technology selected for geospatial performance and operational reliability.

The platform combines a React operations dashboard, an asynchronous FastAPI backend, a Celery processing tier, spatial persistence, ESA SNAP SAR processing, and a Flutter field application. Geospatial processing dependencies remain isolated from the user interface and API layer.

  • React 18
  • TypeScript
  • Vite
  • Tailwind CSS
  • React Leaflet
  • FastAPI
  • Pydantic v2
  • SQLAlchemy 2
  • PostgreSQL
  • PostGIS
  • Celery
  • Redis
  • ESA SNAP GPT
  • Rasterio
  • Shapely
  • Copernicus Data Space
  • Open-Meteo
  • Flutter
  • Firebase Cloud Messaging