Pjm#

Module Contents#

Classes Summary#

PJM

PJM

Contents#

class gridstatus.pjm.PJM[source]#

Bases: gridstatus.base.ISOBase

PJM

Attributes

default_timezone

US/Eastern

hub_node_ids

[‘51217’, ‘116013751’, ‘35010337’, ‘34497151’, ‘34497127’, ‘34497125’, ‘33092315’, ‘33092313’, ‘33092311’, ‘4669664’, ‘51288’, ‘51287’]

interconnection_queue_homepage

https://www.pjm.com/planning/services-requests/interconnection-queues.aspx

iso_id

pjm

location_types

[‘ZONE’, ‘LOAD’, ‘GEN’, ‘AGGREGATE’, ‘INTERFACE’, ‘EXT’, ‘HUB’, ‘EHV’, ‘TIE’, ‘RESIDUAL_METERED_EDC’]

markets

None

name

PJM

Methods

get_fuel_mix

Get fuel mix for a date or date range in hourly intervals

get_interconnection_queue

get_lmp

Returns LMP at a previous date

get_load

Returns load at a previous date at 5 minute intervals

get_load_forecast

Get forecast for today in hourly intervals.

get_pnode_ids

get_supply

Get supply for a date or date range in hourly intervals

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

Get fuel mix for a date or date range in hourly intervals

get_interconnection_queue()[source]#
get_lmp(date, market: str, end=None, locations='hubs', location_type=None, verbose=False)[source]#

Returns LMP at a previous date

Notes:
  • If start date is prior to the PJM archive date, all data must be downloaded before location filtering can be performed due to limitations of PJM API. The archive date is 186 days (~6 months) before today for the 5 minute real time market and 731 days (~2 years) before today for the Hourly Real Time and Day Ahead Hourly markets. Node type filter can performed for Real Time Hourly and Day Ahead Hourly markets.

  • If location_type is provided, it is filtered after data is retrieved for Real Time 5 Minute market regardless of the date. This is due to PJM api limitations

Args:

date (str or datetime.date): date to get LMPs for

end (str or datetime.date): end date to get LMPs for

market (str): Supported Markets: REAL_TIME_5_MIN, REAL_TIME_HOURLY, DAY_AHEAD_HOURLY

locations (list, optional): list of pnodeid to get LMPs for. Defaults to “hubs”. Use get_pnode_ids() to get a list of possible pnode ids. If “all”, will return data from all p nodes (warning there are over 10,000 unique pnodes, so expect millions or billions of rows!)

location_type (str, optional): If specified, will only return data for nodes of this type. Defaults to None. Possible location types are: ‘ZONE’, ‘LOAD’, ‘GEN’, ‘AGGREGATE’, ‘INTERFACE’, ‘EXT’,

‘HUB’, ‘EHV’, ‘TIE’, ‘RESIDUAL_METERED_EDC’.

get_load(date, end=None)[source]#

Returns load at a previous date at 5 minute intervals

Args:

date (str or datetime.date): date to get load for. must be in last 30 days

get_load_forecast(date)[source]#

Get forecast for today in hourly intervals.

Updates every Every half hour on the quarter E.g. 1:15 and 1:45

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

Get supply for a date or date range in hourly intervals