Climatology.jl

Climatology.jl provides analysis tools and workflows for accessing and deriving climatologies from impactful ocean and climate data sets. It serves as a shared data-access and diagnostics layer: gridded fields are downloaded lazily, read into standard Julia array/table structures, and processed into derived quantities, maps, and time series — reproducibly, from interactive Pluto notebooks or scripted workflows.

It is in early development stage; breaking changes remain likely.

Supported Data Sets

Data setDescriptionStatus
OISSTNOAA sea surface temperature, incl. anomalies & marine heat wave detectionmost developed
ECCOocean state estimate: transports, climate indices, sub-surface temperature, etc.most developed
OCCA (1 & 2)ocean state estimates or climatologiessupported
CBIOMESocean color & biogeochemistry from Darwin3supported
MITprofin-situ temperature/salinity profile climatologysupported
HadIODin-situ T/S observational databasesupported
Satellite altimetry / SSHsea level anomaly maps (NASA/PODAAC, CMEMS)supported

Design

  • Downloads: data sets are fetched lazily, on demand, via Scratch.jl, DataDeps.jl, and Dataverse.jl. See API for artifact paths and download functions.
  • Plotting: plot recipes are provided via a Makie.jl package extension — Makie is an optional, not a hard, dependency.
  • Diagnostics & options: each plot/analysis type is driven by a typed, extensible set of options that parametrizes both the underlying computation and the resulting plot.
  • Time series analysis: trends and related statistics are computed via GLM.jl.
  • Grids: non-regular model/observational grids (e.g. LLC90) are handled via MeshArrays.jl.
  • Derived products: workflows write intermediate/derived data products back to disk, including NetCDF, for reuse without recomputing from raw sources.
  • Notebooks: most examples are distributed as interactive Pluto.jl notebooks (see Examples).
  • MeshArrays.jl and Drifters.jl depend on Climatology.jl for its example suite and test cases.
  • ArgoData.jl consumes Climatology.jl, via a package extension, to download gridded climatologies used for sampling MITprof profiles. ArgoData.jl also independently derives gridded climatologies from irregularly-distributed Argo profile data via geospatial statistics; some of that workflow may be consolidated into Climatology.jl in a future refactor.

Scope Note

Climatology.jl serves and analyzes already-computed reanalysis/observational output. It does not run ocean/climate models or perform adjoint/inverse modeling — for that, see MITgcm.jl and ECCO.jl.