marmot.plottingmodules.curtailment.Curtailment#

class Curtailment(Zones: List[str], Scenarios: List[str], AGG_BY: str, ordered_gen: List[str], marmot_solutions_folder: pathlib.Path, gen_categories: marmot.plottingmodules.plotutils.plot_data_helper.GenCategories = GenCategories(vre=[], pv=[], re=[], thermal=[]), marmot_color_dict: Optional[dict] = None, custom_xticklabels: Optional[List[str]] = None, color_list: list = ['#396AB1', '#CC2529', '#3E9651', '#ff7f00', '#6B4C9A', '#922428', '#cab2d6', '#6a3d9a', '#fb9a99', '#b15928'], marker_style: List = ['^', '*', 'o', 'D', 'x', '<', 'P', 'H', '8', '+'], **kwargs)[source]#

Bases: marmot.plottingmodules.plotutils.plot_data_helper.PlotDataStoreAndProcessor

Device curtailment plots.

The curtailment.py module contains methods that are related to the curtailment of generators .

Curtailment 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.

  • gen_categories (GenCategories) – Instance of GenCategories class, groups generator technologies into defined categories. Deafults to GenCategories.

  • marmot_color_dict (dict, optional) – Dictionary of colors to use for generation technologies. Defaults to None.

  • custom_xticklabels (List[str], optional) – List of custom x labels to apply to barplots. Values will overwite existing ones. Defaults to None.

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

  • marker_style (List, optional) – List of markers for plotting. Defaults to PlotMarkers().markers.

Methods

average_diurnal_curt([timezone, ...])

Average diurnal renewable curtailment plot.

curt_duration_curve([prop, ...])

Curtailment duration curve (line plot)

curt_ind([figure_name, prop, ...])

Curtailment as a percentage of total generation, of individual generators.

curt_pen([prop, start_date_range, ...])

Plot of curtailment vs penetration.

curt_total([start_date_range, ...])

Creates stacked barplots of total curtailment by technology.

curt_total_diff([start_date_range, ...])

Creates stacked barplots of total curtailment by technology relative to a base scenario.

curt_duration_curve(prop: Optional[str] = None, start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, **_)[source]#

Curtailment duration curve (line plot)

Displays curtailment sorted from highest occurrence to lowest over given time period.

Parameters
  • prop (str, optional) – Controls type of re to include in plot. Controlled through the plot_select.csv. 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

curt_pen(prop: Optional[str] = None, start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, **_)[source]#

Plot of curtailment vs penetration.

Each scenario is represented by a different symbel on a x, y axis

Parameters
  • prop (str, optional) – Controls type of re to include in plot. Controlled through the plot_select.csv. 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

curt_total(start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, scenario_groupby: str = 'Scenario', **_)[source]#

Creates stacked barplots of total curtailment by technology.

A separate bar is created for each scenario.

Parameters
  • 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.

  • scenario_groupby (str, optional) –

    Specifies whether to group data by Scenario or Year-Sceanrio. If grouping by Year-Sceanrio the year will be identified from the timestamp and appeneded to the sceanrio name. This is useful when plotting data which covers multiple years such as ReEDS. Defaults to Scenario.

    New in version 0.10.0.

Returns

dictionary containing the created plot and its data table.

Return type

dict

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

Creates stacked barplots of total curtailment by technology relative to a base scenario.

Barplots show the change in total curtailment relative to a base scenario. The default is to comapre against the first scenario provided in the inputs list.

Parameters
  • 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

curt_ind(figure_name: Optional[str] = None, prop: Optional[str] = None, start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, **_)[source]#

Curtailment as a percentage of total generation, of individual generators.

The generators are specified as a comma seperated string in the fourth column of Marmot_plot_select.csv and is passed to the prop argument. The method outputs two.csv files:

  • one that contains curtailment, in percent, for each scenario and site.

  • the other contains total generation, in TWh, for each scenario and site.

This method does not return data to MarmotPlot, data is saved within the method directly to the output folder.

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

  • prop (str, optional) – comma seperated string of generators to display. 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

average_diurnal_curt(timezone: Optional[str] = None, start_date_range: Optional[str] = None, end_date_range: Optional[str] = None, scenario_groupby: str = 'Scenario', **_)[source]#

Average diurnal renewable curtailment plot.

Each scenario is plotted as a separate line and shows the average hourly curtailment over a 24 hour period averaged across the entire year or time period defined.

Parameters
  • timezone (str, optional) – The timezone to display on the x-axes. 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.

  • scenario_groupby (str, optional) –

    Specifies whether to group data by Scenario or Year-Sceanrio. If grouping by Year-Sceanrio the year will be identified from the timestamp and appeneded to the sceanrio name. This is useful when plotting data which covers multiple years such as ReEDS. Defaults to Scenario.

    New in version 0.10.0.

Returns

dictionary containing the created plot and its data table.

Return type

dict