Spp#

Module Contents#

Classes Summary#

SPP

Southwest Power Pool (SPP)

Functions#

add_interval

Adds Interval Start and Interval End columns to df

process_gen_mix

Parse SPP generation mix data from

Attributes Summary#

BASE_LOAD_FORECAST_MID_TERM_URL

BASE_LOAD_FORECAST_SHORT_TERM_URL

BASE_SOLAR_AND_WIND_MID_TERM_URL

BASE_SOLAR_AND_WIND_SHORT_TERM_URL

FILE_BROWSER_API_URL

FILE_BROWSER_DOWNLOAD_URL

FS_DAM_LMP_BY_LOCATION

FS_RTBM_LMP_BY_LOCATION

LAST_UPDATED_KEYWORDS

LOCATION_TYPE_ALL

LOCATION_TYPE_HUB

LOCATION_TYPE_INTERFACE

LOCATION_TYPE_SETTLEMENT_LOCATION

MARKETPLACE_BASE_URL

QUERY_RTM5_HUBS_URL

QUERY_RTM5_INTERFACES_URL

RELIABILITY_LEVELS

RELIABILITY_LEVELS_ALIASES

STATUS_STOP_WORDS

Contents#

gridstatus.spp.add_interval(df, interval_min)[source]#

Adds Interval Start and Interval End columns to df

gridstatus.spp.BASE_LOAD_FORECAST_MID_TERM_URL[source]#
gridstatus.spp.BASE_LOAD_FORECAST_SHORT_TERM_URL[source]#
gridstatus.spp.BASE_SOLAR_AND_WIND_MID_TERM_URL[source]#
gridstatus.spp.BASE_SOLAR_AND_WIND_SHORT_TERM_URL[source]#
gridstatus.spp.FILE_BROWSER_API_URL = 'https://portal.spp.org/file-browser-api/'[source]#
gridstatus.spp.FILE_BROWSER_DOWNLOAD_URL = 'https://portal.spp.org/file-browser-api/download'[source]#
gridstatus.spp.FS_DAM_LMP_BY_LOCATION = 'da-lmp-by-location'[source]#
gridstatus.spp.FS_RTBM_LMP_BY_LOCATION = 'rtbm-lmp-by-location'[source]#
gridstatus.spp.LAST_UPDATED_KEYWORDS = ['last updated', 'as of'][source]#
gridstatus.spp.LOCATION_TYPE_ALL = 'ALL'[source]#
gridstatus.spp.LOCATION_TYPE_HUB = 'Hub'[source]#
gridstatus.spp.LOCATION_TYPE_INTERFACE = 'Interface'[source]#
gridstatus.spp.LOCATION_TYPE_SETTLEMENT_LOCATION = 'Settlement Location'[source]#
gridstatus.spp.MARKETPLACE_BASE_URL = 'https://portal.spp.org'[source]#
gridstatus.spp.process_gen_mix(df, detailed=False)[source]#

Parse SPP generation mix data from https://marketplace.spp.org/pages/generation-mix-historical

Parameters:
  • df (pd.DataFrame) – raw data

  • detailed (bool) – whether to combine market and self columns

Returns:

processed data

Return type:

pd.DataFrame

