A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

eemeter

An open source Python package for implementing and developing standard methods for calculating normalized metered energy consumption and avoided energy use.
https://github.com/opendsm/eemeter

Keywords

building-energy efficiency energy energy-data energy-efficiency

Keywords from Contributors

weather weather-data weather-station methods dataframe climate-data notebook

Last synced: 3 months ago
JSON representation

Acceptance Criteria

Repository metadata

An open source python package for implementing and developing standard methods for calculating normalized metered energy consumption and avoided energy use.

README.rst

          EEmeter: tools for calculating metered energy savings
=====================================================

.. image:: https://travis-ci.org/openeemeter/eemeter.svg?branch=master
  :target: https://travis-ci.org/openeemeter/eemeter
  :alt: Build Status

.. image:: https://img.shields.io/github/license/openeemeter/eemeter.svg
  :target: https://github.com/openeemeter/eemeter
  :alt: License

.. image:: https://readthedocs.org/projects/eemeter/badge/?version=master
  :target: https://eemeter.readthedocs.io/?badge=master
  :alt: Documentation Status

.. image:: https://img.shields.io/pypi/v/eemeter.svg
  :target: https://pypi.python.org/pypi/eemeter
  :alt: PyPI Version

.. image:: https://codecov.io/gh/openeemeter/eemeter/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/openeemeter/eemeter
  :alt: Code Coverage Status

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
  :target: https://github.com/ambv/black
  :alt: Code Style

---------------

**EEmeter** — an open source toolkit for implementing and developing standard
methods for calculating normalized metered energy consumption (NMEC) and
avoided energy use.

Background - why use the EEMeter library
----------------------------------------

At time of writing (Sept 2018), the OpenEEmeter, as implemented in the eemeter
package and sibling `eeweather package `_, contains the
most complete open source implementation of the
`CalTRACK Methods `_, which
specify a family of ways to calculate and aggregate estimates avoided energy
use at a single meter particularly suitable for use in pay-for-performance
(P4P) programs.

The eemeter package contains a toolkit written in the python langage which may
help in implementing a CalTRACK compliant analysis.

It contains a modular set of of functions, parameters, and classes which can be
configured to run the CalTRACK methods and close variants.

.. note::

    Please keep in mind that use of the OpenEEmeter is neither necessary nor
    sufficient for compliance with the CalTRACK method specification. For example,
    while the CalTRACK methods set specific hard limits for the purpose of
    standardization and consistency, the EEmeter library can be configured to edit
    or entirely ignore those limits. This is becuase the emeter package is used not
    only for compliance with, but also for *development of* the CalTRACK methods.

    Please also keep in mind that the EEmeter assumes that certain data cleaning
    tasks specified in the CalTRACK methods have occurred prior to usage with the
    eemeter. The package proactively exposes warnings to point out issues of this
    nature where possible.

Installation
------------

EEmeter is a python package and can be installed with pip.

::

    $ pip install eemeter

Features
--------

- Reference implementation of standard methods

  - CalTRACK Daily Method
  - CalTRACK Monthly Billing Method
  - CalTRACK Hourly Method

- Flexible sources of temperature data. See `EEweather `_.
- Candidate model selection
- Data sufficiency checking
- Model serialization
- First-class warnings reporting
- Pandas dataframe support
- Visualization tools

Roadmap for 2020 development
----------------------------

The OpenEEmeter project growth goals for the year fall into two categories:

1. Community goals - we want help our community thrive and continue to grow.
2. Technical goals - we want to keep building the library in new ways that make it
   as easy as possible to use.

Community goals
~~~~~~~~~~~~~~~

1. Develop project documentation and tutorials

A number of users have expressed how hard it is to get started when tutorials are
out of date. We will dedicate time and energy this year to help create high quality
tutorials that build upon the API documentation and existing tutorials.

2. Make it easier to contribute

As our user base grows, the need and desire for users to contribute back to the library
also grows, and we want to make this as seamless as possible. This means writing and
maintaining contribution guides, and creating checklists to guide users through the
process.


Technical goals
~~~~~~~~~~~~~~~

1. Implement new CalTRACK recommendations

The CalTRACK process continues to improve the underlying methods used in the
OpenEEmeter. Our primary technical goal is to keep up with these changes and continue
to be a resource for testing and experimentation during the CalTRACK methods setting
process.

2. Hourly model visualizations

The hourly methods implemented in the OpenEEMeter library are not yet packaged with
high quality visualizations like the daily and billing methods are. As we build and
package new visualizations with the library, more users will be able to understand,
deploy, and contribute to the hourly methods.

3. Weather normal and unusual scenarios

The EEweather package, which supports the OpenEEmeter, comes packaged with publicly
available weather normal scenarios, but one feature that could help make that easier
would be to package methods for creating custom weather year scenarios.

