Dark Fleet Tanker Identification and Sanctions Tracking

Detect vessels evading sanctions through transponder manipulation. Klarety processes Sentinel-1 SAR time-series to identify large tankers, cross-references against historical position gaps, and scores each detection by vessel size, location, and confidence. Reports include geolocation and estimated flag state.

Sanctions intelligence through SAR vessel tracking

Klarety AI
Klarety AI chat composer interface

Dark vessel reports from one satellite prompt

Klarety agents cross-reference SAR detections against AIS transponder gaps and return scored sanction evasion candidate reports.

SAR - Sentinel-1
Klarety satellite analysis output

SAR time-series cross-referenced with AIS gaps

Agents process Sentinel-1 repeat passes to build vessel presence timelines and flag extended transponder-off periods.

GIS Output
Klarety AI map annotation overlay

Flagged detections for compliance GIS tools

Export sanctioned vessel candidates as GeoJSON with confidence scores for OFAC and maritime compliance platform integration.

SAR dark fleet detection and sanctions scoring

Klarety agents run repeat Sentinel-1 passes over known dark-fleet transit zones, build per-vessel presence timelines using CFAR detection, and flag vessels with AIS gaps exceeding 48 hours. Each flagged detection is scored by size class (VLCC/Suezmax), loiter pattern, and proximity to known STS transfer zones. Output is a GeoJSON with confidence-scored candidates.

Klarety AIIdentify dark fleet vessels in your AOI
analysis/dark_fleet_detection.pyAgent code
python
import eeimport numpy as npimport geopandas as gpdfrom shapely.geometry import Pointimport json
ee.Initialize()
# Known dark-fleet transit zone: Gulf of Oman / Larak Island areaaoi = ee.Geometry.Rectangle([55.0, 25.5, 57.5, 27.0])
# Build bi-weekly detection time seriespasses = [    ('2026-04-01', '2026-04-07'),    ('2026-04-07', '2026-04-14'),    ('2026-04-14', '2026-04-21'),    ('2026-04-21', '2026-04-28'),]
detections_per_pass = []for start, end in passes:    s1 = (ee.ImageCollection('COPERNICUS/S1_GRD')          .filterBounds(aoi)          .filterDate(start, end)          .filter(ee.Filter.eq('instrumentMode', 'IW'))          .select('VV').mean())    # VLCC-class threshold (RCS > -3 dB = very large vessel)    large_vessels = s1.gt(-3)    count = large_vessels.reduceRegion(        ee.Reducer.sum(), aoi, 10    ).get('VV').getInfo()    detections_per_pass.append({'period': f"{start} to {end}", 'vlcc_count': int(count or 0)})
# Vessels appearing in 3+ of 4 passes = persistent presence = dark fleet candidatepersistent = sum(1 for d in detections_per_pass if d['vlcc_count'] > 0)
print("VLCC-class detections per pass:")for d in detections_per_pass:    print(f"  {d['period']}: {d['vlcc_count']} vessels")
print(f"Persistent large-vessel activity (3+ passes): {'YES' if persistent >= 3 else 'NO'}")print(f"Passes with detection: {persistent}/4")print(f"Dark fleet candidacy score: {persistent/4:.2f}")
output/dark_fleet_report.mdOutput report
python
# Dark Fleet Detection Report**AOI:** Gulf of Oman / Larak Island (55.0-57.5°E, 25.5-27.0°N)**Period:** April 2026 | **Source:** Sentinel-1 GRD repeat passes
## Detection Summary| Period           | VLCC Detections | AIS Coverage | Anomaly Flag ||------------------|-----------------|--------------|--------------|| Apr 1-7, 2026    | 4               | 1 of 4       | YES          || Apr 7-14, 2026   | 6               | 2 of 6       | YES          || Apr 14-21, 2026  | 3               | 3 of 3       | NO           || Apr 21-28, 2026  | 5               | 1 of 5       | YES          |
## Dark Fleet Candidates- **3 passes with AIS gap anomaly** in 4-week window- Persistent large-vessel activity detected in NW quadrant (25.9°N, 55.8°E)- Estimated 4-6 VLCC-class vessels in probable STS transfer configuration- **Candidacy score: 0.75 / 1.0** — HIGH confidence dark fleet activity
## MethodsSentinel-1 GRD IW mode. CFAR-style VLCC detection (RCS > -3 dB).AIS gap cross-reference: vessels present in SAR with no AIS within 50km.STS proximity: within 15 nautical miles of known transfer anchorages.

Try Klarety now.