reV.losses.scheduled.Outage

class Outage(specs)[source]

Bases: object

A specific type of outage.

This class stores and validates information about a single type of outage. In particular, the number of outages, duration, percentage of farm down, and the allowed months for scheduling the outage must all be provided. These inputs are then validated so that they can be used in instances of scheduling objects.

Parameters:

specs (dict) – A dictionary containing specifications for this outage. This dictionary must contain the following keys:

  • count

    An integer value representing the total number of times this outage should be scheduled. This number should be larger than 0.

  • duration

    An integer value representing the total number of consecutive hours that this outage should take. This value must be larger than 0 and less than the number of hours in the allowed months.

  • percentage_of_capacity_lost

    An integer or float value representing the total percentage of the total capacity that will be lost for the duration of the outage. This value must be in the range (0, 100].

  • allowed_months

    A list of month names corresponding to the allowed months for the scheduled outages. Month names can be unformatted and can be specified using 3-letter month abbreviations.

The input dictionary can also provide the following optional keys:

  • allow_outage_overlap - by default, True

    A bool flag indicating whether or not this outage is allowed to overlap with other outages, including itself. It is recommended to set this value to True whenever possible, as it allows for more flexible scheduling.

  • name - by default, string containing init parameters

    A unique name for the outage, used for more descriptive error messages.

Methods

Attributes

REQUIRED_KEYS

Required keys in the input specification dictionary.

allow_outage_overlap

Indicator for overlap with other outages.

allowed_months

Months during which outage can be scheduled.

count

Total number of times outage should be scheduled.

duration

Total number of consecutive hours per outage.

name

Name of the outage.

percentage_of_capacity_lost

Percent of capacity taken down per outage.

total_available_hours

Total number of hours available based on allowed months.

REQUIRED_KEYS = {'allowed_months', 'count', 'duration', 'percentage_of_capacity_lost'}

Required keys in the input specification dictionary.

property count

Total number of times outage should be scheduled.

Type:

int

property duration

Total number of consecutive hours per outage.

Type:

int

property percentage_of_capacity_lost

Percent of capacity taken down per outage.

Type:

int | float

property allowed_months

Months during which outage can be scheduled.

Type:

list

property allow_outage_overlap

Indicator for overlap with other outages.

Type:

bool

property name

Name of the outage.

Type:

str

property total_available_hours

Total number of hours available based on allowed months.

Type:

int