4. Greater weather coverage

The weather station coverage in the EEweather package includes full coverage of US and
Australia, but with some technical work, it could be expanded to include greater, or
even worldwide coverage.

License
-------

This project is licensed under [Apache 2.0](LICENSE).

Other resources
---------------

- `CONTRIBUTING `_: how to contribute to the project.
- `MAINTAINERS `_: an ordered list of project maintainers.
- `CHARTER `_: open source project charter.
- `CODE_OF_CONDUCT `_: Code of conduct for contributors.

        

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 3 months ago

Total Commits: 2,148
Total Committers: 44
Avg Commits per committer: 48.818
Development Distribution Score (DDS): 0.475

Commits in past year: 331
Committers in past year: 7
Avg Commits per committer in past year: 47.286
Development Distribution Score (DDS) in past year: 0.559

Name Email Commits
Phil Ngo n****l@g****m 1127
Jason Chulock j****n@r****m 205
Stephen Suffian s****e@o****o 118
travis-recurve 1****e 101
Tom Plagge t****e@g****m 97
Stephen Suffian s****n@p****e 71
pyup-bot g****t@p****o 62
hshaban h****n@g****m 49
Steve s****e@r****m 46
joydeep-recurve j****p@r****m 36
Tom Plagge t****e@o****o 34
toshi09 t****s@g****m 26
James Fenna j****s@c****p 24
ArminRecurve A****n@r****m 20
Marc-Antoine m****c@M****l 18
Eric Potash e****c@k****t 17
Michael Keasey m****l@r****m 15
Peter Olson p****n@g****m 12
Vikhyati Singh v****i@o****o 10
Mariano Teehan m****o@r****m 8
Dave Yeager d****r@o****o 6
Jeremy Wickersheimer j****s@g****m 5
Phillips N****s@d****m 4
Eric Dill t****e@g****m 4
Reetu Mutti r****u@o****o 3
Arpan Kotecha a****a@g****m 3
Joe Glass j****z@g****m 3
Phil Ngo 1****e 3
Sennott T****t@d****m 2
Juan-Pablo Velez j****z@g****m 2
and 14 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 3 months ago

Total issues: 15
Total pull requests: 204
Average time to close issues: 10 months
Average time to close pull requests: about 2 months
Total issue authors: 12
Total pull request authors: 23
Average comments per issue: 2.47
Average comments per pull request: 1.29
Merged pull request: 134
Bot issues: 0
Bot pull requests: 17

Past year issues: 6
Past year pull requests: 54
Past year average time to close issues: N/A
Past year average time to close pull requests: 9 days
Past year issue authors: 5
Past year pull request authors: 8
Past year average comments per issue: 2.67
Past year average comments per pull request: 0.04
Past year merged pull request: 38
Past year bot issues: 0
Past year bot pull requests: 7

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/opendsm/eemeter

Top Issue Authors

  • khosravym (2)
  • jfenna (2)
  • yurivict (2)
  • nmerket (1)
  • willrrowe (1)
  • ssuffian (1)
  • takkaria (1)
  • jillradiantlabs (1)
  • stvilla (1)
  • duncan-roe (1)
  • laurenjanicke (1)
  • matthewgee (1)

Top Pull Request Authors

  • pyup-bot (73)
  • jason-recurve (29)
  • philngo (18)
  • tplagge (18)
  • dependabot[bot] (17)
  • ssuffian (12)
  • travis-recurve (5)
  • arpankotecha (4)
  • toshi09 (4)
  • marcrecurve (3)
  • khosravym (3)
  • keasey-recurve (3)
  • jglasskatz (2)
  • dyeager-recurve (2)
  • philngo-recurve (2)

Top Issue Labels

Top Pull Request Labels

  • dependencies (17)

Dependencies

Dockerfile docker
  • python 3.6.6 build
docker-compose.yml docker
  • eemeter_shell latest
Pipfile pypi
  • black ==18.6b4 develop
  • coverage * develop
  • jupyterlab * develop
  • nbsphinx * develop
  • pytest * develop
  • pytest-cov * develop
  • pytest-profiling * develop
  • pytest-xdist * develop
  • snapshottest ==0.6.0 develop
  • sphinx * develop
  • sphinx-autobuild * develop
  • sphinxcontrib-spelling * develop
  • tox * develop
  • twine * develop
  • typing * develop
  • click ==7.0
  • eeweather >=0.3.12
  • matplotlib *
  • pandas ==0.25.2
  • scipy ==1.4.1
  • sqlalchemy *
  • statsmodels ==0.11.1
Pipfile.lock pypi
  • 148 dependencies
docs/rtd-requirements.txt pypi
  • nbsphinx ==0.4.2
  • sphinxcontrib-spelling ==4.2.1
setup.py pypi

Score: 9.264828557260252