marmot.plottingmodules.prices.Prices#

class Prices(Zones: List[str], Scenarios: List[str], AGG_BY: str, ordered_gen: List[str], marmot_solutions_folder: pathlib.Path, color_list: list = ['#396AB1', '#CC2529', '#3E9651', '#ff7f00', '#6B4C9A', '#922428', '#cab2d6', '#6a3d9a', '#fb9a99', '#b15928'], ylabels: Optional[List[str]] = None, xlabels: Optional[List[str]] = None, **kwargs)[source]#

Bases: marmot.plottingmodules.plotutils.plot_data_helper.PlotDataStoreAndProcessor

Locational price analysis plots.

The price.py module contains methods that are related to grid prices at regions, zones, nodes etc.

Prices inherits from the PlotDataStoreAndProcessor class to assist in creating figures.

Parameters
  • Zones (List[str]) – List of regions/zones to plot.

  • Scenarios (List[str]) – List of scenarios to plot.

  • AGG_BY (str) – Informs region type to aggregate by when creating plots.

  • ordered_gen (List[str]) – Ordered list of generator technologies to plot, order defines the generator technology position in stacked bar and area plots.

  • marmot_solutions_folder (Path) – Directory containing Marmot solution outputs.

  • color_list (list, optional) – List of colors to apply to non-gen plots. Defaults to ColorList().colors.

  • ylabels (List[str], optional) – y-axis labels for facet plots. Defaults to None.

  • xlabels (List[str], optional) – x-axis labels for facet plots. Defaults to None.

Methods

node_pdc(**kwargs)

Creates a price duration curve for a set of specifc nodes.

node_price_hist(**kwargs)

Creates a price histogram for a specifc nodes.

node_price_hist_diff(**kwargs)

Creates a difference price histogram for a specifc nodes.

node_timeseries_price(**kwargs)

Creates a price timeseries plot for a set of specifc nodes.

pdc_all_regions([y_axis_max, ...])

Creates a price duration curve for all regions/zones and plots them on a single facet plot.

region_pdc([figure_name, y_axis_max, ...])

Creates a price duration curve for each region.

region_timeseries_price([figure_name, ...])

Creates price timeseries line plot for each region.

timeseries_price_all_regions([y_axis_max, ...])

Creates a price timeseries plot for all regions/zones and plots them on a single facet plot.

pdc_all_regions(y_axis_max: Optional[float] = None, start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, **_)[source]#

Creates a price duration curve for all regions/zones and plots them on a single facet plot.

Price is in $/MWh. The code automatically creates a facet plot based on the number of regions/zones in the input. All scenarios are plotted on a single facet for each region/zone

Parameters
  • y_axis_max (float, optional) – Max y-axis value. Defaults to None.

  • start_date_range (str, optional) – Defines a start date at which to represent data from. Defaults to None.

  • end_date_range (str, optional) – Defines a end date at which to represent data to. Defaults to None.

Returns

dictionary containing the created plot and its data table

Return type

dict

region_pdc(figure_name: Optional[str] = None, y_axis_max: Optional[float] = None, start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, **_)[source]#

Creates a price duration curve for each region. Price in $/MWh

The code will create either a facet plot or a single plot depending on if the Facet argument is active. If a facet plot is created, each scenario is plotted on a separate facet, otherwise all scenarios are plotted on a single plot. To make a facet plot, ensure the word ‘Facet’ is found in the figure_name.

Parameters
  • figure_name (str, optional) – User defined figure output name. Defaults to None.

  • y_axis_max (float, optional) – Max y-axis value. Defaults to None.

  • start_date_range (str, optional) – Defines a start date at which to represent data from. Defaults to None.

  • end_date_range (str, optional) – Defines a end date at which to represent data to. Defaults to None.

Returns

dictionary containing the created plot and its data table

Return type

dict

region_timeseries_price(figure_name: Optional[str] = None, y_axis_max: Optional[float] = None, timezone: str = '', start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, **_)[source]#

Creates price timeseries line plot for each region. Price is $/MWh.

The code will create either a facet plot or a single plot depending on if the Facet argument is active. If a facet plot is created, each scenario is plotted on a separate facet, otherwise all scenarios are plotted on a single plot. To make a facet plot, ensure the work ‘Facet’ is found in the figure_name.

Parameters
  • figure_name (str, optional) – User defined figure output name. Defaults to None.

  • y_axis_max (float, optional) – Max y-axis value. Defaults to None.

  • timezone (str, optional) – The timezone to display on the x-axes. Defaults to “”.

  • start_date_range (str, optional) – Defines a start date at which to represent data from. Defaults to None.

  • end_date_range (str, optional) – Defines a end date at which to represent data to. Defaults to None.

Returns

dictionary containing the created plot and its data table

Return type

dict

timeseries_price_all_regions(y_axis_max: Optional[float] = None, timezone: str = '', start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, **_)[source]#

Creates a price timeseries plot for all regions/zones and plots them on a single facet plot.

Price in $/MWh. The code automatically creates a facet plot based on the number of regions/zones in the input. All scenarios are plotted on a single facet for each region/zone.

Parameters
  • y_axis_max (float, optional) – Max y-axis value. Defaults to None.

  • timezone (str, optional) – The timezone to display on the x-axes. Defaults to “”.

  • start_date_range (str, optional) – Defines a start date at which to represent data from. Defaults to None.

  • end_date_range (str, optional) – Defines a end date at which to represent data to. Defaults to None.

Returns

dictionary containing the created plot and its data table.

Return type

dict

node_pdc(**kwargs)[source]#

Creates a price duration curve for a set of specifc nodes.

Price in $/MWh. The code will create either a facet plot or a single plot depending on the number of nodes included in plot_select.csv property entry.

Returns

DataSavedInModule exception.

Return type

DataSavedInModule

node_timeseries_price(**kwargs)[source]#

Creates a price timeseries plot for a set of specifc nodes.

Price in $/MWh. The code will create either a facet plot or a single plot depending on the number of nodes included in plot_select.csv property entry.

Returns

DataSavedInModule exception.

Return type

DataSavedInModule

node_price_hist(**kwargs)[source]#

Creates a price histogram for a specifc nodes. Price in $/MWh.

A facet plot will be created if more than one scenario are included on the user input sheet Each scenario will be plotted on a separate subplot. If a set of nodes are passed at input, each will be saved to a separate figure with node name as a suffix. Plots and Data are saved within the module

Returns

DataSavedInModule exception.

Return type

DataSavedInModule

node_price_hist_diff(**kwargs)[source]#

Creates a difference price histogram for a specifc nodes. Price in $/MWh.

This plot requires more than one scenario to display correctly. A facet plot will be created Each scenario will be plotted on a separate subplot, with values displaying the relative difference to the first scenario in the list. If a set of nodes are passed at input, each will be saved to a separate figure with node name as a suffix. Plots and Data are saved within the module

Returns

DataSavedInModule exception.

Return type

DataSavedInModule