Period-based series¶
This page shows how to load period-based series’. All examples below
expects you to have an initialized instance of the client called eq
.
Operations described here are available under eq.periods.*
.
Requirements: Use these operations for curves with curve_type
set
to any of the following:
PERIOD
Load series¶
Method reference: eq.periods.load()
Loading data for a period-based series is quite straight-forward. There are three parameters you can and must specify: curve, begin and end.
Let’s load the installed wind power capacity for Germany:
>>> from datetime import date
>>> periodseries = eq.periods.load(
>>> 'DE Wind Power Installed MW Capacity',
>>> begin=date(2020, 1, 1), # or begin='2020-01-01'
>>> end=date(2020, 6, 1) # or end='2020-06-01'
>>> )
The response is a Periodseries
.
These are not regular time series’, but more like lists of variable-length
intervals (“periods”). They are a much more compact way of storing and
representing data that mostly remain the same, but changes sporadically
– such as capacities.
>>> periodseries
<Periodseries: resolution=<Resolution: frequency=NONE, timezone=CET>, curve="DE Wind Power Installed MW Capacity", begin="2020-01-01 00:00:00+01:00", end="2020-01-06 00:00:00+01:00">
>>> periodseries.data[:3]
[<Period: begin=2020-01-01 00:00:00+01:00, end=2020-01-06 00:00:00+01:00, value=60645.29>,
<Period: begin=2020-01-06 00:00:00+01:00, end=2020-01-13 00:00:00+01:00, value=60686.44>,
<Period: begin=2020-01-13 00:00:00+01:00, end=2020-01-20 00:00:00+01:00, value=60832.02>]
Don’t worry if you do not know how to work with this data structure – it is easy to convert period-based series to time series.
Convert periods to a time series¶
Method reference: Periodseries.to_timeseries()
While storing and transferring capacities is much more efficient as periods, ultimately you would like to convert them to time series in a fixed interval when doing data analysis.
To convert a period series to a time series, use the to_timeseries()
-method
and supply your preferred frequency. Below is an example where we convert the
wind power capacity loaded earlier into a time series in monthly resolution.
If multiple periods are overlapping the same month, the resulting value is a weighted average of those.
>>> from energyquantified.time import Frequency
>>> timeseries = periodseries.to_timeseries(Frequency.P1M)
>>> timeseries
<Timeseries: resolution=<Resolution: frequency=P1M, timezone=CET>, curve="DE Wind Power Installed MW Capacity", begin="2020-01-01 00:00:00+01:00", end="2020-05-01 00:00:00+02:00">
>>> timeseries.print()
Timeseries:
Curve: <Curve: "DE Wind Power Installed MW Capacity", curve_type=PERIOD>
Resolution: <Resolution: frequency=P1M, timezone=CET>
2020-01-01 00:00:00+01:00 60784.71
2020-02-01 00:00:00+01:00 61005.94
2020-03-01 00:00:00+01:00 61220.22
2020-04-01 00:00:00+02:00 61345.18
When converting from a period series to a time series, the time-zone will always remain the same.
Next steps¶
Learn how to load time series, time series instances, and period-based series instances.