# zamba-sat
Congo Basin deforestation detection — data generation and labeling pipeline
for the **AI in Space** hackathon (DPhi Space × Liquid AI).
## Problem
The Congo Basin is the second-largest tropical rainforest on Earth and one of
the planet's largest terrestrial carbon sinks. It is also under sustained
pressure from logging-road expansion, slash-and-burn agriculture, artisanal
mining, and infrastructure encroachment along park boundaries. Manual
satellite review by rangers and analysts does not scale to the area or the
revisit cadence needed to catch clearings while they are still small enough
to act on.
We want a small vision-language model that can run **on board a satellite**
(target: Liquid `LFM2.5-VL-450M`) and emit a structured deforestation
annotation directly from a pair of Sentinel-2 acquisitions, so only the
relevant frames and labels need to be downlinked. That requires a labeled
dataset of Congo Basin two-frame change pairs that the small model can be
fine-tuned on.
## Approach
Two-frame temporal change detection over fixed Congo Basin sites:
- For each (location, spatial sub-tile, temporal sample) we fetch four
Sentinel-2 frames via SimSat:
| frame | bands | role |
|---|---|---|
| `rgb_t1.png` | B4-B3-B2 (red, green, blue) | natural colour, ~30 days ago |
| `swir_t1.png` | B11-B8A-B4 (swir16, nir08, red) | vegetation moisture, ~30 days ago |
| `rgb_t0.png` | B4-B3-B2 | natural colour, current |
| `swir_t0.png` | B11-B8A-B4 | vegetation moisture, current |
RGB shows what a human sees; SWIR makes vegetation moisture and bare/burnt
ground pop, which is what catches recent clearings under partial haze.
### What the model sees
Two real samples from `dry_season/salonga_north_drc`. Each row is one
(location, sub-tile, temporal-sample) — four frames, one label.
**Stable forest** (`change_pattern: stable`) — `dry_season/salonga_north_drc/s02_t00`
| RGB t-1 (~30 d ago) | RGB t-0 …