echo is a python-based multi-commodity energy system optimisation tool designed to answer grid integration questions.
This project is developed and maintained by the Centre for Energy Systems at the Australian National University.
echo requires requires python 3.11-3.14.
To install this package you need to:
-
Clone this repo:
git clone git@github.com:bsgip/echo.git -
Change to the echo directory:
cd echo -
Install using
uv(recommended):uv sync --python 3.13 --all-extrasor
pip:pip install --group all
NOTE: This package is not on pypi - pip install echo will NOT install this package. It will install a different package with the same name.
Different solvers can be used within echo. Solvers are installed separately; see below for links to install instructions.
There are three prerequisites to using a solver in echo:
- The solver must be installed.
- The solver's executable must be in the
PATHor equivalent. For example:PATH="/opt/cplex:$PATHin~/.bashrcfor linux systems using bash. echoneeds to know which solver to use. There are two ways of doing this:
- Exporting the
OPTIMISER_ENGINEenvironment variable, eg.export OPTIMISER_ENGINE=cplexin a terminal. Defaults tocplex. - Setting
echo.models.scenario.EngineSettings.engine. Defaults to"cplex"
The following solvers can be used.
| Solver | Testing Status | License | Installation | Known as in echo |
|---|---|---|---|---|
| CPLEX | Most tested | Commercial, free for academic use with licence | All OSs | cplex |
| GUROBI | Minimal testing | Commercial, free for academic use with licence | Linux | gurobi |
| CBC | Minimal testing | Open source | All OSs | cbc |
| GLPK | No testing | Open source | Linux | glpk |
| Xpress | No testing | Commercial, free for academic use with licence | All OSs | xpress |
Make sure you have the documentation dependencies installed
-
Generate the documentation for the echo package (from docstrings)
sphinx-apidoc --force --implicit-namespaces --module-first --no-toc --separate -o docs/source/_reference src/echoThe auto-generated documentation can be found indocs/source/_reference -
Build the documentation (as html)
sphinx-build -b html docs/source docs/_buildThe built documentation can be found indocs/_build. Warnings about duplicated labels can be safely ignored.
Please see the design file here.
Please log any issues in the issue tracker.
| Item | Status | Reference | Completion Date |
|---|---|---|---|
| Add ruff and uv | Complete | Jun 2026 | |
| Add ty | Planning | Aug 2026 | |
| Documentation update | Underway | Sep 2026 | |
| Examples update | Underway | Sep 2026 | |
| Standardise data injection process | Planning | #103 | Sep 2026 |
| Upgrade to pydantic v2 | Not Started | #101 | Oct 2026 |
| Add linopy as parser option | Planning | #102 | Dec 2026 |