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