energy_analysis_toolbox is a Python library designed to analyze and model power and energy time series. It provides a wide range of tools for processing time series, generating synthetic datasets, analyzing weather and thermosensitivity.
Features
- Time Series Resampling and Feature Extraction: Includes utilities for manipulating and resampling energy-related time series data, making it easy to work with data from different sources.
- Weather and Thermosensitivity Analysis: Tools for calculating degree days and assessing thermosensitivity.
- Power Consumption Analysis: Detection of unusual power consumption patterns, and analyze load profiles.
- Synthetic Data: Generation of synthetic time series energy datasets.
- Integration with Pandas: Many utilities integrate seamlessly with
pandasDataFrames, allowing to extendpandaswith energy and power-specific tools through an accessor.
Installation
energy_analysis_toolbox can be installed from the repository or via pip. Ensure that you use Python 3.10 or above.
pip install energy-analysis-toolbox
Alternatively, you can clone this repository and install the dependencies directly:
git clone https://github.com/Eco-CO2/energy_analysis_toolbox
cd energy_analysis_toolbox
pip install .
Usage
The toolbox is structured into several modules, each handling a different aspect of energy data processing. Below is a quick example to get started.
Example: Resampling a time series and computing energy
import numpy as np
import pandas as pd
import energy_analysis_toolbox.pandas
import matplotlib.pyplot as plt
power = pd.Series(
data=5*np.sin(np.linspace(0, 6, 100)) + np.random.randn(100) + 7,
index=pd.date_range(start='2023-01-01', periods=100, freq='d'),
)
energy_resampled = power.eat.to_energy().eat.to_freq("1W")/3600000
fig, axes = plt.subplots(1, 2, figsize=(8, 3))
power.plot(ax=axes[0], ylabel="Power (W)", title="Power")
energy_resampled.plot(ax=axes[1], ylabel="Energy (kWh)", title="Weekly resampled energy")
Documentation
The complete documentation, including detailed guides for each module, API reference, and tutorials, can be found here.
To generate the documentation locally, you can run:
./generate_doc.sh
Tests
The Energy Analysis Toolbox comes with a comprehensive test suite that ensures code reliability and robustness. The tests cover a variety of scenarios including time series resampling, power overconsumption analysis, and synthetic data generation.
To run the tests, execute the following command:
./run_tests.sh
We use pytest for unit testing, which helps ensure that our code is reliable and that any modifications do not break existing functionality.
Contributing
This toolbox was originally developed by the R&D team of Eco CO2. It is now open to anyone who wants to contribute: whether it is a bug fix, a new feature, or improving documentation, we appreciate your help! To contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch) - Commit your changes (
git commit -m 'Add new feature') - Push to your branch (
git push origin feature-branch) - Create a pull request
Please make sure to add appropriate unit tests for any new code and verify all tests pass.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For questions, feature requests, or to report issues, please open an issue on the GitHub issue tracker.
Metadata
Release files for energy-analysis-toolbox 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| energy_analysis_toolbox-0.1.2.tar.gz | 93.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| energy_analysis_toolbox-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 216.7 kB
Release files / energy_analysis_toolbox-0.1.2.tar.gz
| Download URL | energy_analysis_toolbox-0.1.2.tar.gz |
|---|---|
| Size | 93.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d352610e2f5c217e0d43039ac68b396ad32defab2dd943cda06f3acaf7f5f226
|
|
BLAKE2b-256 checksum How to use checksums |
278380017eeb3f5e07ed419e0808e27d51b58deb4678862df46e24cc5da3adf5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.0 CPython/3.9.20
|
Release files / energy_analysis_toolbox-0.1.2-py3-none-any.whl
| Download URL | energy_analysis_toolbox-0.1.2-py3-none-any.whl |
|---|---|
| Size | 123.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2786a811682410a166bb8c44de576977893ed8a725e6a05badbbaa3d2378dd78
|
|
BLAKE2b-256 checksum How to use checksums |
f5e106fe8e7a61a27dae257b91265e976da5bdd96e95acd82dd060ab8ddb879a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.0 CPython/3.9.20
|