Leakage-aware evaluation of satellite machine learning for district-scale crop yield forecasting: silage maize in Türkiye

Published: 10 August 2026| Version 2 | DOI: 10.17632/n4fbk86t9k.2
Contributor:
Mustafa Cem ALDAG

Description

This record contains the data and code for a leakage-aware evaluation of satellite machine learning applied to district-scale silage-maize yield forecasting in the TR22 South Marmara region of Türkiye (Balıkesir and Çanakkale provinces). The dataset is a fully balanced panel of 30 districts over nine growing seasons (2017–2025), giving 270 district-year observations with no missing values. Predictors combine four Sentinel-2 vegetation indices (NDVI, EVI, NDRE, GNDVI), each summarised by seasonal mean, maximum and 90th percentile at 10 m and aggregated to 60 m district values, with five ERA5-Land meteorological variables. The response variable is district silage-maize yield from Turkish Statistical Institute records. Because district polygons contain substantial non-cropland area, the extraction is provided under four specifications: no cropland mask (the reference), an annual Dynamic World cropland mask, a static ESA WorldCover mask, and an unmasked variant using an alternative temporal reduction order for sensitivity analysis. The code covers the full pipeline: Google Earth Engine extraction, district harmonisation against the yield series, model fitting under contrasting validation regimes (random k-fold, spatial-block, leave-one-district-out, leave-one-year-out), variance decomposition, coordinates-only attribution, district-blocked bootstrap inference, and figure generation. Version 2 supersedes version 1 and should be used in preference to it. Version 1 contains a cropland mask described in the methods but not applied in the extraction, two numerically ill-conditioned EVI features, a temporal reduction performed on the aggregation grid rather than at source resolution, a validation design labelled leave-one-district-out that in fact grouped districts into five folds, and three mis-specified inferential procedures. CHANGELOG.md in this version itemises all twelve differences. Version 1 remains archived for provenance but its EVI columns are not reproducible.

Files

Steps to reproduce

1. Install dependencies: pandas, numpy, scikit-learn, xgboost, lightgbm, shap, matplotlib, scipy; PyTorch (CPU) for the LSTM baseline. 2. Satellite/meteorology extraction (requires a Google Earth Engine account): run 01_gee_extract.py (or the export/resumable variant). 3. Merge features with TÜİK yield: run 02_merge.py → produces tr22_maize_analysis_ready.csv. 4. Run models: 03_model.py and 03b_lstm_pytorch.py. 5. Generate figures: make_figures.py. Random seeds are fixed for reproducibility. See README.md for full details.

Institutions

Categories

Agricultural Science, Crop Science, Remote Sensing, Precision Agriculture

Licence