Artificial Island Construction Tracking in the South China Sea

Monitor dredging activity and base fortification in disputed waters at 5-day intervals. Klarety agents process Sentinel-2 multispectral imagery to detect sediment plumes, measure facility footprint expansion, and track material stockpile volumes. Each report includes annotated expansion maps and volume change estimates.

Territorial expansion tracking from satellite imagery

Klarety AI
Klarety AI chat composer interface

Facility expansion reports from one AOI prompt

Klarety agents process Sentinel-2 time-series and return dredging extent maps and facility footprint change reports.

Sentinel-2
Klarety satellite analysis output

Dredging plume and construction phase detection

Agents compute NDWI anomalies and RGB change signatures to classify dredging intensity and construction phase at 5-day revisit.

GIS Output
Klarety AI map annotation overlay

Expansion layers for geopolitical GIS monitoring

Output facility footprint change layers and stockpile volume estimates for territorial monitoring dataset integration.

Dredging plume and footprint expansion detection

Klarety agents compute NDWI time-series from Sentinel-2 to detect turbid dredging plumes and map newly reclaimed land area. Facility footprint polygons are compared quarter-over-quarter to measure expansion in hectares. SWIR change signatures classify new construction materials from bare reclaimed sand. Output includes expansion polygon overlays and area change tables.

Klarety AITrack island development in your AOI
analysis/scs_island_expansion.pyAgent code
python
import eeimport numpy as np
ee.Initialize()
# Fiery Cross Reef AOIaoi = ee.Geometry.Rectangle([113.8, 9.5, 114.1, 9.7])
def get_mosaic(start, end):    return (ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')            .filterBounds(aoi)            .filterDate(start, end)            .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 15))            .median()            .select(['B3','B8','B11','B12']))
before = get_mosaic('2024-01-01', '2024-03-31')after  = get_mosaic('2026-01-01', '2026-03-31')
# NDWI: water = high positive, land/fill = negativedef ndwi(img):    return img.normalizedDifference(['B3', 'B8']).rename('ndwi')
ndwi_before = ndwi(before)ndwi_after  = ndwi(after)
# Land mask: NDWI < 0 = non-water (reclaimed land, structures)land_before = ndwi_before.lt(0).rename('land_before')land_after  = ndwi_after.lt(0).rename('land_after')
# New land: land after but not beforenew_land = land_after.And(land_before.Not()).rename('new_land')
# Turbid plume detection: high green reflectance in waterwater_mask = ndwi_after.gt(0.1)b3_after = after.select('B3')turbid = b3_after.updateMask(water_mask).gt(1200).rename('dredge_plume')
new_land_area = new_land.multiply(ee.Image.pixelArea()).reduceRegion(    ee.Reducer.sum(), aoi, 10, maxPixels=1e9).get('new_land').getInfo()
print(f"New reclaimed land area (2024-2026): {(new_land_area or 0)/1e4:.2f} hectares")
output/scs_expansion_report.mdOutput report
python
# South China Sea Island Development Report**Feature:** Fiery Cross Reef (113.8-114.1°E, 9.5-9.7°N)**Comparison:** Q1 2024 vs Q1 2026 | **Source:** Sentinel-2 SR
## Land Area Change- New reclaimed area (2024-2026): **+18.4 hectares**- Total facility footprint: **271 hectares** (up from 253 ha)- Runway extension detected: +340m on eastern apron- Active dredging plume: confirmed in NE quadrant (Jan-Feb 2026)
## Construction Activity Phases| Phase            | Area (ha) | Status     | Period Detected ||------------------|-----------|------------|-----------------|| Active dredging  | 4.2       | Ongoing    | Jan-Mar 2026    || New reclamation  | 18.4      | Complete   | 2024-2026       || Structure expansion| 3.1     | Active     | Q1 2026         || Runway works     | 1.8       | Ongoing    | Feb-Mar 2026    |
## MethodsSentinel-2 SR NDWI land/water classification at 10m resolution.New land: NDWI < 0 in after image but not in before image.Dredge plume: high green reflectance (B3 >1200 DN) in water mask.Confidence: High for area measurement. Medium for activity classification.

Try Klarety now.