alexroz/CarbonFluxBench
CarbonFluxBench: A Global Benchmark for Upscaling of Carbon Fluxes Using Zero-Shot Learning CarbonFluxBench comprises over 1.3 million daily observations from 573 eddy covariance flux tower sites globally (2000–2024). It provides stratified evaluation protocols that explicitly test generalization across unseen vegetation types and climate regimes, a harmonized set of remote sensing and meteorological features, and reproducible baselines ranging from tree-based methods to… See the full description on the dataset page: https://huggingface.co/datasets/alexroz/CarbonFluxBench.
CarbonFluxBench: A Global Benchmark for Upscaling of Carbon Fluxes Using Zero-Shot Learning
CarbonFluxBench comprises over 1.3 million daily observations from 573 eddy covariance flux tower sites globally (2000–2024). It provides stratified evaluation protocols that explicitly test generalization across unseen vegetation types and climate regimes, a harmonized set of remote sensing and meteorological features, and reproducible baselines ranging from tree-based methods to domain-generalization architectures.
Paper: [CarbonFluxBench (KDD 2026)]() Code: github.com/alexxxroz/CarbonFluxBench
Dataset Summary
Data Files
Prediction Targets
All targets are derived from eddy covariance measurements standardized under the ONEFlux methodology (units: gC m⁻² day⁻¹):
Each observation includes a continuous quality control flag: NEE_VUT_USTAR50_QC (0–1).
Features
MODIS MOD09GA (12 features)
Seven surface reflectance bands (sur_refl_b01–sur_refl_b07), sensor/solar geometry (SensorZenith, SensorAzimuth, SolarZenith, SolarAzimuth), and cloud fraction (clouds).
ERA5-Land (6 / 36 / 150 features)
Three configurable feature sets defined in feature_sets.json:
- Minimal (6): temperature, precipitation, radiation, evaporation, LAI (high & low vegetation)
- Standard (36): minimal + soil temperature/moisture (4 levels), wind, pressure, snow/albedo, radiation components, runoff
- Full (150): standard + lake variables, additional flux components, min/max daily variants
Site Metadata (5 features)
Latitude, longitude, IGBP vegetation type (16 classes), Köppen climate class (5 main / 30 detailed).
Train-Test Splits
CarbonFluxBench provides two complementary site-holdout splits for zero-shot evaluation (random state = 56):
- IGBP-stratified: partitioned by vegetation type. 80/20 for common classes (>10 sites), 50/50 for rare classes (≤10 sites).
- Köppen-stratified: partitioned by climate zone. Uniform 80/20 split across 5 main classes.
All splits are at the site level — train and test sites are mutually exclusive.
Usage
Download
pip install huggingface_hub
huggingface-cli download alexroz/CarbonFluxBench --repo-type dataset --local-dir dataWith the CarbonFluxBench package
import carbonfluxbench
targets = ['GPP_NT_VUT_USTAR50', 'RECO_NT_VUT_USTAR50', 'NEE_VUT_USTAR50']
y = carbonfluxbench.load_targets(targets, include_qc=True)
y_train, y_test = carbonfluxbench.split_targets(y, split_type='Koppen')
modis = carbonfluxbench.load_modis()
era = carbonfluxbench.load_era('minimal')
train, val, test, x_scaler, y_scaler = carbonfluxbench.join_features(
y_train, y_test, modis, era, scale=True
)Direct loading with pandas
import pandas as pd
targets = pd.read_parquet("data/target_fluxes.parquet")
modis = pd.read_parquet("data/MOD09GA.parquet")
era5 = pd.read_parquet("data/ERA5.parquet")Evaluation
All metrics are computed per-site, then reported as quantiles (25th, median, 75th percentile):
Citation
<!-- ```bibtex @inproceedings{carbonfluxbench, title={CarbonFluxBench: A Global Benchmark for Upscaling of Carbon Fluxes Using Zero-Shot Learning}, author={Rozanov, Aleksei and Renganathan, Arvind and Zhang, Yimeng and Kumar, Vipin}, booktitle={Proceedings of the 31st ACM SIGKDD Conference on Knowledge Discovery and Data Mining}, year={2025} }
## License
MIT
