-
Notifications
You must be signed in to change notification settings - Fork 0
/
TimeSeries.py
37 lines (30 loc) · 865 Bytes
/
TimeSeries.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class TimeSeries:
"""
TimeSeries object to control FEM timing.
Parameters
----------
init : {initial time, float}
interval : {time interval, float}
record_in : {input series, list}
"""
def __init__(self, init, interval, record_in):
self.init = init
self.interval = interval
self.record_in = record_in
def at(self, t):
"""
Return value at specific time stamp by linear interploation.
Parameters
----------
t : {time stamp, float}
Returns
-------
out : float
"""
t0 = self.init
dt = self.interval
rec = self.record_in
i = int((t - t0) // dt)
increment = (rec[i+1] - rec[i])/dt * (t - (t0 + dt * i))
result = rec[i] + increment
return result