|
| 1 | +#!/usr/bin/env python |
| 2 | +# -*- coding: UTF-8 -*- |
| 3 | + |
| 4 | +#Copyright (c) 2012 Christian Schwarz |
| 5 | +# |
| 6 | +#Permission is hereby granted, free of charge, to any person obtaining |
| 7 | +#a copy of this software and associated documentation files (the |
| 8 | +#"Software"), to deal in the Software without restriction, including |
| 9 | +#without limitation the rights to use, copy, modify, merge, publish, |
| 10 | +#distribute, sublicense, and/or sell copies of the Software, and to |
| 11 | +#permit persons to whom the Software is furnished to do so, subject to |
| 12 | +#the following conditions: |
| 13 | +# |
| 14 | +#The above copyright notice and this permission notice shall be |
| 15 | +#included in all copies or substantial portions of the Software. |
| 16 | +# |
| 17 | +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| 18 | +#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| 19 | +#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| 20 | +#NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
| 21 | +#LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
| 22 | +#OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
| 23 | +#WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 24 | + |
| 25 | +## This module contains helper functions that will be moved later |
| 26 | + |
| 27 | + |
| 28 | +import time |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +def _to_timestamp(self, epoch): |
| 33 | + return time.strftime("%m-%d_%H:%M", time.localtime(epoch)) |
| 34 | + |
| 35 | +## @todo define a more general interface! |
| 36 | +def linear_interpolation(fisrt, last, steps): |
| 37 | + """Interpolates all missing values using linear interpolation. |
| 38 | +
|
| 39 | + @param first Starting value for the interpolation. |
| 40 | +
|
| 41 | + @param last End Value for the interpolation |
| 42 | +
|
| 43 | + @param steps Number of missing values that have to be calculated. |
| 44 | +
|
| 45 | + @return Returns a list of floats containing only the missing values. |
| 46 | + """ |
| 47 | + result = [] |
| 48 | + |
| 49 | + for step in xrange(0, stepsBetween): |
| 50 | + fpart = (stepsBetween - step) * first |
| 51 | + lpart = (step + 1) * last |
| 52 | + value = (fpart + lpart) / float(stepsBetween + 1) |
| 53 | + result.append(value) |
| 54 | + |
| 55 | + return result |
0 commit comments