README.rst
1EEmeter: tools for calculating metered energy savings
2=====================================================
3
4.. image:: https://travis-ci.org/openeemeter/eemeter.svg?branch=master
5 :target: https://travis-ci.org/openeemeter/eemeter
6 :alt: Build Status
7
8.. image:: https://img.shields.io/github/license/openeemeter/eemeter.svg
9 :target: https://github.com/openeemeter/eemeter
10 :alt: License
11
12.. image:: https://readthedocs.org/projects/eemeter/badge/?version=master
13 :target: https://eemeter.readthedocs.io/?badge=master
14 :alt: Documentation Status
15
16.. image:: https://img.shields.io/pypi/v/eemeter.svg
17 :target: https://pypi.python.org/pypi/eemeter
18 :alt: PyPI Version
19
20.. image:: https://codecov.io/gh/openeemeter/eemeter/branch/master/graph/badge.svg
21 :target: https://codecov.io/gh/openeemeter/eemeter
22 :alt: Code Coverage Status
23
24.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
25 :target: https://github.com/ambv/black
26 :alt: Code Style
27
28---------------
29
30**EEmeter** — an open source toolkit for implementing and developing standard
31methods for calculating normalized metered energy consumption (NMEC) and
32avoided energy use.
33
34Background - why use the EEMeter library
35----------------------------------------
36
37At time of writing (Sept 2018), the OpenEEmeter, as implemented in the eemeter
38package and sibling `eeweather package <http://eeweather.openee.io>`_, contains the
39most complete open source implementation of the
40`CalTRACK Methods <https://caltrack.org/>`_, which
41specify a family of ways to calculate and aggregate estimates avoided energy
42use at a single meter particularly suitable for use in pay-for-performance
43(P4P) programs.
44
45The eemeter package contains a toolkit written in the python langage which may
46help in implementing a CalTRACK compliant analysis.
47
48It contains a modular set of of functions, parameters, and classes which can be
49configured to run the CalTRACK methods and close variants.
50
51.. note::
52
53 Please keep in mind that use of the OpenEEmeter is neither necessary nor
54 sufficient for compliance with the CalTRACK method specification. For example,
55 while the CalTRACK methods set specific hard limits for the purpose of
56 standardization and consistency, the EEmeter library can be configured to edit
57 or entirely ignore those limits. This is becuase the emeter package is used not
58 only for compliance with, but also for *development of* the CalTRACK methods.
59
60 Please also keep in mind that the EEmeter assumes that certain data cleaning
61 tasks specified in the CalTRACK methods have occurred prior to usage with the
62 eemeter. The package proactively exposes warnings to point out issues of this
63 nature where possible.
64
65Installation
66------------
67
68EEmeter is a python package and can be installed with pip.
69
70::
71
72 $ pip install eemeter
73
74Features
75--------
76
77- Reference implementation of standard methods
78
79 - CalTRACK Daily Method
80 - CalTRACK Monthly Billing Method
81 - CalTRACK Hourly Method
82
83- Flexible sources of temperature data. See `EEweather <https://eeweather.openee.io>`_.
84- Candidate model selection
85- Data sufficiency checking
86- Model serialization
87- First-class warnings reporting
88- Pandas dataframe support
89- Visualization tools
90
91Roadmap for 2020 development
92----------------------------
93
94The OpenEEmeter project growth goals for the year fall into two categories:
95
961. Community goals - we want help our community thrive and continue to grow.
972. Technical goals - we want to keep building the library in new ways that make it
98 as easy as possible to use.
99
100Community goals
101~~~~~~~~~~~~~~~
102
1031. Develop project documentation and tutorials
104
105A number of users have expressed how hard it is to get started when tutorials are
106out of date. We will dedicate time and energy this year to help create high quality
107tutorials that build upon the API documentation and existing tutorials.
108
1092. Make it easier to contribute
110
111As our user base grows, the need and desire for users to contribute back to the library
112also grows, and we want to make this as seamless as possible. This means writing and
113maintaining contribution guides, and creating checklists to guide users through the
114process.
115
116
117Technical goals
118~~~~~~~~~~~~~~~
119
1201. Implement new CalTRACK recommendations
121
122The CalTRACK process continues to improve the underlying methods used in the
123OpenEEmeter. Our primary technical goal is to keep up with these changes and continue
124to be a resource for testing and experimentation during the CalTRACK methods setting
125process.
126
1272. Hourly model visualizations
128
129The hourly methods implemented in the OpenEEMeter library are not yet packaged with
130high quality visualizations like the daily and billing methods are. As we build and
131package new visualizations with the library, more users will be able to understand,
132deploy, and contribute to the hourly methods.
133
1343. Weather normal and unusual scenarios
135
136The EEweather package, which supports the OpenEEmeter, comes packaged with publicly
137available weather normal scenarios, but one feature that could help make that easier
138would be to package methods for creating custom weather year scenarios.
139
1404. Greater weather coverage
141
142The weather station coverage in the EEweather package includes full coverage of US and
143Australia, but with some technical work, it could be expanded to include greater, or
144even worldwide coverage.
145
146License
147-------
148
149This project is licensed under [Apache 2.0](LICENSE).
150
151Other resources
152---------------
153
154- `CONTRIBUTING <CONTRIBUTING.md>`_: how to contribute to the project.
155- `MAINTAINERS <MAINTAINERS.md>`_: an ordered list of project maintainers.
156- `CHARTER <CHARTER.md>`_: open source project charter.
157- `CODE_OF_CONDUCT <CODE_OF_CONDUCT.md>`_: Code of conduct for contributors.
158