Skip to main content

No project description provided

Project description

Build Status Install with conda conda package version

NILMTK: Non-Intrusive Load Monitoring Toolkit

Non-Intrusive Load Monitoring (NILM) is the process of estimating the energy consumed by individual appliances given just a whole-house power meter reading. In other words, it produces an (estimated) itemised energy bill from just a single, whole-house power meter.

NILMTK is a toolkit designed to help researchers evaluate the accuracy of NILM algorithms. If you are a new Python user, it is recommended to educate yourself on Pandas, Pytables and other tools from the Python ecosystem.

⚠️It may take time for the NILMTK authors to get back to you regarding queries/issues. However, you are more than welcome to propose changes, support! Remember to check existing issue tickets, especially the open ones.

Documentation

NILMTK Documentation

If you are a new user, read the install instructions here. It came to our attention that some users follow third-party tutorials to install NILMTK. Always remember to check the dates of such tutorials, many are very outdated and don't reflect NILMTK's current version or the recommended/supported setup.

Why a toolkit for NILM?

We quote our NILMTK paper explaining the need for a NILM toolkit:

Empirically comparing disaggregation algorithms is currently virtually impossible. This is due to the different data sets used, the lack of reference implementations of these algorithms and the variety of accuracy metrics employed.

What NILMTK provides

To address this challenge, we present the Non-intrusive Load Monitoring Toolkit (NILMTK); an open source toolkit designed specifically to enable the comparison of energy disaggregation algorithms in a reproducible manner. This work is the first research to compare multiple disaggregation approaches across multiple publicly available data sets. NILMTK includes:

  • parsers for a range of existing data sets (8 and counting)
  • a collection of preprocessing algorithms
  • a set of statistics for describing data sets
  • a number of reference benchmark disaggregation algorithms
  • a common set of accuracy metrics
  • and much more!

Publications

If you use NILMTK in academic work then please consider citing our papers. Here are some of the publications (contributors, please update this as required):

  1. Nipun Batra, Jack Kelly, Oliver Parson, Haimonti Dutta, William Knottenbelt, Alex Rogers, Amarjeet Singh, Mani Srivastava. NILMTK: An Open Source Toolkit for Non-intrusive Load Monitoring. In: 5th International Conference on Future Energy Systems (ACM e-Energy), Cambridge, UK. 2014. DOI:10.1145/2602044.2602051. arXiv:1404.3878.
  2. Nipun Batra, Jack Kelly, Oliver Parson, Haimonti Dutta, William Knottenbelt, Alex Rogers, Amarjeet Singh, Mani Srivastava. NILMTK: An Open Source Toolkit for Non-intrusive Load Monitoring". In: NILM Workshop, Austin, US. 2014 [pdf]
  3. Jack Kelly, Nipun Batra, Oliver Parson, Haimonti Dutta, William Knottenbelt, Alex Rogers, Amarjeet Singh, Mani Srivastava. Demo Abstract: NILMTK v0.2: A Non-intrusive Load Monitoring Toolkit for Large Scale Data Sets. In the first ACM Workshop On Embedded Systems For Energy-Efficient Buildings, 2014. DOI:10.1145/2674061.2675024. arXiv:1409.5908.
  4. Nipun Batra, Rithwik Kukunuri, Ayush Pandey, Raktim Malakar, Rajat Kumar, Odysseas Krystalakos, Mingjun Zhong, Paulo Meira, and Oliver Parson. 2019. Towards reproducible state-of-the-art energy disaggregation. In Proceedings of the 6th ACM International Conference on Systems for Energy-Efficient Buildings, Cities, and Transportation (BuildSys '19). Association for Computing Machinery, New York, NY, USA, 193–202. DOI:10.1145/3360322.3360844

Please note that NILMTK has evolved a lot since most of these papers were published! Please use the online docs as a guide to the current API.

Brief history

  • August 2019: v0.4 released with the new API. See also NILMTK-Contrib.
  • June 2019: v0.3.1 released on Anaconda Cloud.
  • Jav 2018: Initial Python 3 support on the v0.3 branch
  • Nov 2014: NILMTK wins best demo award at ACM BuildSys
  • July 2014: v0.2 released
  • June 2014: NILMTK presented at ACM e-Energy
  • April 2014: v0.1 released

For more detail, please see our changelog.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nilmtk_s14pe-0.4.0.dev1.tar.gz (310.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nilmtk_s14pe-0.4.0.dev1-py3-none-any.whl (398.1 kB view details)

Uploaded Python 3

File details

Details for the file nilmtk_s14pe-0.4.0.dev1.tar.gz.

File metadata

  • Download URL: nilmtk_s14pe-0.4.0.dev1.tar.gz
  • Upload date:
  • Size: 310.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Linux/6.8.0-48-generic

File hashes

Hashes for nilmtk_s14pe-0.4.0.dev1.tar.gz
Algorithm Hash digest
SHA256 b9131e28a2932f423463cc3ee1a53b2054d83594e886b48b5f44c69fbd153e38
MD5 c82e9dffed630ef8925c8bf6d18f66f0
BLAKE2b-256 fdbdbd4961bba187a2dfa636e3e53de43dd5c7f463d597fd5d7b46d9d7b9d768

See more details on using hashes here.

File details

Details for the file nilmtk_s14pe-0.4.0.dev1-py3-none-any.whl.

File metadata

  • Download URL: nilmtk_s14pe-0.4.0.dev1-py3-none-any.whl
  • Upload date:
  • Size: 398.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Linux/6.8.0-48-generic

File hashes

Hashes for nilmtk_s14pe-0.4.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 dfd5b9e3c06c09befc8d8fbd575f7a2e9548ae81bc8f22397edba583a1294158
MD5 414396f5707e16293c661b414994f110
BLAKE2b-256 4080672d4f361e346484c9ddfd9c58121c9eb2b72b9cd2a0354f1ad8d21dfb77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page