gridstatus.spp.QUERY_RTM5_HUBS_URL = 'https://pricecontourmap.spp.org/arcgis/rest/services/MarketMaps/RTBM_FeatureData/MapServer/1/query'[source]#
gridstatus.spp.QUERY_RTM5_INTERFACES_URL = 'https://pricecontourmap.spp.org/arcgis/rest/services/MarketMaps/RTBM_FeatureData/MapServer/2/query'[source]#
gridstatus.spp.RELIABILITY_LEVELS = ['Normal Operations', 'Weather Advisory', 'Resource Advisory', 'Conservative Operations...[source]#
gridstatus.spp.RELIABILITY_LEVELS_ALIASES[source]#
class gridstatus.spp.SPP[source]#

Bases: gridstatus.base.ISOBase

Southwest Power Pool (SPP)

Attributes

default_timezone

US/Central

interconnection_homepage

https://www.spp.org/engineering/generator-interconnection/

iso_id

spp

location_types

None

markets

None

name

Southwest Power Pool

status_homepage

https://www.spp.org/markets-operations/current-grid-conditions/

Methods

get_capacity_of_generation_on_outage

Get Capacity of Generation on Outage.

get_capacity_of_generation_on_outage_annual

Get VER Curtailments for a year. Starting 2014.

get_day_ahead_operating_reserve_prices

Provides Marginal Clearing Price information by Reserve Zone for each

get_fuel_mix

Get fuel mix

get_interconnection_queue

Get interconnection queue

get_lmp

Get LMP data

get_lmp_real_time_weis

Get LMP data for real time WEIS

get_load

Returns load for last 24hrs in 5 minute intervals

get_load_forecast

Returns load forecast for next 7 days in hourly intervals

get_load_forecast_mid_term

Returns load forecast for +7 days in hourly intervals. Includes actual load

get_load_forecast_short_term

5-minute load forecast data for the SPP footprint (system-wide) for +/- 10

get_operating_reserves

get_raw_interconnection_queue

get_solar_and_wind_forecast_mid_term

Returns solar and wind generation forecast for +7 days in hourly intervals.

get_solar_and_wind_forecast_short_term

Returns solar and wind generation forecast for +4 hours in 5 minute intervals.

get_ver_curtailments

Get VER Curtailments

get_ver_curtailments_annual

Get VER Curtailments for a year. Starting 2014.

now

get_capacity_of_generation_on_outage(date, end=None, verbose=False)[source]#

Get Capacity of Generation on Outage.

Published daily at 8am CT for next 7 days

Parameters:
  • date – start date

  • end – end date

get_capacity_of_generation_on_outage_annual(year, verbose=True)[source]#

Get VER Curtailments for a year. Starting 2014. Recent data use get_capacity_of_generation_on_outage

Parameters:
  • year – year to get data for

  • verbose – print url

Returns:

VER Curtailments

Return type:

pd.DataFrame

get_day_ahead_operating_reserve_prices(date, end=None, verbose=False)[source]#

Provides Marginal Clearing Price information by Reserve Zone for each Day-Ahead Market solution for each Operating Day. Posting is updated each day after the DA Market results are posted. Available at https://portal.spp.org/pages/da-mcp#

Parameters:
  • date – date to get data for

  • end – end date

  • verbose – print url

Returns:

Day Ahead Marginal Clearing Prices

Return type:

pd.DataFrame

get_fuel_mix(date, detailed=False, verbose=False)[source]#

Get fuel mix

Parameters:
  • date – supports today and latest

  • detailed – if True, breaks out self scheduled and market scheduled

Note

if today, returns last 2 hours of data. maybe include previous day

Returns:

fuel mix

Return type:

pd.DataFrame

get_interconnection_queue(verbose=False)[source]#

Get interconnection queue

Returns:

Interconnection queue

Return type:

pandas.DataFrame

get_lmp(date, end=None, market: str = None, location_type: str = LOCATION_TYPE_ALL, verbose=False)[source]#

Get LMP data

Supported Markets:
  • REAL_TIME_5_MIN

  • DAY_AHEAD_HOURLY

Supported Location Types:
  • Hub

  • Interface

  • ALL

get_lmp_real_time_weis(date, end=None, verbose=False)[source]#

Get LMP data for real time WEIS

Parameters:
  • date – date to get data for. if end is not provided, will get data for 5 minute interval that date is in.

  • end – end date

  • verbose – print url

get_load(date, verbose=False)[source]#

Returns load for last 24hrs in 5 minute intervals

get_load_forecast(date, forecast_type='MID_TERM', verbose=False)[source]#

Returns load forecast for next 7 days in hourly intervals

Parameters:

forecast_type (str) – MID_TERM is hourly for next 7 days or SHORT_TERM is every five minutes for a few hours

Returns:

forecast for current day

Return type:

pd.DataFrame

get_load_forecast_mid_term(date, end=None, verbose=False)[source]#

Returns load forecast for +7 days in hourly intervals. Includes actual load for the past 24 hours. Data from https://portal.spp.org/pages/mtlf-vs-actual

Parameters:
  • date (pd.Timestamp|str) – date to get data for. Supports “latest” and “today”

  • verbose (bool) – print info

Returns:

forecast as dataframe.

Return type:

pd.DataFrame

get_load_forecast_short_term(date, end=None, verbose=False)[source]#

5-minute load forecast data for the SPP footprint (system-wide) for +/- 10 minutes. Also includes actual load.

Data from https://portal.spp.org/pages/stlf-vs-actual

Parameters:
  • date (pd.Timestamp|str) – date to get data for. Supports “latest” and “today”

  • verbose (bool) – print info

Returns:

forecast as dataframe.

Return type:

pd.DataFrame

get_operating_reserves(date, end=None, verbose=False)[source]#
get_raw_interconnection_queue(verbose=False) BinaryIO[source]#
get_solar_and_wind_forecast_mid_term(date, end=None, verbose=False)[source]#

Returns solar and wind generation forecast for +7 days in hourly intervals.

Data from https://portal.spp.org/pages/midterm-resource-forecast.

Parameters:
  • date (pd.Timestamp|str) – date to get data for. Supports “latest” and “today”

  • verbose (bool) – print info

Returns:

forecast as dataframe.

Return type:

pd.DataFrame

get_solar_and_wind_forecast_short_term(date, end=None, verbose=False)[source]#

Returns solar and wind generation forecast for +4 hours in 5 minute intervals. Include actuals for past day in 5 minute intervals.

Data from https://portal.spp.org/pages/shortterm-resource-forecast

Parameters:
  • date (pd.Timestamp|str) – date to get data for. Supports “latest” and “today”

  • verbose (bool) – print info

Returns:

forecast as dataframe.

Return type:

pd.DataFrame

get_ver_curtailments(date, end=None, verbose=False)[source]#

Get VER Curtailments

Supports recent data. For historical annual data use get_ver_curtailments_annual

Parameters:
  • date – start date

  • end – end date

get_ver_curtailments_annual(year, verbose=True)[source]#

Get VER Curtailments for a year. Starting 2014. Recent data use get_ver_curtailments

Parameters:
  • year – year to get data for

  • verbose – print url

Returns:

VER Curtailments

Return type:

pd.DataFrame

static now()[source]#
gridstatus.spp.STATUS_STOP_WORDS = ['as', 'at', 'ct', 'eea', 'of', 'on'][source]#