Science Score: 59.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 11 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org -
✓Committers with academic emails
10 of 56 committers (17.9%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.6%) to scientific vocabulary
Keywords
Repository
Non-Intrusive Load Monitoring Toolkit (nilmtk)
Basic Info
- Host: GitHub
- Owner: nilmtk
- License: apache-2.0
- Language: Python
- Default Branch: master
- Homepage: http://nilmtk.github.io
- Size: 50.7 MB
Statistics
- Stars: 880
- Watchers: 65
- Forks: 480
- Open Issues: 125
- Releases: 5
Topics
Metadata Files
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
Installation
UV Support
This Python package uses uv for installation. uv is a fast and modern Python package manager that replaces tools like pip and virtualenv, with support for pyproject.toml and ultra-fast dependency resolution.
To install NILMTK, first install uv and then run:
uv pip install git+https://github.com/nilmtk/nilmtk.git
Docker Support
Docker is an open-source platform for developing, shipping, and running applications in lightweight, portable containers that bundle code, runtime, libraries, and system tools into a single package. It ensures everyone runs the same environment, regardless of host OS, and keeps NILMTK’s dependencies contained without polluting the system Python.
Build and run locally
docker build -t nilmtk-uv .
docker run --rm -it nilmtk-uv bash
Pull the pre-built image
docker pull ghcr.io/enfuego27826/nilmtk:latest
docker run --rm -it ghcr.io/enfuego27826/nilmtk:latest bash
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
- Name: nilmtk
- Login: nilmtk
- Kind: organization
- Repositories: 7
- Profile: https://github.com/nilmtk
GitHub Events
Total
- Issues event: 8
- Watch event: 55
- Issue comment event: 15
- Push event: 4
- Pull request review comment event: 5
- Pull request review event: 7
- Pull request event: 7
- Fork event: 21
Last Year
- Issues event: 8
- Watch event: 55
- Issue comment event: 15
- Push event: 4
- Pull request review comment event: 5
- Pull request review event: 7
- Pull request event: 7
- Fork event: 21
Committers
Last synced: 6 months ago
Top Committers
| 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 |
| beckel | b****l@i****h | 10 |
| Mridul Malpotra | m****a@g****m | 10 |
| Raktim Malakar | r****5@g****m | 10 |
| Guillaume Levasseur | p****l@p****t | 10 |
| Dhru Harsh Darshakbhai | 2****7@i****n | 9 |
| magusverma | m****1@i****n | 7 |
| Oliver Parson | o****n@b****k | 6 |
| Rajat | r****2@g****m | 6 |
| Oliver Parson | o****p@e****k | 5 |
| oliver parson | o****n@d****k | 5 |
| enfuego27826 | a****9@g****m | 5 |
| prince7003 | 1****3 | 5 |
| Oliver Parson | u****r@E****l | 4 |
| Batra Nipun | n****a@N****l | 4 |
| Andrea | a****i@g****m | 3 |
| Florian Kalinke | f****a@g****m | 3 |
| Hetvi Shastri | h****9@g****m | 3 |
| unknown | r****0@g****m | 3 |
| Andrea Monacchi | a****i@s****t | 3 |
| Batra Nipun | n****a@d****U | 3 |
| Oliver Parson | u****r@E****g | 2 |
| Joulo | u****r@d****k | 2 |
| and 26 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 873
- Total pull requests: 134
- Average time to close issues: 9 months
- Average time to close pull requests: about 1 month
- Total issue authors: 246
- Total pull request authors: 52
- Average comments per issue: 4.43
- Average comments per pull request: 1.58
- Merged pull requests: 87
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 10
- Average time to close issues: N/A
- Average time to close pull requests: 1 day
- Issue authors: 7
- Pull request authors: 2
- Average comments per issue: 0.13
- Average comments per pull request: 0.5
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 0
Top Authors
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)
Pull Request Authors
- prince7003 (20)
- ayushp20 (14)
- rajat-tech-002 (12)
- beckel (8)
- enfuego27826 (8)
- pilillo (6)
- raktim2015 (6)
- nipunbatra (5)
- levaphenyl (5)
- klemenjak (3)
- PMeira (3)
- camilomarino (3)
- Rithwikksvr (3)
- hetvishastri (3)
- MartinNeighbours (3)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 2
proxy.golang.org: github.com/nilmtk/nilmtk
- Documentation: https://pkg.go.dev/github.com/nilmtk/nilmtk#section-documentation
- License: apache-2.0
-
Latest release: v0.1.1
published over 11 years ago
Rankings
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