Aeso#
Submodules#
Package Contents#
Classes Summary#
API client for Alberta Electric System Operator (AESO) data. |
Contents#
- class gridstatus.aeso.AESO(api_key: str | None = None)[source]#
API client for Alberta Electric System Operator (AESO) data.
Handles authentication and provides methods to access various AESO datasets including supply and demand, market data, and operational information.
Initialize the AESO API client.
- Parameters:
api_key – AESO API key. If not provided, will try to get from AESO_API_KEY environment variable.
Attributes
api_key
None
base_url
default_headers
None
default_timezone
‘US/Mountain’
HISTORICAL_FORECAST_EARLIEST
None
HISTORICAL_FORECAST_LATEST
None
MAX_NAVIGATION_ATTEMPTS
100
REQUEST_TIMEOUT
(10, 120)
Methods
get_asset_list(→ pandas.DataFrame)Get list of assets in the AESO system.
get_daily_average_pool_price(→ pandas.DataFrame)Get daily average pool price data with on-peak and off-peak breakdowns.
get_forecast_pool_price(→ pandas.DataFrame)Get pool price data.
get_fuel_mix(→ pandas.DataFrame)Get current generation by fuel type.
get_generator_outages_hourly(→ pandas.DataFrame)Get hourly generator outage data.
get_interchange(→ pandas.DataFrame)Get current interchange flows with neighboring regions.
get_load(→ pandas.DataFrame)Get current load data.
get_load_forecast(→ pandas.DataFrame)Get load forecast data.
get_pool_price(→ pandas.DataFrame)Get pool price data.
get_reserves(→ pandas.DataFrame)Get current reserve data.
get_solar_10_min(→ pandas.DataFrame)Get actual solar generation data with 10-minute intervals.
get_solar_forecast_12_hour(→ pandas.DataFrame)Get 12-hour solar forecast data.
get_solar_forecast_7_day(→ pandas.DataFrame)Get 7-day solar forecast data.
get_solar_hourly(→ pandas.DataFrame)Get actual solar generation data with hourly intervals.
get_supply_and_demand(→ pandas.DataFrame)Get current supply and demand summary data.
get_system_marginal_price(→ pandas.DataFrame)Get system marginal price data.
get_transmission_outages(→ pandas.DataFrame)Get transmission outages data.
get_unit_status(→ pandas.DataFrame)Get current unit status data for all assets in the AESO system.
get_wind_10_min(→ pandas.DataFrame)Get actual wind generation data with 10-minute intervals.
get_wind_forecast_12_hour(→ pandas.DataFrame)Get 12-hour wind forecast data.
get_wind_forecast_7_day(→ pandas.DataFrame)Get 7-day wind forecast data.
get_wind_hourly(→ pandas.DataFrame)Get actual wind generation data with hourly intervals.
- get_asset_list(asset_id: str | None = None, pool_participant_id: str | None = None, operating_status: str | None = None, asset_type: str | None = None) pandas.DataFrame[source]#
Get list of assets in the AESO system.
- Parameters:
asset_id – Filter by specific asset ID
pool_participant_id – Filter by pool participant ID
operating_status – Filter by operating status
asset_type – Filter by asset type
- Returns:
DataFrame containing asset information
- get_daily_average_pool_price(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get daily average pool price data with on-peak and off-peak breakdowns.
On-peak hours are defined as hours ending 8 through 23 (inclusive). Off-peak hours are all other hours.
- Returns:
DataFrame containing daily average price data
- get_forecast_pool_price(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get pool price data.
- Returns:
DataFrame containing pool price data
- get_fuel_mix() pandas.DataFrame[source]#
Get current generation by fuel type.
- Returns:
DataFrame containing generation data by fuel type, with each fuel type as a column containing its net generation value
- get_generator_outages_hourly(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get hourly generator outage data.
- Parameters:
date – Start date for the data. Can be “latest” to get current data.
end – End date for the data. If not provided, will get 24 months of data.
verbose – Whether to print verbose output.
- Returns:
DataFrame containing generator outage data
- get_interchange() pandas.DataFrame[source]#
Get current interchange flows with neighboring regions.
- Returns:
DataFrame containing interchange data with separate columns for each region’s flow and a net interchange flow column
- get_load(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get current load data.
- Returns:
DataFrame containing load data
- get_load_forecast(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get load forecast data.
The AESO publishes load forecasts daily at 7am Mountain Time. The forecast covers the next 13 days. The publish time is determined as follows:
For historical data: 7am on the day of the interval if interval is after 7am, otherwise 7am the previous day
For future data: 7am today (if after 7am) or 7am yesterday (if before 7am)
- Returns:
DataFrame containing load forecast data with publish times.
- get_pool_price(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get pool price data.
- Returns:
DataFrame containing pool price data
- get_reserves() pandas.DataFrame[source]#
Get current reserve data.
- Returns:
DataFrame containing reserve information
- get_solar_10_min(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get actual solar generation data with 10-minute intervals.
- Returns:
DataFrame containing actual solar generation data with 10-minute intervals
- get_solar_forecast_12_hour(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get 12-hour solar forecast data.
- Returns:
DataFrame containing 12-hour solar forecast data with min, most likely, and max values
- get_solar_forecast_7_day(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get 7-day solar forecast data.
- Returns:
DataFrame containing 7-day solar forecast data with min, most likely, and max values
- get_solar_hourly(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get actual solar generation data with hourly intervals.
- Returns:
DataFrame containing actual solar generation data with hourly intervals
- get_supply_and_demand() pandas.DataFrame[source]#
Get current supply and demand summary data.
- Returns:
DataFrame containing current supply and demand information
- get_system_marginal_price(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get system marginal price data.
- Returns:
DataFrame containing system marginal price data with minutely intervals
- get_transmission_outages(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None) pandas.DataFrame[source]#
Get transmission outages data.
- Parameters:
date – Start date for the data. Can be “latest” to get current data.
end – End date for the data. If not provided, will get data for the specified date.
- Returns:
DataFrame containing transmission outage data
- get_unit_status(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], verbose: bool = False) pandas.DataFrame[source]#
Get current unit status data for all assets in the AESO system.
- Returns:
Time: Timestamp of the data
Asset: Asset identifier
Fuel Type: Type of fuel used
Sub Fuel Type: Sub-category of fuel type
Maximum Capability: Maximum generation capability in MW
Net Generation: Current net generation in MW
Dispatched Contingency Reserve: Amount of contingency reserve dispatched in MW
- Return type:
DataFrame containing unit status data with columns
- get_wind_10_min(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get actual wind generation data with 10-minute intervals.
- Returns:
DataFrame containing actual wind generation data with 10-minute intervals
- get_wind_forecast_12_hour(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get 12-hour wind forecast data.
- Returns:
DataFrame containing 12-hour wind forecast data with min, most likely, and max values
- get_wind_forecast_7_day(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get 7-day wind forecast data.
- Returns:
DataFrame containing 7-day wind forecast data with min, most likely, and max values
- get_wind_hourly(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, verbose: bool = False) pandas.DataFrame[source]#
Get actual wind generation data with hourly intervals.
- Returns:
DataFrame containing actual wind generation data with hourly intervals