From dd8bff586d5923f237511b236bb9a7ae260215a5 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Fri, 31 Jul 2020 18:02:31 +0200 Subject: [PATCH] [util] split mtag feature to yaml routine --- fishbook/backend/util.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/fishbook/backend/util.py b/fishbook/backend/util.py index 3707785..810cc10 100644 --- a/fishbook/backend/util.py +++ b/fishbook/backend/util.py @@ -304,6 +304,24 @@ def find_mtags_for_tag(block, tag): return mtags, indices +def mtag_features_to_yaml(mtag, pos_index, section_yaml=None): + yaml = section_yaml if section_yaml is not None else "" + for i in range(len(mtag.features)): + feat = mtag.features[i] + feat_name = feat.data.label if feat.data.label and len(feat.data.label) > 0 else feat.data.name + feat_unit = feat.data.unit if feat.data.unit and len(feat.data.unit) > 0 else "" + feat_data = mtag.retrieve_feature_data(pos_index, i) + + if np.prod(feat_data.shape) == 1: + feat_content = "%s %s" % (feat_data[:][0], feat_unit) + else: + feat_data = np.round(np.squeeze(feat_data), 10) + feat_content = "[" + ','.join(map(str, feat_data[:])) + "] %s" % feat_unit + yaml += "\t%s: %s\n" % (feat_name, feat_content) + + return yaml + + def mtag_settings_to_yaml(mtag, pos_index): assert(isinstance(mtag, nix.pycore.multi_tag.MultiTag)) assert(0 <= pos_index < mtag.positions.shape[0]) @@ -311,18 +329,8 @@ def mtag_settings_to_yaml(mtag, pos_index): yaml = "" if mtag.metadata is not None: yaml = nix_metadata_to_yaml(mtag.metadata) - for i in range(len(mtag.features)): - feat = mtag.features[i] - feat_data = mtag.retrieve_feature_data(pos_index, i) - - if len(feat_data.shape) == 1: - feat_name = feat.data.label if feat.data.label and len(feat.data.label) > 0 else feat.data.name - feat_unit = feat.data.unit if feat.data.unit and len(feat.data.unit) > 0 else "" - if feat_data.shape[0] == 1: - feat_content = "%s %s" % (feat_data[0], feat_unit) - else: - feat_content = "[" + ','.join(map(str, feat_data[:])) + "] %s" % feat_unit - yaml += "\t%s: %s\n" % (feat_name, feat_content) + yaml = mtag_features_to_yaml(mtag, pos_index, yaml) + return yaml