Multi-sensor Google Earth Engine engine for Sudan's irrigation schemes: canal water, head-to-tail equity, crop condition and water requirement — with scientific-integrity rules enforced in code, not promised in docs.
# Sudan Irrigation & Agriculture Monitor
A multi-sensor Google Earth Engine analysis engine for irrigated agriculture in
Sudan, answering two questions usually asked separately:
- **FIELD** — how is this field doing, and is it short of water?
- **NETWORK** — did the water actually arrive, and was it shared fairly from
source to farm?
The network layer — and specifically the **head-to-tail equity** figure — is the
uncommon part, and it is where a gravity-fed scheme's real problem lives. See
`docs/STRATEGY.md` for the build plan, the validation design,
the feasibility split, and the stage-by-stage status table (§8).
## Layout
```
src/
decision_logic.py pure, ee-free decisions (thresholds, Otsu, the
head-tail slope fit + CI, the nitrogen gate,
agreement). The tested heart of the integrity rules.
engine.py network + field layers, EE plumbing, and the
assembly (analyse) that wires everything together.
nutrition_climate_ground.py red-edge nutrition ladder, calibration store,
climate (server-side dry spells / season history),
ground-observation store, drone roadmap.
attribution.py Stage 3: stratified control for soil/crop/planting
date, adjusted gap + CI, placebo test, green-up,
persistence, negative controls.
agri_engine.py THE AGRICULTURE ENGINE - fields in, farm report
out. Imports nothing from engine.py.
farm_cli.py agriculture entry point (--fields only).
network.py continuity (where the water stopped), siltation
candidates, water-use efficiency + its refusal,
radar resolvability qualifier.
agronomy.py FAO-56 ET0, Kcb from NDVI, crop water requirement,
irrigation requirement, GFS outlook, yield gate.
rangeland.py rangeland productivity + timing, water points,
corridors — with the neutrality guard enforced.
farm_records.py REPORTED-side store (operations, costs, sales,
margins) and the rule-based advisory.
farmer_channel.py …