# Deep soil moisture reveals hidden water stress in African rainfed maize systems
This repository contains code and analysis-ready processed data for reproducing the submitted main-text figures, supplement figure panels, and Figure 4 machine-learning retraining for the manuscript *Deep soil moisture reveals hidden water stress in African rainfed maize systems*.
## Contents
- `figure*/`: main-text figure scripts and packaged figure inputs.
- `common/map_layers/`: shared map inputs.
- `supplement/`: supplement figure panel reproduction.
- `training/`: optional Figure 4 XGBoost retraining workflow.
- `DATA_DICTIONARY.md`: packaged input file descriptions.
- `MODEL_CARD.md`: Figure 4 model, split, metric, and baseline details.
- `COMPUTATIONAL_RESOURCES.md`: recorded benchmark environment.
## Analysis-Ready Data
The Figure 4 retraining input is:
`training/data/figure4_retraining_input.csv.gz`
This file is an 8-day processed panel with 1,000,127 rows. Each row represents an admin2/county-like unit in a given year and 8-day growing-season window.
- ID and grouping fields: `admin2_idx`, `year`, `koppen5`
- target variable: `sif_anom`
- energy predictors: `VPDa_8mean`, `SWa_8mean`, `Tmaxa_8mean`
- water predictors: `SMa_L1_8mean`, `SMa_L2_8mean`, `SMa_L3_8mean`, `PPTa_8sum`
- raw energy fields: `VPD_8mean_raw`, `SW_8mean_raw`, `Tmax_8mean_raw`
The figure scripts use packaged figure-ready inputs under `figure*/data/`, shared map layers under `common/map_layers/`, and supplement inputs under `supplement/data/`.
## Install
Python 3.11 is recommended.
```bash
pip install -r requirements.txt
```
For the optional ML workflow:
```bash
pip install -r training/requirements-ml.txt
```
A conda-style environment file is also provided:
```bash
conda env create -f environment.yml
conda activate deep-soil-moisture-maize
```
`requirements-lock.txt` records package versions from the development environment.
## Main-Text Figure Reproduction
Run all main-text figures:
```b …