diff --git a/src/nmreval/io/hdfreader.py b/src/nmreval/io/hdfreader.py index e1d9c73..386d2c8 100644 --- a/src/nmreval/io/hdfreader.py +++ b/src/nmreval/io/hdfreader.py @@ -302,15 +302,26 @@ class HdfReader(HdfNode): def make_signal(self, node, flag: str = 'fid', value: str = None, group: str = None): if value is None: + data_name = node.name value = self._get_parameter_values(node, node.parameter) else: try: + data_name = f"{value}={node.parameter[value]}" value = node.parameter[value] except KeyError: + print(node.title_parameter) try: - value = node.title_parameter[1][value] + temp = node + while value != temp.title_parameter[0][0]: + if temp.parent is None: + break + temp = temp.parent + + value = temp.title_parameter[0][1] + data_name = temp.name except KeyError: print(f'{value} is not a valid key for {node.name}') + data_name = node.name value = None if group is None: @@ -343,11 +354,11 @@ class HdfReader(HdfNode): dw = float(index['dwelltime']) if flag == 'fid': x = np.arange(len(y)) * dw - ret = FID(x, y, name=node.name, value=value, group=group, filename=self.file.filename) + ret = FID(x, y, name=data_name, value=value, group=group, filename=self.file.filename) elif flag == 'spectrum': x = np.linspace(-1/dw, 1/dw, num=len(y)) - ret = Spectrum(x, y, name=node.name, value=value, group=group, filename=self.file.filename) + ret = Spectrum(x, y, name=data_name, value=value, group=group, filename=self.file.filename) else: raise ValueError(f'{flag} unknown, use `fid` or `spectrum`.')