Ercot#
Module Contents#
Classes Summary#
Electric Reliability Council of Texas (ERCOT) |
|
Enum class for the Medium Term (Seven Day) Load Forecasts. |
Functions#
Attributes Summary#
Contents#
- class gridstatus.ercot.Document[source]#
Attributes
constructed_name
None
friendly_name
None
friendly_name_timestamp
None
publish_date
None
url
None
- class gridstatus.ercot.Ercot[source]#
Bases:
gridstatus.base.ISOBaseElectric Reliability Council of Texas (ERCOT)
Attributes
ACTUAL_LOADS_FORECAST_ZONES_URL_FORMAT
https://www.ercot.com/content/cdr/html/{timestamp}_actual_loads_of_forecast_zones.html
ACTUAL_LOADS_WEATHER_ZONES_URL_FORMAT
https://www.ercot.com/content/cdr/html/{timestamp}_actual_loads_of_weather_zones.html
BASE
default_timezone
US/Central
interconnection_homepage
http://mis.ercot.com/misapp/GetReports.do?reportTypeId=15933
iso_id
ercot
LOAD_HISTORICAL_MAX_DAYS
14
location_types
None
markets
None
name
Electric Reliability Council of Texas
status_homepage
Methods
Get 60 day DAM Disclosure data
Get 60 day SCED Disclosure data
Get Ancillary Service Capacity Monitor.
Get ancillary service clearing prices in hourly intervals in Day Ahead Market
Get Ancillary Services Reports.
Get RTM Price Corrections
Get Historical DAM Settlement Point Prices(SPPs)
Get Day-Ahead Market System Lambda
Get energy storage resources.
Get fuel mix 5 minute intervals
Get the offer price and the name of the Entity submitting
Hourly Resource Outage Capacity report sourced
Get Hourly Solar Report.
Get Hourly Wind Report.
Get interconnection queue for ERCOT
Get LMP data for ERCOT normally produced by SCED every five minutes
Get load for a date
Get hourly load for ERCOT forecast zones
Get hourly load for ERCOT weather zones
Returns load forecast of specified forecast type.
Get Real-Time System Conditions.
Get RTM Price Corrections
Get Historical RTM Settlement Point Prices(SPPs)
Parse SARA data from url.
Get System lambda of each successful SCED
Get SPP data for ERCOT
Returns status of grid
Get 15-minute system-wide actual load.
Get Unplanned Resource Outages.
- get_60_day_dam_disclosure(date, end=None, process=False, verbose=False)[source]#
Get 60 day DAM Disclosure data
- get_60_day_sced_disclosure(date, end=None, process=False, verbose=False)[source]#
Get 60 day SCED Disclosure data
- Parameters:
date (datetime.date, str) – date to return
end (datetime.date, str, optional) – if declared, function will return data as a range, from “date” to “end”
process (bool, optional) – if True, will process the data into standardized format. if False, will return raw data
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
- dictionary with keys “sced_load_resource”, “sced_gen_resource”, and
”sced_smne”, mapping to pandas.DataFrame objects
- Return type:
dict
- get_as_monitor(date='latest', verbose=False)[source]#
Get Ancillary Service Capacity Monitor.
Parses table from https://www.ercot.com/content/cdr/html/as_capacity_monitor.html
- Parameters:
date (str) – only supports “latest”
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with ancillary service capacity monitor data
- Return type:
pandas.DataFrame
- get_as_prices(date, end=None, verbose=False)[source]#
Get ancillary service clearing prices in hourly intervals in Day Ahead Market
- Parameters:
date (datetime.date, str) – date of delivery for AS services
end (datetime.date, str, optional) – if declared, function will return data as a range, from “date” to “end”
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with prices for “Non-Spinning Reserves”, “Regulation Up”, “Regulation Down”, “Responsive Reserves”, “ERCOT Contingency Reserve Service”
- Return type:
pandas.DataFrame
- get_as_reports(date, verbose=False)[source]#
Get Ancillary Services Reports.
Published with a 2 day delay around 3am central
- get_dam_price_corrections(dam_type, verbose=False)[source]#
Get RTM Price Corrections
- Parameters:
rtm_type (str) – ‘DAM_SPP’, ‘DAM_MCPC’, ‘DAM_EBLMP’
- get_dam_spp(year, verbose=False)[source]#
Get Historical DAM Settlement Point Prices(SPPs) for each of the Hubs and Load Zones
- Parameters:
year (int) – year to get data for. Starting 2011, returns data for the entire year
- get_dam_system_lambda(date, end=None, verbose=False)[source]#
Get Day-Ahead Market System Lambda
File is typically published around 12:30 pm for the day ahead
https://www.ercot.com/mp/data-products/data-product-details?id=NP4-523-CD
- Parameters:
date (str, datetime) – date to get data for
end (str, datetime, optional) – end time to get data for. If None, return 1 day of data. Defaults to None.
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with day-ahead market system lambda data
- Return type:
pandas.DataFrame
- get_energy_storage_resources(date='latest', verbose=False)[source]#
Get energy storage resources. Always returns data from previous and current day
- get_fuel_mix(date, verbose=False)[source]#
Get fuel mix 5 minute intervals
- Parameters:
date (datetime.date, str) – “latest”, “today”, and yesterday’s date are supported.
verbose (bool) – print verbose output. Defaults to False.
- Returns:
A DataFrame with columns; Time and columns for each fuel type
- Return type:
pandas.DataFrame
- get_highest_price_as_offer_selected(date, verbose=False)[source]#
Get the offer price and the name of the Entity submitting the offer for the highest-priced Ancillary Service (AS) Offer.
Published with 3 day delay
- Parameters:
date (str, datetime) – date to get data for
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrameq
- Return type:
pandas.DataFrame
- get_hourly_resource_outage_capacity(date, end=None, verbose=False)[source]#
Hourly Resource Outage Capacity report sourced from the Outage Scheduler (OS).
Returns outage data for for next 7 days.
Total Resource MW doesn’t include IRR, New Equipment outages, retirement of old equipment, seasonal mothballed (during the outage season), and mothballed.
As such, it is a proxy for thermal outages.
- Parameters:
date (str) – time to download. Returns last hourly report before this time. Supports “latest”
end (str, optional) – end time to download. Defaults to None.
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with hourly resource outage capacity data
- Return type:
pandas.DataFrame
- get_hourly_solar_report(date, end=None, verbose=False)[source]#
Get Hourly Solar Report.
Posted every hour and includes System-wide and geographic regional hourly averaged solar power production, STPPF, PVGRPP, and COP HSL for On-Line PVGRs for a rolling historical 48-hour period as well as the system-wide and regional STPPF, PVGRPP, and COP HSL for On-Line PVGRs for the rolling future 168-hour period.
- Parameters:
date (str) – date to get report for. Supports “latest” or a date string
end (str, optional) – end date for date range. Defaults to None.
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with hourly solar report data
- Return type:
pandas.DataFrame
- get_hourly_wind_report(date, end=None, verbose=False)[source]#
Get Hourly Wind Report.
This report is posted every hour and includes System-wide and Regional actual hourly averaged wind power production, STWPF, WGRPP and COP HSLs for On-Line WGRs for a rolling historical 48-hour period as well as the System-wide and Regional STWPF, WGRPP and COP HSLs for On-Line WGRs for the rolling future 168-hour period. Our forecasts attempt to predict HSL, which is uncurtailed power generation potential.
- Parameters:
date (str) – date to get report for. Supports “latest”
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with hourly wind report data
- Return type:
pandas.DataFrame
- get_interconnection_queue(verbose=False)[source]#
Get interconnection queue for ERCOT
- Monthly historical data available here:
- get_lmp(date, end=None, market: str = Markets.REAL_TIME_SCED, locations: list = 'ALL', location_type: str = 'ALL', verbose=False)[source]#
Get LMP data for ERCOT normally produced by SCED every five minutes
Can specify the location type to return “electrical bus” or “settlement point” data
- get_load(date, end=None, verbose=False)[source]#
Get load for a date
- Parameters:
date (datetime.date, str) – “latest”, “today”, or a date string are supported.
- get_load_by_forecast_zone(date, verbose=False)[source]#
Get hourly load for ERCOT forecast zones
- Parameters:
date (datetime.date, str) – “today”, or a date string are supported.
verbose (bool) – print verbose output. Defaults to False.
- Returns:
pandas.DataFrame
- get_load_by_weather_zone(date, verbose=False)[source]#
Get hourly load for ERCOT weather zones
- Parameters:
date (datetime.date, str) – “today”, or a date string are supported.
verbose (bool) – print verbose output. Defaults to False.
- Returns:
pandas.DataFrame
- get_load_forecast(date, end=None, forecast_type=ERCOTSevenDayLoadForecastReport.BY_FORECAST_ZONE, verbose=False)[source]#
Returns load forecast of specified forecast type.
If date range provided, returns all hourly reports published within.
Note: only limited historical data is available
- Parameters:
date (str, datetime) – datetime to download. If end not provided, returns last hourly report published before. if “latest”, returns most recent hourly report. if end provided, returns all hourly reports published after this date and before end.
end (str, datetime,) – if provided, returns all hourly reports published after date and before end
forecast_type (ERCOTSevenDayLoadForecastReport) – The load forecast type. Enum of possible values.
verbose (bool, optional) – print verbose output. Defaults to False.
- get_real_time_system_conditions(date='latest', verbose=False)[source]#
Get Real-Time System Conditions.
Parses table from https://www.ercot.com/content/cdr/html/real_time_system_conditions.html
- Parameters:
date (str) – only supports “latest”
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with real-time system conditions
- Return type:
pandas.DataFrame
- get_rtm_price_corrections(rtm_type, verbose=False)[source]#
Get RTM Price Corrections
- Parameters:
rtm_type (str) – ‘RTM_SPP’, ‘RTM_SPLMP’, ‘RTM_EBLMP’, ‘RTM_ShadowPrice’, ‘RTM_SOGLMP’, ‘RTM_SOGPRICE’
- get_rtm_spp(year, verbose=False)[source]#
- Get Historical RTM Settlement Point Prices(SPPs)
for each of the Hubs and Load Zones
- Parameters:
year (int) – year to get data for Starting 2011, returns data for the entire year
- get_sara(url='https://www.ercot.com/files/docs/2023/05/05/SARA_Summer2023_Revised.xlsx', verbose=False)[source]#
Parse SARA data from url.
Seasonal Assessment of Resource Adequacy for the ERCOT Region (SARA)
- Parameters:
url (str, optional) – url to download SARA data from. Defaults to Summer 2023 SARA data.
- get_sced_system_lambda(date, end=None, verbose=False)[source]#
Get System lambda of each successful SCED
Normally published every 5 minutes
- Parameters:
date (str, datetime, pd.Timestamp) – date or start time to get data for
end (str, datetime, optional) – end time to get data for. If None, return 1 day of data. Defaults to None.
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame
- Return type:
pandas.DataFrame
- get_spp(date, end=None, market: str = None, locations: list = 'ALL', location_type: str = 'ALL', verbose=False)[source]#
Get SPP data for ERCOT
- Supported Markets:
REAL_TIME_15_MINDAY_AHEAD_HOURLY
- Supported Location Types:
Load ZoneTrading HubResource Node
- get_system_wide_actual_load(date, end=None, verbose=False)[source]#
Get 15-minute system-wide actual load.
This report is posted every hour five minutes after the hour.
- Parameters:
date (str, datetime) – date to get data for
end (str, datetime, optional) – end time to get data for. Defaults to None.
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with system actuals data
- Return type:
pandas.DataFrame
- get_unplanned_resource_outages(date, verbose=False)[source]#
Get Unplanned Resource Outages.
Data published at ~5am central on the 3rd day after the day of interest.
- Parameters:
date (str, datetime) – date to get data for
verbose (bool, optional) – print verbose output. Defaults to False.
- Returns:
A DataFrame with unplanned resource outages
- Return type:
pandas.DataFrame
- class gridstatus.ercot.ERCOTSevenDayLoadForecastReport[source]#
Bases:
enum.EnumEnum class for the Medium Term (Seven Day) Load Forecasts. The values are the report IDs.
Attributes
BY_FORECAST_ZONE
12311
BY_MODEL_AND_STUDY_AREA
15953
BY_MODEL_AND_WEATHER_ZONE
14837
BY_WEATHER_ZONE
12312
- gridstatus.ercot.LOCATION_TYPE_ZONE_DC_EW = 'Load Zone DC Tie Energy Weighted'[source]#
Report Type IDs
- gridstatus.ercot.SETTLEMENT_POINT_PRICES_AT_RESOURCE_NODES_HUBS_AND_LOAD_ZONES_RTID = 12301[source]#
- gridstatus.ercot.SOLAR_POWER_PRODUCTION_HOURLY_AVERAGED_ACTUAL_AND_FORECASTED_VALUES_BY_GEOGRAPHICAL_REGION_RTID = 21809[source]#
Settlement Point Type Description ========== ========== =========== Resource Node RN Resource Node for normal resource Resource Node PCCRN Physical Resource Node for combined cycle units Resource Node LCCRN Logical Resource Node for combined cycle plant Resource Node PUN Private Area Network Resource Node Load Zone LZ Congestion Load Zone Load Zone LZ_DC DCTIE Load Zone Hub HU Hub Hub SH ERCOT_345KV_HUBBUSES_AVG Hub AH ERCOT_HUB_AVG ============================================================ Source: https://www.ercot.com/files/docs/2009/10/26/07_tests_for_rsnable_lmps_overview_of_price_valid_tool_09102.ppt