Skip to content
Snippets Groups Projects
Commit ff3bbad6 authored by Rodri's avatar Rodri Committed by Rodrigo G. Ruiz
Browse files

add script to extract dom rates

parent 20819a7d
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