Streamlit dashboard for visualising multi-objective optimisation results.
pip install -e .Or without installing:
pip install streamlit plotly pandas
streamlit run app.py# After installing
moo-viewer
# Or directly
streamlit run app.pyThen in the sidebar:
- Enter the results path (e.g.
/path/to/results/) - Enter the case prefix (e.g.
case_social) - Pick a plot from the dropdown
results/
case_social_50_0.0/
total_cost.csv
cap_inst.csv
curtailment.csv
flow_out.csv
case_social_50_0.1/
...
Folder names must follow the pattern <case>_<cap>_<rho>.
moo_viewer/
__init__.py # version
__main__.py # CLI entry point
constants.py # tech colours, plot list
data.py # file discovery + cached loaders
sidebar.py # Streamlit sidebar widget
views.py # one render_*() per plot type
plots/
pareto.py # Pareto front scatter
bars.py # capacity & curtailment stacked bars
generation.py # hourly area grid + summed bars
app.py # thin Streamlit entry point
pyproject.toml
- Add a builder function in
moo_viewer/plots/. - Add a loader in
moo_viewer/data.pyif needed. - Add a
render_*()function inmoo_viewer/views.py. - Add the plot name to
PLOT_OPTIONSinmoo_viewer/constants.py. - Wire it up in
app.py.