Nyiso#

Module Contents#

Classes Summary#

DatasetInterval

NYISO

New York Independent System Operator (NYISO)

NYISOLocationType

Enum where members are also (and must be) strings

Attributes Summary#

Contents#

gridstatus.nyiso.AS_PRICES_DAY_AHEAD_HOURLY_DATASET = 'damasp'[source]#
gridstatus.nyiso.AS_PRICES_REAL_TIME_5_MIN_DATASET = 'rtasp'[source]#
gridstatus.nyiso.BTM_SOLAR_ACTUAL_DATASET = 'btmactualforecast'[source]#
gridstatus.nyiso.BTM_SOLAR_FORECAST_DATASET = 'btmdaforecast'[source]#
gridstatus.nyiso.DAM_LMP_DATASET = 'damlbmp'[source]#
gridstatus.nyiso.DATASET_INTERVAL_MAP: Dict[str, DatasetInterval][source]#
class gridstatus.nyiso.DatasetInterval[source]#

Bases: NamedTuple

Attributes

interval_duration_minutes

None

time_type

None

gridstatus.nyiso.FUEL_MIX_DATASET = 'rtfuelmix'[source]#
gridstatus.nyiso.INTERFACE_LIMITS_AND_FLOWS_DATASET = 'ExternalLimitsFlows'[source]#
gridstatus.nyiso.LAKE_ERIE_CIRCULATION_DAY_AHEAD_DATASET = 'eriecirculationda'[source]#
gridstatus.nyiso.LAKE_ERIE_CIRCULATION_REAL_TIME_DATASET = 'eriecirculationrt'[source]#
gridstatus.nyiso.LIMITING_CONSTRAINTS_DAY_AHEAD_DATASET = 'DAMLimitingConstraints'[source]#

Pricing data: https://www.nyiso.com/en/energy-market-operational-data

gridstatus.nyiso.LIMITING_CONSTRAINTS_REAL_TIME_DATASET = 'LimitingConstraints'[source]#
gridstatus.nyiso.LOAD_DATASET = 'pal'[source]#
gridstatus.nyiso.LOAD_FORECAST_DATASET = 'isolf'[source]#
class gridstatus.nyiso.NYISO[source]#

Bases: gridstatus.base.ISOBase

New York Independent System Operator (NYISO)

Attributes

default_timezone

‘US/Eastern’

interconnection_homepage

https://www.nyiso.com/interconnections

iso_id

‘nyiso’

markets

None

name

‘New York ISO’

status_homepage

https://www.nyiso.com/system-conditions

Methods

get_as_prices_day_ahead_hourly(→ pandas.DataFrame)

Pull the most recent ancillary service market report's market clearing prices

get_as_prices_real_time_5_min(→ pandas.DataFrame)

Pull the most recent ancillary service market report's market clearing prices

get_btm_solar(→ pandas.DataFrame)

Returns estimated BTM solar generation at a previous date in hourly

get_btm_solar_forecast(→ pandas.DataFrame)

get_capacity_prices(→ pandas.DataFrame)

Pull the most recent capacity market report's market clearing prices

get_fuel_mix(→ pandas.DataFrame)

get_generators(→ pandas.DataFrame)

Get a list of generators in NYISO. When possible return capacity and fuel type information

get_interconnection_queue(→ pandas.DataFrame)

Return NYISO interconnection queue

get_interface_limits_and_flows_5_min(→ pandas.DataFrame)

Get interface limits and flows for a date

get_lake_erie_circulation_day_ahead(→ pandas.DataFrame)

get_lake_erie_circulation_real_time(→ pandas.DataFrame)

get_limiting_constraints_day_ahead(→ pandas.DataFrame)

get_limiting_constraints_real_time(→ pandas.DataFrame)

get_lmp(→ pandas.DataFrame)

Supported Markets:

get_load(→ pandas.DataFrame)

Returns load at a previous date in 5 minute intervals for

get_load_forecast(→ pandas.DataFrame)

Get load forecast for a date in 1 hour intervals

get_loads(→ pandas.DataFrame)

Get a list of loads in NYISO

get_raw_interconnection_queue(→ BinaryIO)

get_status(→ pandas.DataFrame)

get_zonal_load_forecast(→ pandas.DataFrame)

Get zonal load forecast for a date in 1 hour intervals

get_as_prices_day_ahead_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]#

Pull the most recent ancillary service market report’s market clearing prices

Parameters:

date (pandas.Timestamp) – date that will be used to pull latest capacity report (will refer to month and year)

get_as_prices_real_time_5_min(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, end: str | pandas.Timestamp | None = None, verbose: bool = False) pandas.DataFrame[source]#

Pull the most recent ancillary service market report’s market clearing prices

Parameters:

date (pandas.Timestamp) – date that will be used to pull latest capacity report (will refer to month and year)

get_btm_solar(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]#
Returns estimated BTM solar generation at a previous date in hourly

