Spatial skill is not temporal skill — TRAK-AI crop-yield cross-validation audit (Trakya, Türkiye)

Published: 13 July 2026| Version 1 | DOI: 10.17632/f6d29w5zjk.1
Contributors:
,

Description

Derived-data deposit for the IJEG article: main panel (1165 district-years, 2004–2025), crop-specific 8-index robustness layer (27 districts × 8 years × 2 crops), SoilGrids/phenological features, complete feature-selection, CV folds + per-sample predictions, in-situ field data (surveyed 0.62 ha parcel), curated TÜİK yields; with data dictionary, checksums and a regeneration script.

Files

Steps to reproduce

Steps to reproduce Software: Python 3.11+. The complete pinned environment (requirements.txt) and all analysis code are in the companion GitHub repository: https://github.com/melihkalkan4/trak-ai-crop-yield-cv-audit (release v1.0.0, MIT License). All analyses use fixed random seeds (global seed 42; bootstrap seed 12345), so results are deterministic. A column-by-column description of every file is in data_dictionary.csv, and file integrity can be verified against CHECKSUMS.sha256. A) Reproduce the headline results OFFLINE from this deposit (no Google Earth Engine account needed): 1. Download and unzip this deposit; install the dependencies (pip install -r requirements.txt from the GitHub repository — pandas and numpy suffice for this step). 2. From the deposit root run: python regenerate_tables.py (equivalently, from the repository: python reproduce.py --data <path-to-this-deposit>). 3. The script recomputes and checks, from the shipped files, the two headline invariants: - crop-mask validation against TÜİK planted area (Pearson r = 0.954 for wheat and 0.615 for sunflower, n = 216 district-years), from 02_crop_specific_layer/crop_classified_area_ha.csv and 06_tuik_reference/tuik_ilce_crop_yields_2004_2025.csv; - the climate-tier spatial-minus-temporal generalization gap (ΔR² = +0.639 wheat, +0.580 sunflower), from 04_folds_and_predictions/per_sample_predictions_main.csv. All model metrics, skill scores and cross-validation regimes (LOYO/LOILO/spatiotemporal/ rolling-origin) can be recomputed from the per-sample prediction files together with the feature matrices in 01_main_panel/ and 02_crop_specific_layer/. B) Re-run the full satellite feature extraction (OPTIONAL; requires a Google Earth Engine service account): 1. Place an Earth Engine service-account key in keys/ (git-ignored) and configure NASA POWER and Copernicus CDS credentials. 2. Run the extraction scripts in the repository (code/enrichment_v2 and code/cp25): Sentinel-2 Level-2A (COPERNICUS/S2_SR_HARMONIZED) cloud-masked with s2cloudless (probability < 30%) and reduced over the ESA WorldCover cropland mask; the eight spectral indices (NDVI, EVI, EVI2, NDRE, CIre, NDWI, GNDVI, OSAVI); ISRIC SoilGrids properties with Saxton–Rawls plant-available water capacity; and SRTM topography. This regenerates the feature tables in 01_/02_. Data sources: Sentinel-2 (Copernicus, via Google Earth Engine), NASA POWER/MERRA-2 climate, ISRIC SoilGrids, ESA WorldCover, SRTM, and TÜİK district crop statistics (per-source attribution in README.md / LICENSE).

Institutions

Categories

Agronomy, Environmental Science, Remote Sensing, Machine Learning, Precision Agriculture, Geographic Information Systems in Agriculture

Licence