Global Dryland Desertification Risk (GDDR) Mapping
Version 1.0
2026
π Credits
Mohammad Javad Soltani
Hooman Latifi
Β
Β Β Β Β
π Overview
βΌοΈΒ Global Desertification Risk MappingΒ is a comprehensive remote sensing framework for assessing desertification risk across global drylands (Aridity Index < 0.65) usingΒ long-term NDVI trends,Β climate data, andΒ human footprint pressure.
βΌοΈ The framework integratesΒ satellite-derived vegetation trendsΒ (GIMMS 3G + MODIS, 1982β2025) withΒ Mann-Kendall trend analysis,Β Google Earth EngineΒ cloud computing, andΒ multi-metric fusionΒ to produce continuous, unit-free desertification risk scores.
βΌοΈ Validation is performed againstΒ SDG Indicator 15.3.1Β (Trends.Earth) andΒ land use/land cover transition analysis, ensuring scientific robustness and policy relevance.
Key Innovations
Feature
Description
πΒ Multi-Decadal Analysis
43+ years of NDVI data (1982β2025) with GIMMSβMODIS quantile-matching harmonization
πΒ Server-Side Mann-Kendall
Pixel-wise trend analysis viaΒ ee.Reducer.kendallsCorrelation()Β β no client-side loops
πΒ Percentile-Rank Fusion
Continuous risk score from geometric mean of AI, tau, and HFI percentile ranks
π§ͺΒ Ecological Significance
FDR-corrected significance testing with climate-matched null models (latitude bands)
β
Β SDG 15.3.1 Alignment
Direct comparison with Trends.Earth land degradation indicators
πΊοΈΒ Multi-Resolution
5 km analysis resolution, IPCC region-based aggregation, patch-level validation
Theoretical Foundation
Riskgeomean=(AIrΓTaurΓHFIr)1/3
Where:
AIrΒ = 1 β percentile_rank(Aridity Index) Β Β β³Β lower AI β higher risk
TaurΒ = 1 β percentile_rank(MK tau) Β Β β³Β more negative trend β higher risk
HFIrΒ = percentile_rank(Human Footprint Index) Β Β β³Β higher pressure β higher risk
ποΈ Repository Structure
Desertification-Risk/
β
βββ Base_Maps_Gen/ # Base map generation pipeline
β βββ MApGen_AI.ipynb # Aridity Index map generation
β βββ MApGen_HFP.ipynb # Human Footprint Pressure map generation
β βββ MKTrend_MApGen_MODIS.ipynb # MODIS Mann-Kendall trend maps
β βββ Redundantness.ipynb # Redundancy analysis
β βββ Download_HFP_AI.py # Script: download HFP & AI data
β
βββ NDVI_Trend/ # Core NDVI trend & desertification analysis
β βββ Desertification_global_1982_2025.ipynb # Full record (GIMMS+MODIS, 1982-2025)
β βββ Desertification_global_2000_2025.ipynb # MODIS-era only (2000-2025)
β
βββ Desertification_Gen/ # Desertification risk map generation
β βββ Desertification_Map.ipynb # Percentile-rank + geometric-mean fusion
β βββ Eco_Sig_Pathces_Map_Gen_Desert.ipynb # Ecological significance (desert risk)
β βββ Eco_Sig_Pathces_Map_Gen_Tau.ipynb # Ecological significance (tau trends)
β
βββ LULC_Check/ # Land use/land cover validation
β βββ LULC_Check_V01.ipynb # Dryland LULC stability Γ desertification risk
β
βββ Evaluation/ # Validation & evaluation
β βββ Fianl_EV_Coor_With_SDG.ipynb # SDG 15.3.1 coordination & final validation
β
βββ LICENSE
βββ README.md
Β
π¬ Methodology
Analysis Pipeline (4 Stages)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAGE 1 β Base Map Generation β
β β
β GIMMS 3G (1982-1999) MODIS MOD13C2 (2000-2025) β
β β β β
β ββββββ QM Harmonisation βββ β
β β β
β βββββββββ΄ββββββββ ββββββββββββββββββββ β
β β CHIRPS Precip β β ERA5-LAND Temp β β
β β (UCSB-CHG) β β (2m temperature) β β
β βββββββββββββββββ ββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAGE 2 β NDVI Trend Analysis (GEE) β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β ee.Reducer.kendallsCorrelation() β pixel-wise Mann-Kendall β β
β β β Ο (Kendall's tau) + p-value for every pixel β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Dryland mask (AI < 0.65) applied before export β
β Resolution: 5,000 m β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAGE 3 β Desertification Risk Fusion β
β β
β Pass 1: Stream histograms β empirical CDFs (AI, tau, HFI) β
β Pass 2: Percentile-rank transform + 3 fusion operators: β
β β’ Risk_geomean = (AI_r Γ Tau_r Γ HFI_r)^(1/3) β headline β
β β’ Risk_arithmean = (AI_r + Tau_r + HFI_r) / 3 β sensitivityβ
β β’ Risk_min = min(AI_r, Tau_r, HFI_r) β sensitivityβ
β Pass 3: Pairwise agreement & Jaccard between fusion methods β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAGE 4 β Validation & Evaluation β
β β
β β’ Ecological significance testing (FDR-corrected, β
β climate-matched null models) β
β β’ LULC transition analysis (degradation pathways) β
β β’ SDG 15.3.1 coordination (Trends.Earth comparison) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Β
Analysis Layers
Layer
Method
Inputs
Output
NDVI Harmonisation
Quantile-matching percentile stretch
GIMMS 3G + MODIS
Harmonised NDVI time series
Mann-Kendall Trend
ee.Reducer.kendallsCorrelation()
NDVI ImageCollection
Ο + p-value per pixel
Risk Map (Boolean)
MK p < 0.05 β© Ο < 0 β© AI < 0.65 β© HFP > 0.2
MK results + AI + HFP
Binary risk classification
Risk Map (Continuous)
Percentile-rank + geometric-mean fusion
AI, Ο, HFI
Unit-free risk score [0, 1]
Ecological Significance
FDR Benjamini-Hochberg + latitude-matched null
Risk raster + IPCC regions
Significance maps + hexbin plots
LULC Stability
Directed transition analysis
GLDAS LULC patches
Degradation pathway stats
SDG Validation
Spatial join + agreement metrics
Risk raster + Trends.Earth
Accuracy assessment
π Performance Metrics
Desertification risk is evaluated usingΒ multiple complementary metrics, combining trend significance, ecological robustness, and policy alignment.
1. Mann-Kendall Ο (Trend Strength)
Measures the monotonic trend direction and magnitude of NDVI over time:
Ο β [-1, 1]
Ο < 0 β browning / vegetation decline
Ο > 0 β greening / vegetation increase
Ο = 0 β no monotonic trend
Β
2. Risk Percentile Fusion
Three components are combined via geometric mean to produce a continuous risk surface:
Component
Variable
Rationale
AIr
1 β percentile(Aridity Index)
Drier areas have higher inherent vulnerability
Taur
1 β percentile(MK Ο)
Stronger negative trends indicate active degradation
HFIr
percentile(Human Footprint)
Higher human pressure increases degradation risk
3. FDR-Corrected Significance (Benjamini-Hochberg)
Controls the false discovery rate across spatial hypothesis tests:
def benjamini_hochberg(pvals):
p = np.asarray(pvals, dtype=float)
n = p.size
order = np.argsort(p)
ranked = p[order]
adj_ranked = ranked * n / np.arange(1, n + 1)
adj_ranked = np.minimum.accumulate(adj_ranked[::-1])[::-1]
adj_ranked = np.clip(adj_ranked, 0.0, 1.0)
return adj_ranked[np.argsort(order)]
Β
4. SDG Indicator 15.3.1 Agreement
Validation against Trends.Earth land degradation indicators across three time windows:
Window
Period
Source
Baseline
2000β2015
SDG 15.3.1 baseline
Mid-term
2004β2019
Trends.Earth v2
Recent
2008β2023
Trends.Earth v3
π Quick Start
βοΈ System Requirements
Python 3.13 is required.Β This project has been developed and tested onΒ Python 3.13.x. Using other Python versions (3.9, 3.11+) may cause dependency conflicts, particularly with GDAL, Rasterio, and Google Earth Engine bindings.
To verify your Python version:
python --version
# Expected: Python 3.13.x
Β
Google Earth Engine account required.Β You must sign up atΒ signup.earthengine.google.comΒ and authenticate your account.
πΊοΈ Installation
1. Clone the repository:
git clone
github.com
cd Desertification-Risk
Β
2. Create a virtual environment (strongly recommended):
python -m venv venv
Β
3. Activate the environment:
On Windows:
venv\Scripts\activate
Β
On macOS/Linux:
source venv/bin/activate
Β
4. Upgrade pip, setuptools, and wheel:
pip install --upgrade pip setuptools wheel
Β
5. Install dependencies:
pip install earthengine-api geemap matplotlib numpy pandas scipy statsmodels scikit-learn rasterio geopandas cartopy seaborn tqdm
Β
6. Authenticate Google Earth Engine:
earthengine authenticate
Β
π¦ Key Dependencies
Package
Version
Role
Python
3.13.x
Base interpreter
earthengine-api
latest
Google Earth Engine Python client
geemap
latest
Interactive GEE mapping
GDAL
β₯3.5
Geospatial data I/O and raster processing
Rasterio
β₯1.3
Raster read/write built on GDAL
GeoPandas
β₯1.0
Vector geometry handling and spatial joins
NumPy
β₯1.24
Numerical computing
Pandas
β₯2.0
Tabular data management
Matplotlib
β₯3.8
Visualization
Cartopy
β₯0.22
Map projection and geographic plotting
SciPy
β₯1.11
Statistical computations
Scikit-learn
β₯1.3
Machine learning utilities
Statsmodels
β₯0.14
Statistical modeling (RESTREND)
tqdm
latest
Progress bars
βΆοΈΒ Running the Pipeline
Each notebook can be run independently, but the recommended workflow order is:
Β
Β
Step 1 β Base Maps
Open and run notebooks inΒ Base_Maps_Gen/:
Download_HFP_AI.pyΒ β Download Human Footprint Pressure and Aridity Index data
MApGen_AI.ipynbΒ β Generate global Aridity Index base map
MApGen_HFP.ipynbΒ β Generate Human Footprint Pressure base map
MKTrend_MApGen_MODIS.ipynbΒ β Generate MODIS MK trend base maps
Step 2 β NDVI Trend Analysis
Choose the appropriate notebook inΒ NDVI_Trend/:
Desertification_global_1982_2025.ipynbΒ β Full 43-year record (GIMMS + MODIS)
Desertification_global_2000_2025.ipynbΒ β MODIS-era only
Update file paths at the top of the notebook:
# Example path configuration
DATA_DIR = Path("/path/to/your/data")
OUT_DIR = Path("/path/to/your/output")
Β
Then run all cells. The notebook will:
Install dependencies
Authenticate GEE
Export NDVI ImageCollections by year
Run server-side Mann-Kendall trend analysis
Generate desertification risk maps
Export results as GeoTIFF
Step 3 β Desertification Risk Fusion
RunΒ Desertification_Gen/Desertification_Map.ipynbΒ with:
# Path to your MK trend outputs
TAU_RASTER = "/path/to/tau_merged_global.tif"
SIG_RASTER = "/path/to/sig_merged_global.tif"
AI_RASTER = "/path/to/aridity_index.tif"
HFP_RASTER = "/path/to/human_footprint.tif"
# Output
OUTPUT_DIR = "/path/to/desertification_risk_output"
Β
Step 4 β Ecological Significance
Run the ecological significance notebooks:
Eco_Sig_Pathces_Map_Gen_Desert.ipynbΒ β For desertification risk maps
Eco_Sig_Pathces_Map_Gen_Tau.ipynbΒ β For tau trend maps
Step 5 β Validation
RunΒ LULC_Check/LULC_Check_V01.ipynbΒ for LULC transition analysis
RunΒ Evaluation/Fianl_EV_Coor_With_SDG.ipynbΒ for SDG 15.3.1 validation
π Data Sources
Dataset
Source
Period
Resolution
Usage
GIMMS 3G NDVI
NASA ARC
1982β1999
8 km β 5 km
Historical NDVI
MODIS MOD13C2
NASA LP DAAC
2000β2025
0.05Β° β 5 km
Recent NDVI
CHIRPS Precipitation
UCSB-CHG
1982β2025
0.05Β°
Climate normalization
ERA5-LAND Temperature
ECMWF/Copernicus
1982β2025
0.1Β°
Climate normalization
Aridity Index (AI)
CGIAR-CSI / GEE
Long-term avg
5 km
Dryland delineation
Human Footprint (HFP)
WCS/NASA SEDAC
2013
1 km
Human pressure
IPCC Reference Regions
IPCC-WGI
β
Vector
Regional aggregation
Trends.Earth SDG 15.3.1
Conservation International
2000β2023
Point data
Validation
π Citation
If you use this framework in your research, please cite the following:
Soltani, M.J., Latifi, H. (2026).Β Global Desertification Risk Mapping Using Multi-Decadal NDVI Trends, Satellite Climate Data, and Continuous Risk Fusion.Β Scientific Data.
BibTeX:
@article{
title = {Global Desertification Risk Mapping Using Multi-Decadal NDVI Trends, Satellite Climate Data, and Continuous Risk Fusion},
author = {Soltani, M.J. and Latifi, H.},
journal = {Scientific Data},
year = {2026},
note = {Submitted}
}
Β
π§ Contact
Mohammad Javad Soltaniπ§Β mohammadjavadsoltani@email.comπΒ GitHub Profile