intervals for system and each zone.

Available ~8 hours after the end of the operating day.

Parameters:
  • date (str, pd.Timestamp, datetime.datetime) – Date to get load for. Can be “today”, or a date

  • end (str, pd.Timestamp, datetime.datetime) – End date for date range. Optional.

  • verbose (bool) – Whether to print verbose output. Optional.

Returns:

BTM solar data for NYISO system and each zone

Return type:

pandas.DataFrame

get_btm_solar_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_capacity_prices(date: pandas.Timestamp | None = None, verbose: bool = False) pandas.DataFrame[source]#

Pull the most recent capacity market report’s market clearing prices

Parameters:

date (pandas.Timestamp) – date that will be used to pull latest capacity report (will refer to month and year)

Returns:

a DataFrame of monthly capacity prices (all three auctions) for each of the four capacity localities within NYISO

get_fuel_mix(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_generators(verbose: bool = False) pandas.DataFrame[source]#

Get a list of generators in NYISO. When possible return capacity and fuel type information

Returns:

a DataFrame of generators and locations

Possible Columns

  • Generator Name

  • PTID

  • Subzone

  • Zone

  • Latitude

  • Longitude

  • Owner, Operator, and / or Billing Organization

  • Station Unit

  • Town

  • County

  • State

  • In-Service Date

  • Name Plate Rating (V) MW

  • 2024 CRIS MW Summer

  • 2024 CRIS MW Winter

  • 2024 Capability MW Summer

  • 2024 Capability MW Winter

  • Is Dual Fuel

  • Unit Type

  • Fuel Type 1

  • Fuel Type 2

  • 2023 Net Energy GWh

  • Notes

  • Generator Type

Return type:

pandas.DataFrame

get_interconnection_queue() pandas.DataFrame[source]#

Return NYISO interconnection queue

Additional Non-NYISO queue info: https://www3.dps.ny.gov/W/PSCWeb.nsf/All/286D2C179E9A5A8385257FBF003F1F7E?OpenDocument

Returns:

Interconnection queue containing, active, withdrawn, and completed project

Return type:

pandas.DataFrame

get_interface_limits_and_flows_5_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 interface limits and flows for a date

get_lake_erie_circulation_day_ahead(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_lake_erie_circulation_real_time(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_limiting_constraints_day_ahead(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_limiting_constraints_real_time(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_lmp(date: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp], end: str | pandas.Timestamp | tuple[pandas.Timestamp, pandas.Timestamp] | None = None, market: gridstatus.base.Markets | None = None, locations: list | None = None, location_type: NYISOLocationType | None = None, verbose: bool = False) pandas.DataFrame[source]#
Supported Markets:
  • REAL_TIME_5_MIN (RTC)

  • REAL_TIME_15_MIN (RTD)

  • REAL_TIME_HOURLY (Real-time hourly LMP)

  • DAY_AHEAD_HOURLY

Supported Location Types:
  • zone

  • generator

NOTE: the generator data contains the single Reference Bus location type.

REAL_TIME_5_MIN is the Real Time Dispatch (RTD) market. REAL_TIME_15_MIN is the Real Time Commitment (RTC) market. REAL_TIME_HOURLY is the real-time hourly LMP market. For documentation on real time dispatch and real time commitment, see: https://www.nyiso.com/documents/20142/1404816/RTC-RTD%20Convergence%20Study.pdf/f3843982-dd30-4c66-6c21-e101c3cb85af

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]#
Returns load at a previous date in 5 minute intervals for

each zone and total load

Parameters:
  • date (str) – Date to get load for. Can be “today”, or a date in the format YYYY-MM-DD

  • end (str) – End date for date range. Optional.

  • verbose (bool) – Whether to print verbose output. Optional.

Returns:

Load data for NYISO and each zone

Return type:

pandas.DataFrame

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 for a date in 1 hour intervals

get_loads() pandas.DataFrame[source]#

Get a list of loads in NYISO

Returns:

a DataFrame of loads and locations

Return type:

pandas.DataFrame

get_raw_interconnection_queue() BinaryIO[source]#
get_status(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_zonal_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 zonal load forecast for a date in 1 hour intervals

class gridstatus.nyiso.NYISOLocationType[source]#

Bases: enum.StrEnum

Enum where members are also (and must be) strings

Initialize self. See help(type(self)) for accurate signature.

Attributes

GENERATOR

‘generator’

ZONE

‘zone’

gridstatus.nyiso.REAL_TIME_EVENTS_DATASET = 'RealTimeEvents'[source]#
gridstatus.nyiso.REAL_TIME_HOURLY_LMP_DATASET = 'rtlbmp'[source]#
gridstatus.nyiso.REAL_TIME_LMP_DATASET = 'realtime'[source]#
gridstatus.nyiso.REFERENCE_BUS_LOCATION = 'NYISO_LBMP_REFERENCE'[source]#