SindbadTEM Module
SindbadTEMA 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 inTEMTypes)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 andpurposeintegration.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(moduleSindbadTEM.TEMTypes): Core TEM types (includingLandEcosystem) and shared type utilities.Utils.jl(moduleSindbadTEM.Utils): Utilities for model inspection/tooling (e.g. I/O parsing).Variables.jl(moduleSindbadTEM.Variables): Canonical catalog of SINDBAD TEM variables and metadata helpers.Processes.jl(moduleSindbadTEM.Processes): Process hierarchy, parameter metadata macros, model/approach docstring helpers, and dynamic inclusion of process implementations undersrc/Processes/.(Internal)
tmp_precompile_placeholder.jl: Auto-managed placeholder to force precompilation when new processes/approaches are added.
Notes
The
LandEcosystemsupertype 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> 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()