transition-zero / tz-osemosys

TZ-OSeMOSYS - a TransitionZero implementation of the OSeMOSYS systems model
GNU Affero General Public License v3.0
17 stars 0 forks source link

ENH: Add plot feature to model object #95

Open amanmajid opened 5 months ago

amanmajid commented 5 months ago

Feature Type

Problem Description

OSeMOSYS models are defined using node-edge representation (e.g., nodes = countries, edges = transmission), where nodes generally have geographical coordinates. Currently, users do not have an easy way to visualise their model in space.

Feature Description

We should add a plot() function to allow users to visualise their network on a map. For example, a user could do:

from tz.osemoesy import Model
# load model
model = Model.from_yaml('some_path')
# plot network
model.plot()
# solve model
model.solve()
# plot solved network, where generation mix could be shown by pie charts and flow between nodes could be illustrated by line sizing
model.plot()

This feature would be useful for spatially visualising a model. It would likely require dependency on matplotlib and potentially some mapping libraries (e.g., geopandas).