From 3d0ffbc55c7af9803c290254c4075194ec0474a9 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Thu, 14 Mar 2019 10:37:37 +0100 Subject: [PATCH] [util] add method to find mtags that fit into a tagged region --- util.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/util.py b/util.py index 9504eed..e5e8168 100644 --- a/util.py +++ b/util.py @@ -1,4 +1,5 @@ from functools import reduce +import numpy as np import nixio as nix import os import glob @@ -102,6 +103,25 @@ def nix_metadata_to_yaml(section, cur_depth=0, val_count=1): return yaml +def find_mtags_for_tag(block, tag): + assert(isinstance(block, nix.pycore.block.Block)) + assert(isinstance(tag, nix.pycore.tag.Tag)) + mtags = [] + tag_start = np.atleast_1d(tag.position) + tag_end = tag_start + np.atleast_1d(tag.extent) + for mt in block.multi_tags: + mt_start = np.atleast_1d(mt.positions[0, :]) + mt_end = np.atleast_1d(mt.positions[-1, :] + mt.extents[-1, :]) + in_tag = True + for i in range(len(tag_start)): + if mt_start[i] < tag_start[i] or mt_end[i] > tag_end[i]: + in_tag = False + break + if in_tag: + mtags.append(mt) + return mtags + + if __name__ == "__main__": nix_file = "../../science/high_freq_chirps/data/2018-11-09-aa-invivo-1/2018-11-09-aa-invivo-1.nix" f = nix.File.open(nix_file, nix.FileMode.ReadOnly)