Metadata-Version: 1.1
Name: pywind
Version: 0.9.12
Summary: Python Modules to access online information relating to renewable energy in the UK
Home-page: https://github.com/zathras777/pywind
Author: David Reid
Author-email: zathrasorama@gmail.com
License: Unlicense
Description: pywind
        ======
        
        The pywind module is intended to provide a python module that can be used
        to access online information related to Wind Energy in the UK, though it can
        be used to access information for any form of energy made available by the
        agencies it provides access to.
        
        Background
        ----------
        
        The primary user of this module is the Variable Pitch website which uses it
        to record data for wind farm stations in the UK. It has been released as an
        open source module in the hope that it can help others.
        
        http://www.variablepitch.co.uk/
        
        Important Changes
        -----------------
        From version 0.9.6 onwards the Station object 'accreditation' field is now
        more accurately named 'generator_id'.
        
        
        Electricity Usage
        -----------------
        
        The BM Reports website provides realtime data about electricity usage within
        the UK and can be accessed via the bmreports module.
        
        To get the data,
        
        ```
        >>> from pywind.bmreports import *
        >>> gd = GenerationData()
        ```
        
        This will create a GenerationData object that will contain summary generation
        data covering the previous
        
            - 24 hours
            - 30 minutes
            - instant
        
        Each period is available as a dict object containing the resultant values and
        time periods, e.g.
        
            '24hours': {'start': datetime.datetime(2013, 3, 3, 10, 30),
                        'finish': datetime.datetime(2013, 3, 4, 10, 30)
                        'total': 945844,
                        'data': [
                {'code': 'CCGT', 'percent': '24.2', 'name': 'Combined Cycle Gas Turbine', 'value': '229014'},
                {'code': 'OCGT', 'percent': '0.0', 'name': 'Open Cycle Gas Turbine', 'value': '0'},
                {'code': 'OIL', 'percent': '0.0', 'name': 'Oil', 'value': '0'},
                {'code': 'COAL', 'percent': '48.7', 'name': 'Coal', 'value': '460899'},
                {'code': 'NUCLEAR', 'percent': '18.0', 'name': 'Nuclear', 'value': '170693'},
                {'code': 'WIND', 'percent': '1.6', 'name': 'Wind', 'value': '15062'},
                {'code': 'PS', 'percent': '1.2', 'name': 'Pumped Storage', 'value': '11260'},
                {'code': 'NPSHYD', 'percent': '0.6', 'name': 'Non Pumped Storage Hydro', 'value': '5744'},
                {'code': 'OTHER', 'percent': '1.9', 'name': 'Other', 'value': '18442'},
                {'code': 'INTFR', 'percent': '1.4', 'name': 'Import from France', 'value': '13314'},
                {'code': 'INTIRL', 'percent': '0.0', 'name': 'Import from Ireland', 'value': '163'},
                {'code': 'INTNED', 'percent': '2.2', 'name': 'Import from the Netherlands', 'value': '21252'},
                {'code': 'INTEW', 'percent': '0.0', 'name': 'East/West Interconnector', 'value': '0'}
                        ]
                        }
        
        More information can be found at http://www.bmreports.com/
        
        Ofgem Station & Certificate Data
        --------------------------------
        
        By using the ofgem module it is possible to access the Renewables & CHP database from Ofgem
        without needing to use their webform. It was developed to allow easy access to the data after
        attempts to use their webform failed with some modern browsers. Additionally the filtering
        options possible with the webform are unusable in many browsers.
        
        Classes are provided to search the Certifcates and Stations databases.
        
        Searching
        ---------
        The module provides the StationSearch and CertificateSearch classes that can
        be used to search the Ofgem database.
        
        NB NB NB When setting the month/year these should be done after other parameters have been
                 set due to the interaction of the form and the module.
        
        e.g. Searching for stations with Novar in their name
        
        ```
        >>> from pywind.ofgem import *
        >>> ss = StationSearch()
        >>> ss.filter_name('Novar')
        >>> ss.get_data()
        True
        >>> print len(ss)
        1
        >>> print ss.stations[0].as_string()
        
            Accreditation                 : R00014SESC
            Status                        : Live
            Name                          : GLENN GLAS NOVAR EST
            Scheme                        : RO
            Capacity                      : 916.0
            Country                       : Scotland
            Technology                    : Hydro 20MW DNC or less (ROS code = SE)
            Generation                    : General
            Accreditation dt              : 2002-04-01 00:00:00
            Commission dt                 : 1997-03-01 00:00:00
            Developer                     : Glenglass Hydro Ltd
            Owner address                 : Novar Estate OfficeEvantonRoss-shireScotland,IV16 9XL
            Fax                           :
            Address                       : SRO Glenglass Hydro Limited,Glenglass Hydro LtdRiver Glass (Allt Graad),Novar,IV16 9XL,Scotland
        ```
        
        e.g. Getting all certificates issued to Off-Shore wind farms during Jan 2012
        
        ```
        >>> from pywind.ofgem import *
        >>> cs = CertificateSearch()
        >>> cs.set_month(1)
        >>> cs.set_year(2012)
        >>> cs.technology = [23]
        >>> cs.get_data()
        True
        >>> len(cs)
        76
        ```
        
        The results show that certifcate data for 76 stations has been returned.
        
        To show certificate data, you need to use the scheme for each station, i.e.
        ```
        >>> print cs.stations()[0]['REGO'][0].as_string()
        
            Accreditation                 : G01164FWEN
            Name                          : Ormonde Wind Farm
            Capacity                      : 150000.0
            Scheme                        : REGO
            Country                       : England
            Technology                    : Off-shore Wind
            Generation                    : N/A
            Period                        : Jan-2012
            Certs                         : 44915
            Start_no                      : G01164FWEN0000000000010112310112GEN
            Finish_no                     : G01164FWEN0000044914010112310112GEN
            Factor                        : 1.0
            Issue_dt                      : 2012-03-27 00:00:00
            Status                        : Issued
            Status_dt                     : 2012-04-18 00:00:00
            Current_holder                : Vattenfall Energy Trading GmbH
            Reg_no                        : HRB 80335
        ```
        
        While accessing the data may be slightly harder than in previous versions, it
        is far easier to understand and manipulate.
        
        More information about the information available can be found at
        http://www.ofgem.gov.uk/Pages/OfgemHome.aspx
        
        Sample scripts are included to search for certificates and stations.
        
        ROC Prices
        ----------
        
        These are obtained from the eROC auction site using the EROCPrices() class
        within the roc module. The prices for the various periods listed are then
        available by using the object as a dict.
        
        ```
        >>> from pywind.roc import *
        >>> er = EROCPrices()
        >>> er[200701]
        46.17
        ```
        
        The format for the period is simply yyyymm where yyyy is the 4 digit year and mm
        is the 2 digit month. If there is more than one auction in a given period the
        average of the results is calculated.
        
        BM Report Data Ownership
        ------------------------
        
        The data provided by the BMReports website is owned by Elexon UK and permission needs
        to be sought before reproducing it. The following functions should only be used with
        this restriction in mind as they access the site and download data.
        
        The exact restrictions on the data usage are unclear at this time.
        
        
        Electricity Prices
        ------------------
        
        To get the System Sell Price (SSP) and the System Buy Price (SBP) for a given date
        the bmreports.SystemPrices class can be used.
        
        ```
        >>> from pywind.bmreports import SystemPrices
        >>> s = SystemPrices()
        >>> s.get_data()
        True
        >>> s.prices
        [{'sbp': '67.57225', 'period': '1', 'ssp': '48.90000'},
         {'sbp': '66.00000', 'period': '2', 'ssp': '49.70000'},
         {'sbp': '53.24000', 'period': '3', 'ssp': '40.50000'},
         {'sbp': '67.22574', 'period': '4', 'ssp': '53.53000'},
         {'sbp': '62.22428', 'period': '5', 'ssp': '53.36000'},
         {'sbp': '62.90939', 'period': '6', 'ssp': '53.12000'},
         {'sbp': '62.81903', 'period': '7', 'ssp': '50.68000'},
         {'sbp': '62.78963', 'period': '8', 'ssp': '51.10000'},
         {'sbp': '60.12207', 'period': '9', 'ssp': '50.98000'},
         {'sbp': '55.00000', 'period': '10', 'ssp': '50.63000'},
         {'sbp': '59.61707', 'period': '11', 'ssp': '51.40000'},
         {'sbp': '63.71989', 'period': '12', 'ssp': '51.80000'},
          ...
        ]
        ```
        
        Derived Unit Data
        -----------------
        The pywind.bmreports.UnitData class allows the BMReports reports to be accessed.
        Presently this class defaults to querying the Derived Data to extract information
        on Constraint Payments made.
        
        ```
        >>> from pywind.bmreports import UnitData
        >>> ud = UnitData()
        >>> ud.get_data()
        True
        >>> ud.data
        [{'lead': 'RWE NPOWER PLC',
          'offer': {},
          'bid': {'volume': '-45.0000', 'cashflow': '-1788.0300'},
          'ngc': 'ABTH7',
          'type': 'T',
          'id': 'T_ABTH7'},
         {'lead': 'RWE NPOWER PLC',
          'offer': {},
          'bid': {'volume': '-22.0000', 'cashflow': '-871.9700'},
          'ngc': 'ABTH8',
          'type': 'T',
          'id': 'T_ABTH8'},
        ...
        ]
        ```
        
        Balancing Mechanism Units
        -------------------------
        The list of units (with their fuel types) is available as an Excel spreadsheet from the BMReports
        website. The pywind.bmreports.UnitList class can be used to get and parse the current list.
        
        
        ```
        >>> from pywind.bmreports import UnitList
        >>> ul = UnitList()
        >>> len(ul)
        365
        >>> ul.by_fuel_type('wind')
        [{'eff_from': datetime.date(2012, 11, 14),
          'ngc_id': u'ACHYW-1',
          'fuel_type': u'WIND',
          'eff_to': datetime.date(2050, 12, 31)},
         {'eff_from': datetime.date(2012, 11, 14),
          'ngc_id': u'AKGLW-1',
          'fuel_type': u'WIND',
          'eff_to': datetime.date(2050, 12, 31)},
        ...
        ]
        ```
        
        Power Pack Unit Data
        --------------------
        Most smaller Onshore Wind stations do not supply their output directly to the
        grid via High Voltage connections and as such are considered to be "embedded"
        stations. The impact of this on the capacity data released is discussed in some
        detail in a PDF document by James Hemingway (available at https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/65923/6487-nat-grid-metering-data-et-article-sep12.pdf)
        
        To obtain a list of the wind stations that are connected to the grid via HV and as
        such have their output considered the Power Pack spreadsheet can be used. This class
        attempts to download and provide a list of it's contents.
        
        ```
        >>> from pywind.bmreports import PowerPackUnits
        >>> pp = PowerPackUnits()
        >>> len(pp)
        89
        >>> pp.units
        [{'ngc_id': u'ACHYW-1',
          'sett_id': u'',
          'name': u'Achany',
          'cap': 50.0,
          'bmunit': True,
          'date_added': None,
          'reg_capacity': 50.0
        }, {
          'ngc_id': u'AKGLW-1',
        ...
        ]
        ```
        
        The date_added will be either a datetime.date object or None.
        
        DECC Planning Monthly Report
        ----------------------------
        The DECC have a report showing the renewable electricity planning applications
        it knows about with their current status. It includes the capacity, address
        and geographic information as well, together with various planning dates
        and flags.
        
        ```
        >>> from pywind.decc import MonthlyExtract
        >>> me = MonthlyExtract()
        >>> me.get_data()
        True
        >>> len(me)
        4988
        >>> me.records[0]
        <pywind.decc.Report.DeccRecord object at 0x1d150d0>
        ```
        
        Each record is a DeccRecord object with a large number of attributes set. The
        records have native python types set for dates and boolean types but additionally
        have a lat & lon attribute set from the OS grid reference supplied in the
        DECC data for each site.
        
        ```
        >>> me.record[0].site_name
        'Hunterston - cofiring'
        >>> me.records[0].lat
        55.735731298569
        >>> me.records[0].lon
        -4.888572411340284
        ```
        
        As far as I can tell it is not possible to filter the data for a particular
        date range, so the entire dataset is returned each time the get_data() function
        is called. Filtering is left to the user.
        
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
