NILM
Non-Intrusive Load Monitoring is the process of estimating the energy consumed by individual appliances given just a whole-house power meter reading.
https://github.com/nilmtk/nilmtk
Category: Consumption
Sub Category: Buildings and Heating
Keywords
algorithms disaggregation energy energy-disaggregation forecasting ipython-notebook nilm nilm-algorithms nilmtk python
Last synced: about 17 hours ago
JSON representation
Repository metadata
Non-Intrusive Load Monitoring Toolkit (nilmtk)
- Host: GitHub
- URL: https://github.com/nilmtk/nilmtk
- Owner: nilmtk
- License: apache-2.0
- Created: 2013-12-03T11:39:12.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-04-23T06:29:51.000Z (about 1 year ago)
- Last Synced: 2025-04-22T12:07:19.108Z (5 days ago)
- Topics: algorithms, disaggregation, energy, energy-disaggregation, forecasting, ipython-notebook, nilm, nilm-algorithms, nilmtk, python
- Language: Python
- Homepage: http://nilmtk.github.io
- Size: 50.7 MB
- Stars: 861
- Watchers: 65
- Forks: 474
- Open Issues: 123
- Releases: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
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
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):
- 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.
- 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]
- 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.
- 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.
Owner metadata
- Name: nilmtk
- Login: nilmtk
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/6094836?v=4
- Repositories: 7
- Last ynced at: 2024-03-26T07:15:56.402Z
- Profile URL: https://github.com/nilmtk
GitHub Events
Total
- Issues event: 6
- Watch event: 36
- Issue comment event: 10
- Pull request review comment event: 5
- Pull request review event: 7
- Pull request event: 1
- Fork event: 15
Last Year
- Issues event: 6
- Watch event: 36
- Issue comment event: 10
- Pull request review comment event: 5
- Pull request review event: 7
- Pull request event: 1
- Fork event: 15
Committers metadata
Last synced: 6 days ago
Total Commits: 1,700
Total Committers: 53
Avg Commits per committer: 32.075
Development Distribution Score (DDS): 0.484
Commits in past year: 8
Committers in past year: 4
Avg Commits per committer in past year: 2.0
Development Distribution Score (DDS) in past year: 0.375
Name | Commits | |
---|---|---|
Jack Kelly | j****t@x****k | 878 |
nipunreddevil | n****l@g****m | 444 |
Paulo Meira | 1****a | 123 |
Oliver Parson | o****6@e****k | 36 |
Oliver Parson | o****n@g****m | 28 |
Rishi Baijal | r****4@i****n | 24 |
josemao | j****a@d****s | 24 |
ayushp20.com | a****0@g****l | 11 |
Mridul Malpotra | m****a@g****m | 10 |
Guillaume Levasseur | p****l@p****t | 10 |
Raktim Malakar | r****5@g****m | 10 |
beckel | b****l@i****h | 10 |
magusverma | m****1@i****n | 7 |
Rajat | r****2@g****m | 6 |
Oliver Parson | o****n@b****k | 6 |
prince7003 | 1****3 | 5 |
Oliver Parson | o****p@e****k | 5 |
oliver parson | o****n@d****k | 5 |
Batra Nipun | n****a@N****l | 4 |
Oliver Parson | u****r@E****l | 4 |
unknown | r****0@g****m | 3 |
Hetvi Shastri | h****9@g****m | 3 |
Florian Kalinke | f****a@g****m | 3 |
Andrea | a****i@g****m | 3 |
Batra Nipun | n****a@d****U | 3 |
Andrea Monacchi | a****i@s****t | 3 |
magus | i****k@g****m | 2 |
Joulo | u****r@d****k | 2 |
Oliver Parson | u****r@E****g | 2 |
Martin Neighbours | m****s@h****m | 2 |
and 23 more... |
Committer domains:
- pecanstreet.org: 3
- ecs.soton.ac.uk: 2
- iiitd.ac.in: 2
- xlk.org.uk: 1
- depeca.uah.es: 1
- posteo.net: 1
- inf.ethz.ch: 1
- bgch.co.uk: 1
- dhcp-23-228.wireless.soton.ac.uk: 1
- d-172-27-98-104.bootp.virginia.edu: 1
- sg-monacchi-mac.nes.aau.at: 1
- dhcp-159-45.wireless.soton.ac.uk: 1
- ecs-mbp-oct-90.config: 1
- sg-mac-monacchi.nes.aau.at: 1
- aau.at: 1
- hellowatt.fr: 1
- c324078.config: 1
- stud.fh-rosenheim.de: 1
- bitdeli.com: 1
- bucher.cloud: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 872
Total pull requests: 126
Average time to close issues: 9 months
Average time to close pull requests: about 2 months
Total issue authors: 245
Total pull request authors: 51
Average comments per issue: 4.44
Average comments per pull request: 1.67
Merged pull request: 82
Bot issues: 0
Bot pull requests: 0
Past year issues: 8
Past year pull requests: 1
Past year average time to close issues: 23 days
Past year average time to close pull requests: N/A
Past year issue authors: 7
Past year pull request authors: 1
Past year average comments per issue: 0.5
Past year average comments per pull request: 4.0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- JackKelly (177)
- nipunbatra (140)
- gjwo (25)
- PMeira (21)
- sanketvijaydesai (18)
- walidsliti (16)
- RishiBaijal (12)
- suni9915 (11)
- nekovolta (10)
- deploy15 (9)
- oliparson (9)
- GautierAppert (9)
- haderazzini (9)
- DilanAgkoc (8)
- bundit786 (8)
Top Pull Request Authors
- ayushp20 (14)
- prince7003 (12)
- rajat-tech-002 (12)
- beckel (8)
- raktim2015 (6)
- pilillo (6)
- nipunbatra (5)
- levaphenyl (5)
- Rithwikksvr (3)
- MartinNeighbours (3)
- hetvishastri (3)
- camilomarino (3)
- klemenjak (3)
- PMeira (3)
- uxdxdev (2)
Top Issue Labels
- DataStore and format conversion (93)
- enhancement (84)
- question (57)
- bug (55)
- design (48)
- Building (34)
- outdated (34)
- documentation (32)
- NILM algorithm (30)
- Statistics and correlations (29)
- refactoring (25)
- pre-processing (17)
- Testing (17)
- Installation (15)
- HMM (12)
- Performance (11)
- support (10)
- Combinatorial Optimization (8)
- NILM metrics (8)
- simplify (6)
- invalid (5)
- needs more info (5)
- duplicate (4)
- Good as first PR (3)
- RE-API (2)
- discussion (2)
- offtopic (2)
- Review (2)
- in progress (2)
- planning (1)
Top Pull Request Labels
- DataStore and format conversion (3)
- enhancement (1)
- bug (1)
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 153 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 2
- Total maintainers: 1
pypi.org: nilmtk_s14pe
- Homepage:
- Documentation: https://nilmtk_s14pe.readthedocs.io/
- Licenses: apache-2.0
- Latest release: 0.4.0.dev2 (published 5 months ago)
- Last Synced: 2025-04-25T13:35:19.952Z (1 day ago)
- Versions: 2
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 153 Last month
-
Rankings:
- Dependent packages count: 10.023%
- Average: 33.216%
- Dependent repos count: 56.409%
- Maintainers (1)
Dependencies
- hmmlearn >=0.2.1
- jupyterlab *
- matplotlib ==3.1.3
- networkx ==2.1
- numpy *
- pandas ==0.25.3
- pyyaml *
- scikit-learn >=0.21.2
- scipy *
- tables *
- hmmlearn
- jupyterlab
- matplotlib-base >=3.1.0,<3.2.0
- networkx 2.1
- nilm_metadata
- nilmtk
- nose
- numpy >=1.13.3,<1.20
- pandas >=0.25.3,<1.0
- pytables
- python >=3.6
- scikit-learn >=0.21.2
- scipy >=1.0.0
Score: 15.898870413018004