Ieso
=========================

.. py:module:: gridstatus.ieso


Module Contents
---------------

Classes Summary
~~~~~~~~~~~~~~~

.. autoapisummary::

   gridstatus.ieso.IESO





Attributes Summary
~~~~~~~~~~~~~~~~~~~

.. autoapisummary::

   gridstatus.ieso.FUEL_MIX_INDEX_URL
   gridstatus.ieso.FUEL_MIX_TEMPLATE_URL
   gridstatus.ieso.HISTORICAL_FUEL_MIX_INDEX_URL
   gridstatus.ieso.HISTORICAL_FUEL_MIX_TEMPLATE_URL
   gridstatus.ieso.HOUR_INTERVAL
   gridstatus.ieso.LOAD_FORECAST_URL
   gridstatus.ieso.LOAD_INDEX_URL
   gridstatus.ieso.LOAD_TEMPLATE_URL
   gridstatus.ieso.MAXIMUM_DAYS_IN_FUTURE_FOR_ZONAL_LOAD_FORECAST
   gridstatus.ieso.MAXIMUM_DAYS_IN_PAST_FOR_COMPLETE_GENERATOR_REPORT
   gridstatus.ieso.MAXIMUM_DAYS_IN_PAST_FOR_LOAD
   gridstatus.ieso.MAXIMUM_DAYS_IN_PAST_FOR_ZONAL_LOAD_FORECAST
   gridstatus.ieso.MINUTES_INTERVAL
   gridstatus.ieso.NAMESPACES_FOR_XML
   gridstatus.ieso.ZONAL_LOAD_FORECAST_INDEX_URL
   gridstatus.ieso.ZONAL_LOAD_FORECAST_TEMPLATE_URL


Contents
~~~~~~~~~~~~~~~~~~~
.. py:data:: FUEL_MIX_INDEX_URL
   :value: 'http://reports.ieso.ca/public/GenOutputCapability/'

   

.. py:data:: FUEL_MIX_TEMPLATE_URL

   

.. py:data:: HISTORICAL_FUEL_MIX_INDEX_URL
   :value: 'http://reports.ieso.ca/public/GenOutputbyFuelHourly/'

   

.. py:data:: HISTORICAL_FUEL_MIX_TEMPLATE_URL

   

.. py:data:: HOUR_INTERVAL
   :value: 1

   

.. py:class:: IESO

   Bases: :py:obj:`gridstatus.base.ISOBase`

   Independent Electricity System Operator (IESO)


   **Attributes**

   .. list-table::
      :widths: 15 85
      :header-rows: 0

      * - **default_timezone**
        - EST
      * - **iso_id**
        - ieso
      * - **name**
        - Independent Electricity System Operator
      * - **status_homepage**
        - https://www.ieso.ca/en/Power-Data


   **Methods**

   .. autoapisummary::
      :nosignatures:

      gridstatus.ieso.IESO.get_fuel_mix
      gridstatus.ieso.IESO.get_generator_report_hourly
      gridstatus.ieso.IESO.get_load
      gridstatus.ieso.IESO.get_load_forecast
      gridstatus.ieso.IESO.get_zonal_load_forecast

   .. py:method:: get_fuel_mix(date, end=None, verbose=False)

      Hourly output and capability for each fuel type (summed over all generators)
      for a given date or from date to end. Variable generators (solar and wind)
      have a forecast.

      :param date: The date to get the load for
                   Can be a `datetime.date` or `datetime.datetime` object, or a string
                   with the values "today" or "latest". If `end` is None, returns
                   only data for this date.
      :type date: datetime.date | datetime.datetime | str
      :param end: End date. Defaults None
                  If provided, returns data from `date` to `end` date. The `end` can be a
                  `datetime.date` or `datetime.datetime` object.
      :type end: datetime.date | datetime.datetime, optional
      :param verbose: Print verbose output. Defaults to False.
      :type verbose: bool, optional

      :returns: fuel mix
      :rtype: pd.DataFrame


   .. py:method:: get_generator_report_hourly(date, end=None, verbose=False)

      Hourly output for each generator for a given date or from date to end.
      Variable generators (solar and wind) have a forecast and available capacity.
      Non-variable generators have a capability.

      :param date: The date to get the load for
                   Can be a `datetime.date` or `datetime.datetime` object, or a string
                   with the values "today" or "latest". If `end` is None, returns
                   only data for this date.
      :type date: datetime.date | datetime.datetime | str
      :param end: End date. Defaults None
                  If provided, returns data from `date` to `end` date. The `end` can be a
                  `datetime.date` or `datetime.datetime` object.
      :type end: datetime.date | datetime.datetime, optional
      :param verbose: Print verbose output. Defaults to False.
      :type verbose: bool, optional

      :returns: generator output and capability/available capacity
      :rtype: pd.DataFrame


   .. py:method:: get_load(date, end=None, verbose=False)

      Get 5-minute load for the Market and Ontario for a given date or from
      date to end date.

      :param date: The date to get the load for
                   Can be a `datetime.date` or `datetime.datetime` object, or a string
                   with the values "today" or "latest". If `end` is None, returns
                   only data for this date.
      :type date: datetime.date | datetime.datetime | str
      :param end: End date. Defaults None
                  If provided, returns data from `date` to `end` date. The `end` can be a
                  `datetime.date` or `datetime.datetime` object.
      :type end: datetime.date | datetime.datetime, optional
      :param verbose: Print verbose output. Defaults to False.
      :type verbose: bool, optional
      :param frequency: Frequency of data. Defaults to "5min".
      :type frequency: str, optional

      :returns: zonal load as a wide table with columns for each zone
      :rtype: pd.DataFrame


   .. py:method:: get_load_forecast(date, verbose=False)

      Get forecasted load for Ontario. Supports only "latest" and "today" because
      there is only one load forecast.

      :param date: Either "today" or "latest"
      :type date: str
      :param verbose: Print verbose output. Defaults to False.
      :type verbose: bool, optional

      :returns: Ontario load forecast
      :rtype: pd.DataFrame


   .. py:method:: get_zonal_load_forecast(date, end=None, verbose=False)

      Get forecasted load by forecast zone (Ontario, East, West) for a given date
      or from date to end date. This method supports future dates.

      Supports data 90 days into the past and up to 34 days into the future.

      :param date: The date to get the load for
                   Can be a `datetime.date` or `datetime.datetime` object, or a string
                   with the values "today" or "latest". If `end` is None, returns
                   only data for this date.
      :type date: datetime.date | datetime.datetime | str
      :param end: End date. Defaults None
                  If provided, returns data from `date` to `end` date. The `end` can be a
                  `datetime.date` or `datetime.datetime` object.
      :type end: datetime.date | datetime.datetime, optional
      :param verbose: Print verbose output. Defaults to False.
      :type verbose: bool, optional

      :returns: forecasted load as a wide table with columns for each zone
      :rtype: pd.DataFrame



.. py:data:: LOAD_FORECAST_URL
   :value: 'https://www.ieso.ca/-/media/Files/IESO/Power-Data/Ontario-Demand-multiday.ashx'

   ZONAL LOAD FORECAST CONSTANTS

.. py:data:: LOAD_INDEX_URL
   :value: 'http://reports.ieso.ca/public/RealtimeConstTotals'

   

.. py:data:: LOAD_TEMPLATE_URL

   LOAD FORECAST CONSTANTS

.. py:data:: MAXIMUM_DAYS_IN_FUTURE_FOR_ZONAL_LOAD_FORECAST
   :value: 34

   REAL TIME FUEL MIX CONSTANTS

.. py:data:: MAXIMUM_DAYS_IN_PAST_FOR_COMPLETE_GENERATOR_REPORT
   :value: 90

   HISTORICAL FUEL MIX CONSTANTS

.. py:data:: MAXIMUM_DAYS_IN_PAST_FOR_LOAD
   :value: 30

   

.. py:data:: MAXIMUM_DAYS_IN_PAST_FOR_ZONAL_LOAD_FORECAST
   :value: 90

   

.. py:data:: MINUTES_INTERVAL
   :value: 5

   

.. py:data:: NAMESPACES_FOR_XML

   

.. py:data:: ZONAL_LOAD_FORECAST_INDEX_URL
   :value: 'http://reports.ieso.ca/public/OntarioZonalDemand'

   

.. py:data:: ZONAL_LOAD_FORECAST_TEMPLATE_URL

   

