Welcome to pandas_degreedays’s documentation!
pandas_degreedays
Pandas Degree Days (pandas_degreedays) is a Python package to calculate degree days.
Usage
You must provide a Pandas Series with temperature values.
Let’s call ts_temp this Serie which looks like:
datetime 2014-03-20 23:00:00 11 2014-03-20 23:30:00 11 2014-03-21 00:00:00 11 2014-03-21 00:30:00 11 2014-03-21 01:00:00 11 2014-03-21 01:30:00 11 ... 2014-11-01 20:00:00 12 2014-11-01 20:30:00 12 2014-11-01 21:00:00 12 2014-11-01 21:30:00 12 2014-11-01 22:00:00 12 2014-11-01 22:30:00 12 Name: temp, Length: 10757
You can get a time serie with temperature in sample folder and read it using:
import pandas as pd
filename = 'temperature_sample.xls'
df_temp = pd.read_excel(filename)
df_temp = df_temp.set_index('datetime')
ts_temp = df_temp['temp']
You can also fetch a time serie with temperature from OpenWeatherMap.org. You need to install first openweathermap_requests.
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
from pandas_degreedays.provider import TemperatureProvider
ts_temp = TemperatureProvider('OpenWeatherMap', api_key='').get_from_coordinates(0.34189, 46.5798114, '20120601', '20141215')
We can see if some data are missing using:
idx = ts_temp.index s_idx = pd.Series(idx, index=idx) diff_idx = s_idx-s_idx.shift(1) s_sampling_period = diff_idx.value_counts() sampling_period = s_sampling_period.index[0] # most prevalent sampling period not_sampling_period = (diff_idx != sampling_period) # True / False
We can interpolate linearly missing data using:
from pandas_degreedays import inter_lin_nan ts_temp = inter_lin_nan(ts_temp, '1H') # interpolates linearly NaN
We can calculate degree days using:
from pandas_degreedays import calculate_dd df_degreedays = calculate_dd(ts_temp, method='pro', typ='heating', Tref=18.0, group='yearly')
Tref is reference temperature - default value is 18.0
from pandas_degreedays import yearly_month df_degreedays = calculate_dd(ts_temp, method='pro', typ='heating', Tref=18.0, group=lambda dt: yearly_month(dt, 10))
It outputs a Pandas DataFrame with degree days like:
Tmin Tmax Tavg Tref DD DD_cum 2014-03-22 7.0 11.0 9.00 18 9.000000 9.000000 2014-03-23 3.0 12.0 7.50 18 10.500000 19.500000 2014-03-24 0.0 10.0 5.00 18 13.000000 32.500000 2014-03-25 6.0 10.0 8.00 18 10.000000 42.500000 2014-03-26 5.0 12.0 8.50 18 9.500000 52.000000 2014-03-27 2.0 8.0 5.00 18 13.000000 65.000000 ... ... ... ... ... ... ... 2014-10-26 5.0 17.0 11.00 18 7.000000 653.547663 2014-10-27 9.0 22.0 15.50 18 3.336923 656.884586 2014-10-28 7.5 20.0 13.75 18 4.544400 661.428986 2014-10-29 8.0 19.0 13.50 18 4.618182 666.047168 2014-10-30 12.0 22.0 17.00 18 1.992000 668.039168 2014-10-31 11.0 24.0 17.50 18 2.143077 670.182245 [224 rows x 6 columns]
You can display plot using:
from pandas_degreedays import plot_temp plot_temp(ts_temp, df_degreedays)
About Pandas
pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. It’s a very convenient library to work with time series.
Install
From Python package index
$ pip install pandas_degreedays
From source
Get latest version using Git
$ git clone https://github.com/scls19fr/pandas_degreedays.git $ cd pandas_degreedays $ python setup.py install
Links
Documentation can be found at Read The Docs ;
Source code and issue tracking can be found at GitHub.
Feel free to tip me!
Release files for pandas_degreedays 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pandas_degreedays-0.0.6.tar.gz | 9.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pandas_degreedays-0.0.6-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 22.2 kB
Release files / pandas_degreedays-0.0.6.tar.gz
| Download URL | pandas_degreedays-0.0.6.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d172c6b1a0b38cdbdf396eaa3a89f81ade422f6e5bf67550417db1b6f88e0e55
|
|
BLAKE2b-256 checksum How to use checksums |
5b20dd68f6bb6501adbc4d4d251ba2977768569548509a256f6a29325683291c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / pandas_degreedays-0.0.6-py2.py3-none-any.whl
| Download URL | pandas_degreedays-0.0.6-py2.py3-none-any.whl |
|---|---|
| Size | 12.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
053263517a3b159e024b7429bf4e020f305571eb32e688d15ee99b79d25afa01
|
|
BLAKE2b-256 checksum How to use checksums |
f41b859faef056cedf3cc71a62a88426e075e6e70a8a3ff38b2fab8841e1e184
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |