Skip to content
@serapeum-org

Serapeum

Open-source Python for geospatial analysis, hydrological modelling and Earth observation

Serapeum

Open-source Python for geospatial analysis, hydrological modelling and Earth observation.

Fourteen packages, all on PyPI and conda-forge, built to compose rather than to stand alone: a GDAL/OGR core, a plotting layer over it, and domain libraries built on both. Use one on its own, or the whole stack together.

Documentation

Packages

Geospatial

Package Distribution What it does
pyramids pyramids-gis Raster, vector and datacube handling over GDAL/OGR — GeoTIFF, NetCDF, shapefiles, GeoJSON. The engine the rest of the stack builds on.
pyramids-eo pyramids-eo Remote-sensing and Earth-observation tier on top of pyramids.
digital-rivers digital-rivers DEM and raster processing — the source of truth for terrain work across the stack.
earthlens earthlens Earth-observation data acquisition: ECMWF, STAC, Copernicus, GEE and more, behind one interface.

Hydrology

Package Distribution What it does
Hapi hapi-nile Conceptual distributed hydrological model — HBV96 lumped model with Muskingum routing.
Serapis serapis Flood simulation and hydrodynamic modelling.

Visualization

Package Distribution What it does
cleopatra cleopatra A matplotlib convenience layer over in-memory NumPy data. Every other package plots through it.
Digital-Earth digitalearth Geospatial visualization for rasters and vectors — static, interactive, 3D and web.

Statistics

Package Distribution What it does
statista statista Statistics, with a focus on extreme-value analysis and distribution fitting.
geostatista geostatista Variograms, kriging and spatial autocorrelation.

Utilities

Package Distribution What it does
hpc hpc-utils NumPy helpers shared across the stack.
unicloud unicloud One interface over cloud object storage.
Oasis Oasis-Optimization Harmony-search optimization.
serapeum_utils serapeum_utils Small shared utilities.

Other work

Repository What it is
serapeum A provider-agnostic LLM framework — core plus pluggable providers.
llama-utils LlamaIndex utilities.
github-actions Reusable composite actions every repository's CI is built from — Python setup for pip, uv and pixi, versioned MkDocs deploys, and releases.
docs The documentation site that aggregates every package.

How the packages fit together

Derived from what each package declares in its pyproject.toml. The full graph in the documentation carries the same links with more explanation.

graph TD
    Digital_Earth["Digital-Earth"]
    Hapi["Hapi"]
    Oasis["Oasis"]
    Serapis["Serapis"]
    cleopatra["cleopatra"]
    digital_rivers["digital-rivers"]
    earthlens["earthlens"]
    earthstudio["earthstudio"]
    geostatista["geostatista"]
    hpc["hpc"]
    hydrological_models["hydrological-models"]
    pyramids["pyramids"]
    pyramids_eo["pyramids-eo"]
    serapeum["serapeum"]
    serapeum_utils["serapeum_utils"]
    statista["statista"]

    %% required
    Digital_Earth --> pyramids
    Digital_Earth -->|tiles| cleopatra
    Hapi --> Oasis
    Hapi --> cleopatra
    Hapi --> pyramids
    Hapi --> statista
    Serapis --> cleopatra
    Serapis --> pyramids
    Serapis --> serapeum_utils
    Serapis --> statista
    cleopatra --> hpc
    digital_rivers --> pyramids
    earthlens --> pyramids
    geostatista --> pyramids
    hydrological_models --> Hapi
    hydrological_models --> pyramids
    pyramids --> hpc
    pyramids_eo --> pyramids

    %% optional — reached only through an extra
    Hapi -.->|inputs → ecmwf| earthlens
    digital_rivers -.->|viz → tiles| cleopatra
    earthlens -.->|eedai| pyramids_eo
    earthstudio -.->|agent| serapeum
    earthstudio -.->|gis| Digital_Earth
    earthstudio -.->|gis| geostatista
    earthstudio -.->|gis| pyramids
    earthstudio -.->|gis| pyramids_eo
    geostatista -.->|viz| cleopatra
    hydrological_models -.->|inputs → ecmwf| earthlens
    pyramids -.->|viz → tiles| cleopatra

    %% extras that upgrade an already-required dependency
    digital_rivers -.->|distributed → lazy · viz → viz| pyramids
    earthlens -.->|nwm → parquet · stac → stac| pyramids
    geostatista -.->|distributed → lazy · viz → viz| pyramids
    pyramids_eo -.->|viz → viz| pyramids
Loading

Solid arrows are required dependencies; a label on one is the extra the dependency is installed with. Dashed arrows are optional — the label reads <extra on this package> → <extra on the dependency>. A dashed arrow beside a solid one is an extra that upgrades a dependency the package already requires. Only runtime dependencies and installable extras are shown; contributor-only dependency groups are omitted.

12 further repositories neither depend on these packages nor are depended on by them, so they are not drawn here.

Installing

Every package is published to both PyPI and conda-forge:

pip install pyramids-gis
conda install -c conda-forge pyramids

Optional features ship as extras rather than as required dependencies, so a bare install stays small. Plotting is the common case:

pip install "pyramids-gis[viz]"     # adds cleopatra and the plotting stack
pip install "hapi-nile[inputs]"     # adds earthlens with the ECMWF reader

Contributing

Branches follow <type>/<short-description> in kebab-case, and commits follow Conventional Commits. Releases are cut with Commitizen and flow on to PyPI and conda-forge automatically.

Star History

Star History Chart

Pinned Loading

  1. Hapi Hapi Public

    Hapi is a Python library for building Conceptual Distributed Model using HBV96 lumped model & Muskingum routing method

    Python 43 19

  2. pyramids pyramids Public

    Geospatial data package

    Python 45 5

  3. statista statista Public

    Extreme value statistics

    Python 12

  4. cleopatra cleopatra Public

    Matplotlib utility package

    Python 1

  5. earthlens earthlens Public

    Remote Sensing data - Earth observation data

    Python 66 5

  6. serapeum serapeum Public

    Provider-agnostic LLM framework

    Python 1

Repositories

Showing 10 of 32 repositories

Top languages

Loading…

Most used topics

Loading…