Getting started
OSeCAN is a reproducible uv project. uv installs Python and the pinned dependencies; the default solver ships as a wheel, so no system install is needed.
Install
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux/macOS
source $HOME/.local/bin/env
cd CLEWsCAN2070
uv sync # creates .venv from pyproject + uv.lock (writes uv.lock first time)
Run the pipeline
uv run osecan build-sets # structure -> SETS
uv run osecan build-params # placeholder parameters (+ WS3/FABLE seams)
uv run osecan retrieve # open datasets -> data/external (+ sha256)
uv run osecan clean-demand "Current Measures" # CER EF2026 -> real SpecifiedAnnualDemand
uv run osecan harmonize # gate: params ⊆ SET codes
uv run osecan solve --run results/base # preprocess → GLPK → results
uv run osecan report # HTML dashboard (+ transmission map)
Solve prerequisites
osecan solve is pure-Python (GLPK via swiglpk) and needs nothing extra — it uses the
vendored resources/osemosys_fast_osecan.txt (stock model + UDC block).
osecan run is the subprocess variant and additionally needs glpsol on PATH.
Notebook
uv run jupyter lab # open notebooks/build_osecan.ipynb ; use the .venv kernel
Delta E+ · SFU