Skip to content
Snippets Groups Projects
Commit 7ff99915 authored by Rodri's avatar Rodri
Browse files

add script to extract dom rates

parent 80477b9b
No related branches found
No related tags found
1 merge request!67Draft: Resolve "Reading summary slices and extracting the rates of each optical module"
"""
Usage: extract-dom-rates.py -f INPUT_FILE -o OUTPUT_FILE -a DETECTOR_FILE
Options:
-h --help Help.
-f --input_file INPUT_FILE Input file.
-o --output_file OUTPUT_FILE Output file.
-a --detector_file DETECTOR_FILE Detector file.
"""
from docopt import docopt
import km3io
import km3pipe as kp
import km3pipe.hardware
import os
import numpy as np
import h5py
def get_doms_rates(slices, frame):
raw_rates = [km3io.online.get_rate(getattr(slices.rates[frame],f"ch{i}")) for i in range(31)]
return np.sum(raw_rates, axis=0)
def main():
arguments = docopt(__doc__)
data = {}
for key in arguments:
data[key.replace('-','')] = arguments[key]
reader = km3io.OnlineReader(data['input_file'])
summary_slices = reader.summaryslices
detector = km3pipe.hardware.Detector(data['detector_file'])
n_slices = len(summary_slices.slices)
doms_rates = {}
for dom in detector.dom_ids:
doms_rates[dom] = np.zeros(n_frames)
for i in range (n_slices):
rates = get_doms_rates(summary_slices, i)
dom_ids = summary_slices.slices[i].dom_id
for j in range(len(dom_ids)-1):
doms_rates[dom_ids[j]][i] = rates[j]
f = h5py.File(data['output_file'], "a")
f.create_dataset("frame_indices",data=np.array(summary_slices.headers.frame_index))
f.create_dataset("frame_times" ,data=np.array(summary_slices.headers.UTC_seconds * 1e9 + summary_slices.headers.UTC_16nanosecondcycles * 16))
for key, value in dictionary.items():
f.create_dataset(str(key), data=value)
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment