Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (testpypi.python.org).
Help us improve Python packaging - Donate today!

Python library with methods to generate, process, analyze, and plot energy related timeseries.

Project Description

enlopy is an open source python library with methods to generate, process, analyze, and plot energy related timeseries.

While it can be used for any kind of data it has a strong focus on those that are related with energy i.e. electricity/heat demand or generation, prices etc. The methods included here are carefully selected to fit in that context and they had been, gathered, generalized and encapsulated during the last years while working on different research studies.

The aim is to provide a higher level API than the one that is already available in commonly used scientific packages (pandas, numpy, scipy). This facilitates the analysis and processing of energy load timeseries that can be used for modelling and statistical analysis. In some cases it is just a convenience wrapper of common packages just as pandas and in other cases it implements methods or statistical models found in literature.

It consists of four modules that include among others the following:

  • Analysis: Overview of descriptive statistics, reshape, load duration curve, extract daily archetypes (clustering)
  • Plot: 2d heatmap, 3d plot, boxplot, rugplot
  • Generate: generate from daily and monthly profiles, generate from sinusoidal function, sample from given load duration curve, or from given PSD, add noise gaussian and autoregressive noise, genrate correlated load profiles , fit to analytical load duration curve
  • Statistics: Feature extraction from timeseries for a quick overview of the characteristics of any load curve. Useful when coupled with machine learning packages.

This library is not focusing on regression and prediction (e.g. ARIMA, state-space etc.), since there are numerous relevant libraries around.

Example

Try to run one of the following commands to explore some of this library’s features:

>>> import numpy as np
>>> import enlopy as el
>>> Load = np.random.rand(8760) # Create random vector of values
>>> eload = el.make_timeseries(Load) # Convenience wrapper around pandas timeseries

>>> el.plot_heatmap(eload, x='day', y='month', aggfunc='mean') # Plots 2d heatmap
>>> el.plot_percentiles(eload) # Plots mean and quantiles
>>> el.plot_LDC(eload) # Plots a Load Duration Curve
>>> el.plot_rug(eload) # Plots a nice rugplot. Useful for dispatch results
>>> el.get_load_archetypes(eload, plot_diagnostics=True) # Splits daily loads in clusters (archetypes)

More examples can be found in this jupyter notebook.

Documentation

Detailed documentation is still under construction, but you can find an overview of the available methods here: http://enlopy.readthedocs.io/

Install

Currently you can find the latest stable version in pypi. You can install it with:

pip install enlopy

Be aware that this library is still in conceptual mode, so the API is most probably going to change in the following versions. If you already have it installed and you want to upgrade to the latest stable version please use the following:

pip install -U --upgrade-strategy only-if-needed enlopy

This will ensure that the dependencies will not be updated if the minimum requirements are already satisfied with the current version.

If you want to download the latest version from git for use or development purposes:

git clone https://github.com/kavvkon/enlopy.git
cd enlopy
conda env create  # Automatically creates environment based on environment.yml
source activate enlopy
pip install . -e # Install editable local version

It should be ready to run out of the box for anyone that has the anaconda distribution installed. The only dependencies required to use enlopy are the following:

Contribute

If you think you can contribute with new relevant methods that you are currently using or improve the code or documentation in any way, feel free to contact me, fork the repository and send your pull requests.

Citing

If you use this library in an academic work, please consider citing it.

[1] K. Kavvadias, “enlopy: Python toolkit for energy load time series”

enlopy has been already used for processing demand timeseries in this scientific paper: http://dx.doi.org/10.1016/j.apenergy.2016.08.077

Release History

Release History

This version
History Node

0.1.dev7

History Node

0.1.dev6

History Node

0.1.dev5

History Node

0.1.dev4

History Node

0.1.dev3

History Node

0.1.dev1

History Node

0.1.dev0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
enlopy-0.1.dev7.tar.gz (23.7 kB) Copy SHA256 Checksum SHA256 Source Jun 21, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting