Skip to content
Snippets Groups Projects
Commit f32c5459 authored by Peter Lünenschloß's avatar Peter Lünenschloß
Browse files

redetermined interpolation behaviour for frequency aligned values, seperated...

redetermined interpolation behaviour for frequency aligned values, seperated by a margin exactly sized 2*freq
parent f3f482c7
No related branches found
No related tags found
1 merge request!19Harm bug fixes
Pipeline #2836 passed with stage
in 7 minutes and 16 seconds
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import pdb
import pandas as pd
import numpy as np
import logging
......@@ -368,10 +369,22 @@ def _interpolateGrid(
# Interpolations:
elif method in interpolations:
# account for annoying case of subsequent frequency alligned values, differing exactly by the margin
# 2*freq:
spec_case_mask = data.asfreq(freq).dropna().index.to_series()
spec_case_mask = (spec_case_mask - spec_case_mask.shift(1)) == 2 * pd.Timedelta(freq)
spec_case_mask = spec_case_mask[spec_case_mask]
if not spec_case_mask.empty:
spec_case_mask = spec_case_mask.tshift(-1, freq)
data = _insertGrid(data, freq)
data, chunk_bounds = _interpolate(
data, method, order=order, inter_limit=2, downcast_interpolation=downcast_interpolation,
)
# exclude falsely interpolated values:
data[spec_case_mask.index] = np.nan
if total_range is None:
data = data.asfreq(freq, fill_value=np.nan)
......
......@@ -343,18 +343,16 @@ def test_wrapper(data, flagger):
interpolate2Grid(data, field, flagger, freq, method="spline")
if __name__ == "__main__":
dat = pd.read_csv('/home/luenensc/PyPojects/testSpace/current_single_raw.csv')
dat.set_index('TIMESTAMP_MEASUREMENT', inplace=True)
dat.set_index(pd.DatetimeIndex(dat.index), inplace=True)
#dat = pd.read_csv('/home/luenensc/PyPojects/testSpace/current_single_raw.csv')
#dat.set_index('TIMESTAMP_MEASUREMENT', inplace=True)
#dat.set_index(pd.DatetimeIndex(dat.index), inplace=True)
index = pd.date_range('2000-1-1T00:00:00', periods=10, freq='15min')
index=index.drop(index[3])
dat = pd.DataFrame(data={'testdata': np.arange(0, len(index))}, index=index)
field = dat.columns[0]
flagger = TESTFLAGGER[0]
freq = '1D'
freq = '15min'
flagger = flagger.initFlags(dat)
data, flagger = aggregate2Grid(dat, field, flagger, freq, value_func="sum",
flag_func="max")
data, flagger = aggregate2Grid(data, dat.columns[1], flagger, freq, value_func="sum",
flag_func="max")
data, flagger = aggregate2Grid(data, dat.columns[2], flagger, freq, value_func="sum",
flag_func="max")
data, flagger = linear2Grid(dat, field, flagger, freq)
print('bugstop')
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment