timeSeries kan nu omgaan met periode groter dan 1 dag.
This commit is contained in:
40
lmwsip.py
40
lmwsip.py
@@ -274,10 +274,9 @@ Returns a single string value or None
|
||||
#
|
||||
return(value)
|
||||
|
||||
def _lmwdelta_(self, startTime, endTime):
|
||||
d = endTime - startTime
|
||||
h = 24*d.days + d.seconds // 3600
|
||||
m = (d.seconds % 3600)//60
|
||||
def _lmwdelta_(self, window):
|
||||
h = 24*window.days + window.seconds // 3600
|
||||
m = (window.seconds % 3600)//60
|
||||
return("+%02i:%02i" % (h, m))
|
||||
|
||||
def timeSerie(self, process, location, parameter,
|
||||
@@ -323,21 +322,28 @@ Errors:
|
||||
if startTime > endTime:
|
||||
raise sipTimeSeriesError(startTime, endTime,
|
||||
"starttime > endtime")
|
||||
if endTime - startTime > timedelta(days=1):
|
||||
raise sipTimeSeriesError(startTime, endTime,
|
||||
"endtime - starttime > 24 hour")
|
||||
if datetime.now(tz=tz.gettz('GMT+1')) - startTime > timedelta(days=30):
|
||||
raise sipTimeSeriesError(startTime, endTime,
|
||||
"now - starttime > 30 days")
|
||||
if process == "VW":
|
||||
cmd_type="DATA"
|
||||
|
||||
res = lmwTimeSerie(startTime, delta, "")
|
||||
|
||||
while startTime < endTime:
|
||||
if endTime - startTime > timedelta(days=1):
|
||||
window = timedelta(days=1) - delta
|
||||
else:
|
||||
window = endTime-startTime
|
||||
values = self.cmd(process, location, parameter,
|
||||
self._lmwdelta_(startTime, endTime),
|
||||
self._lmwdelta_(window),
|
||||
startTime.strftime("%d-%m-%Y"),
|
||||
startTime.strftime("%H:%M"),
|
||||
cmd_type)
|
||||
return(lmwTimeSerie(startTime, delta, values))
|
||||
res.addvalues(startTime, values)
|
||||
startTime += window + delta
|
||||
|
||||
return(res)
|
||||
|
||||
def logout(self):
|
||||
"""logout()
|
||||
@@ -361,7 +367,7 @@ Note:
|
||||
* Additionale kwaliteit is optional and may contain None.
|
||||
"""
|
||||
|
||||
def __init__(self, start, delta, values):
|
||||
def __init__(self, start, delta, values=""):
|
||||
"""lmwTimeSerie(start, delta, values)
|
||||
|
||||
Create a lmwTimeSerie object with:
|
||||
@@ -370,25 +376,29 @@ Create a lmwTimeSerie object with:
|
||||
values: lmw result string
|
||||
"""
|
||||
self.ts = []
|
||||
self.addvalues(start, delta, values)
|
||||
self.delta = delta
|
||||
if values != "":
|
||||
self.addvalues(start, values)
|
||||
|
||||
def addvalues(self, start, delta, values):
|
||||
def addvalues(self, start, values):
|
||||
"""addvalues(start, delta, values)
|
||||
|
||||
Add values to a timeserie
|
||||
start: Start time
|
||||
delta: Period of the measurements
|
||||
values: lmw result string
|
||||
"""
|
||||
self.ts = []
|
||||
|
||||
Note:
|
||||
Times in UTC
|
||||
"""
|
||||
start = start.astimezone(tz.gettz('UTC'))
|
||||
for e in values.split(";"):
|
||||
v = e.split("/")
|
||||
v[0] = v[0].split(",")
|
||||
if len(v) == 2:
|
||||
v.append(None)
|
||||
self.ts.append([start, v[0], v[1], v[2]])
|
||||
start += delta
|
||||
start += self.delta
|
||||
|
||||
class sipTimeSeriesError(Exception):
|
||||
"""Parameter errors for timeSeries"""
|
||||
|
Reference in New Issue
Block a user