Nyiso

Contents

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_INSTALLED_CAPACITY_DATASET = 'btminstalledcapacitytracking'[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.GENERATION_OUTAGES_FORECAST_URL = 'http://mis.nyiso.com/public/csv/genmaint/gen_maint_report.csv'[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_installed_capacity(→ pandas.DataFrame)

Returns NYISO's daily estimate of installed behind-the-meter solar capacity

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_generation_outages_forecast(→ pandas.DataFrame)

Get forecasted generation outage capacity for the next 30 days.

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)

Deprecated. Use the per-dataset methods instead:

get_lmp_day_ahead_hourly(→ pandas.DataFrame)

Get day-ahead hourly LMPs for all zone and generator locations.

get_lmp_real_time_15_min(→ pandas.DataFrame)

Get real-time 15-minute (RTC) LMPs for all zone and generator locations.

get_lmp_real_time_5_min(→ pandas.DataFrame)

Get real-time 5-minute (RTD) LMPs for all zone and generator locations.

get_lmp_real_time_hourly(→ pandas.DataFrame)

Get real-time hourly LMPs for all zone and generator locations.

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_zonal_load_hourly(→ pandas.DataFrame)

Get hourly integrated real-time load by zone.

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_installed_capacity(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 NYISO’s daily estimate of installed behind-the-meter solar capacity by zone.

Source: https://mis.nyiso.com/public/P-70Clist.htm

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_generation_outages_forecast(date: str | pandas.Timestamp | Literal['latest'] = 'latest', end: str | pandas.Timestamp | None = None, verbose: bool = False) pandas.DataFrame[source]#

Get forecasted generation outage capacity for the next 30 days.

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

Deprecated. Use the per-dataset methods instead: get_lmp_real_time_5_min(), get_lmp_real_time_15_min(), get_lmp_real_time_hourly(), get_lmp_day_ahead_hourly().

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

Get day-ahead hourly LMPs for all zone and generator locations.

get_lmp_real_time_15_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 real-time 15-minute (RTC) LMPs for all zone and generator locations.

get_lmp_real_time_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 real-time 5-minute (RTD) LMPs for all zone and generator locations.

get_lmp_real_time_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 real-time hourly LMPs for all zone and generator locations.

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

get_zonal_load_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 integrated real-time load by zone.

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]#
gridstatus.nyiso.ZONAL_LOAD_HOURLY_DATASET = 'palIntegrated'[source]#