diff --git a/scripts/rttc.py b/scripts/rttc.py index 6a8307e7a41691882e41c6aaf51b81b6a48c4d5e..75f56b3afe147a21cef57256acd0d60a275e7fae 100644 --- a/scripts/rttc.py +++ b/scripts/rttc.py @@ -55,24 +55,27 @@ def get_baseline_rttc(det_id, hours=24): run_24h_ago = int( runs[runs.UNIXSTARTTIME < (now - 60 * 60 * hours) * 1000].tail(1).RUN) + data = OrderedDict() + for param in ['wr_mu'] + ['wr_delta[%d]' % i for i in range(4)]: + data[param] = sds.datalognumbers( + parameter_name=param, + detid=det_oid, + minrun=run_24h_ago, + maxrun=latest_run) baselines = {} for du in 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(du).upi) - if _data is None: - data[param] = (0, 0) + source_name = clbmap.base(du).upi + du_data = OrderedDict() + for param, df in data.items(): + values = df[df.SOURCE_NAME == source_name].DATA_VALUE.values + if len(values) == 0: + du_data[param] = (0, 0) continue - 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:]]) + du_data[param] = (np.median(values), np.std(values)) + rttc_median = du_data['wr_mu'][0] - sum( + [du_data[p][0] for p in list(du_data.keys())[1:]]) + rttc_std = du_data['wr_mu'][1] - sum( + [du_data[p][1] for p in list(du_data.keys())[1:]]) baselines[du] = (rttc_median, rttc_std) return baselines