From bbf79216c8f756162adffbdfe21dfa328052d7d1 Mon Sep 17 00:00:00 2001 From: Tamas Gal <tgal@km3net.de> Date: Wed, 20 Feb 2019 23:23:59 +0100 Subject: [PATCH] Add function to retrieve baseline data --- scripts/rttc.py | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/scripts/rttc.py b/scripts/rttc.py index bacfef5..988c3f6 100644 --- a/scripts/rttc.py +++ b/scripts/rttc.py @@ -19,6 +19,7 @@ from __future__ import division import os from datetime import datetime +import time import matplotlib # Force matplotlib to not use any Xwindows backend. matplotlib.use('Agg') @@ -28,7 +29,7 @@ import matplotlib.ticker as ticker from matplotlib.colors import LogNorm import numpy as np -from collections import deque, defaultdict +from collections import deque, defaultdict, OrderedDict from functools import partial import km3pipe as kp @@ -39,6 +40,38 @@ km3pipe.style.use('km3pipe') from km3pipe.logger import logging +def get_baseline_rttc(det_id, hours=24): + """Retrieve the median and std RTTC values for a given time interval [h]""" + now = time.time() + dm = kp.db.DBManager() + det_oid = dm.get_det_oid(det_id) + sds = kp.db.StreamDS() + det = kp.hardware.Detector(det_id=det_id) + clbmap = kp.db.CLBMap(det_oid=det_oid) + runs = sds.runs(detid=det_id) + latest_run = int(runs.tail(1).RUN) + run_24h_ago = int( + runs[runs.UNIXSTARTTIME < (now - 60 * 60 * hours) * 1000].tail(1).RUN) + + baselines = {} + for du in self.det.dus: + data = OrderedDict() + for param in ['wr_mu'] + ['wr_delta[%d]' % i for i in range(4)]: + _data = sds.datalognumbers( + parameter_name=param, + detid=det_oid, + minrun=run_24h_ago, + maxrun=latest_run, + source_name=clbmap.base(1).upi) + data[param] = (_data.DATA_VALUE.median(), _data.DATA_VALUE.std()) + rttc_median = data['wr_mu'][0] - sum( + [data[p][0] for p in list(data.keys())[1:]]) + rttc_std = data['wr_mu'][1] - sum( + [data[p][1] for p in list(data.keys())[1:]]) + baselines[du] = (rttc_median, rttc_std) + return baselines + + def main(): from docopt import docopt args = docopt(__doc__) -- GitLab