Getting Started
This project is structured around the geode package under src/geode.
Prerequisites
- Python 3.10 or newer
pipfor package installation
Installation
From the repository root, install GEODE in editable mode:
If you are developing GEODE locally, install with development extras:
This installs GEODE and registers the geode command-line entry point.
Dependencies
Required runtime dependencies
GEODE runtime dependencies are managed in pyproject.toml under
[project].dependencies:
icechunk==2.1.2netCDF4pywis-pubsub==0.12.0PyYAMLrequests==2.34.2SQLAlchemywxflow==0.4.2xarray>=2025.8.0
Optional dependencies
Optional dependencies are managed in pyproject.toml under
[project.optional-dependencies].
devextras:pytest==9.1.1ruff==0.16.3
Install optional dependencies with:
Running tests with pytest
Run tests from the repository root:
The CI workflow runs:
Package layout
The main areas of the package are:
geode.geodefor the top-level retrieval APIgeode.configsfor configuration objects and validationgeode.datafor data lake managersgeode.ingestfor ingestors and WIS2 listenersgeode.modelfor model-level abstractions
Quick usage
from datetime import datetime
from geode.geode import get
start = datetime(2024, 1, 1)
end = datetime(2024, 1, 2)
data = get("surface-based-observations/synop", start, end)
print(data)
Configuration
The configuration is loaded from the YAML files in the configs/ directory. The configuration classes in geode.configs define the available lake types, database settings, and WIS2 ingest options.