After many years of development, we (all current and previous SINDBAD developers) are excited to announce the release of the SINDBAD (Strategies to INtegrate Data and Biogeochemical moDels) suite of Julia packages for terrestrial ecosystem modeling and data integration. The suite includes the core Sindbad package and four supporting packages that can be used independently.
What is SINDBAD?
SINDBAD is a model-data integration framework that enables flexible integration of parsimonious terrestrial ecosystem models with diverse observational data streams. The framework encompasses biogeochemical cycles of water and carbon, providing a unified system for modularity of model structure, input data processing, observational constraint integration, and customizable optimization approaches.
Core Packages
Sindbad.jl (v0.1.0)
The main orchestration package providing a cohesive API for:
-
Data handling and preprocessing
-
Experiment configuration and setup
-
Terrestrial ecosystem simulations (including spinup)
-
Parameter optimization and calibration
-
Machine learning integration such as hybrid Physics-ML coupled runs with automatic differentiation
Docs: https://landecosystems.github.io/Sindbad.jl/stable
SindbadTEM.jl (v0.1.0)
Core terrestrial ecosystem model types and utilities—the foundational package providing process-level model components, type definitions, and modeling infrastructure.
SindbadTEM is included in the same monorepo and documented together with Sindbad.
Supporting Independent Ecosystem Packages
ErrorMetrics.jl (v0.1.0)
Modular metrics package for model evaluation and parameter optimization (MSE, NSE, RMSE, and more).
Repo: GitHub - LandEcosystems/ErrorMetrics.jl: common error metrics used in terrestrial ecosystem modeling
Docs: https://landecosystems.github.io/ErrorMetrics.jl
TimeSamplers.jl (v0.1.0)
On-the-go allocation-free temporal sampling, aggregation, and resampling utilities for time-series data alignment.
Docs: https://landecosystems.github.io/TimeSamplers.jl
OmniTools.jl (v0.1.0)
Shared utility toolkit with common data structures, helper functions, and cross-package compatibility helpers.
Docs: https://landecosystems.github.io/OmniTools.jl
Key Features
-
Modular, composable architecture for models of any complexity -
Extensible design for custom models, metrics, and model-data integration methods -
Comprehensive documentation with examples -
Production-ready with continuous integration -
Julia 1.10+ compatible
Citation
If you use SINDBAD in your research, please cite the preprint or the actual publication that will follow:
Koirala, S., Alonso, L., Trautmann, T., Lee, H., Ahrens, B., Gans, F., Cremer, F., Reichstein, M., Jung, M., & Carvalhais, N. (2025). SINDBAD model-data integration framework for terrestrial carbon-water processes. ESS Open Archive. ESSOAR PREPRINT: https://essopenarchive.org/users/551954/articles/1271244-sindbad-model-data-integration-framework-for-terrestrial-carbon-water-processes
Note on Package Design
The packages are developed with an emphasis on leveraging core Julia capabilities for allocation-free and computationally efficient terrestrial ecosystem modeling applications. At the same time, we have made every effort to keep them user-friendly for Julia users at all levels. Please note:
-
Some design choices may use non-conventional Julia patterns optimized for our specific use cases
-
The supporting ecosystem packages (
ErrorMetrics,TimeSamplers,OmniTools) are intentionally simple and may be extended or replaced as the software ecosystem evolves -
Some functionality may overlap with other packages, as certain features were implemented before suitable external packages were available
Contributing
We welcome suggestions, feedback, contributions, and collaborations of all kinds. Feel free to reach out to us through a channel of your choice!
License: EUPL-1.2
Developed at: Max Planck Institute for Biogeochemistry, Jena, Germany
Contact: sindbad@bgc-jena.mpg.de
Thanks and Happy New Year of Coding!
Cheers,
Sujan