Skip to content
SindbadTEM Module
julia
SindbadTEM

A Julia package for the terrestrial ecosystem model (TEM) implementation within the Strategies to INtegrate Data and BiogeochemicAl moDels (SINDBAD) framework.

The SindbadTEM package serves as the core of the SINDBAD framework, providing foundational types, utilities, and tools for building and managing SINDBAD models.

Purpose

This module is the entry point for the SINDBAD TEM implementation. It pulls together:

  • Core abstract types (notably LandEcosystem, defined in TEMTypes)

  • Utilities for model inspection and tooling

  • A canonical variable catalog for consistent metadata

  • The process/approach hierarchy and default process ordering

Dependencies

Key dependencies used/re-exported by the module include:

  • Reexport: Re-export helpers (@reexport).

  • OmniTools: Shared utilities and purpose integration.

  • CodeTracking: Development/debug helpers.

  • DataStructures: Collection types used across TEM utilities.

  • StaticArraysCore: Fixed-size and sized array types for performance.

  • Accessors: Nested update helpers (@set).

  • StatsBase: Statistical helpers used across processes/utilities.

  • InteractiveUtils, Crayons: Interactive/dev UX helpers.

Included Files

  • Types.jl (module SindbadTEM.TEMTypes): Core TEM types (including LandEcosystem) and shared type utilities.

  • Utils.jl (module SindbadTEM.Utils): Utilities for model inspection/tooling (e.g. I/O parsing).

  • Variables.jl (module SindbadTEM.Variables): Canonical catalog of SINDBAD TEM variables and metadata helpers.

  • Processes.jl (module SindbadTEM.Processes): Process hierarchy, parameter metadata macros, model/approach docstring helpers, and dynamic inclusion of process implementations under src/Processes/.

  • (Internal) tmp_precompile_placeholder.jl: Auto-managed placeholder to force precompilation when new processes/approaches are added.

Notes

  • The LandEcosystem supertype serves as the foundation for all SINDBAD TEM models/processes, enabling extensibility and modularity.

  • The module re-exports key functionality from several dependencies (e.g., StaticArraysCore, DataStructures) to simplify downstream usage.

  • Designed to be lightweight and modular, allowing seamless integration with other SINDBAD modules in the top src directory of the repository.

Examples

julia
julia> using SindbadTEM

julia> # Define a new SINDBAD model
julia> struct MyProcess <: LandEcosystem
           # Define model-specific fields
       end

julia> # Query the variable catalog
julia> # catalog = getVariableCatalog()

Functions

Modules