[util] split mtag feature to yaml routine

This commit is contained in:
Jan Grewe 2020-07-31 18:02:31 +02:00
parent 67c0b06052
commit dd8bff586d

View File

@ -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