diff --git a/core_tools/data/ds/ds2xarray.py b/core_tools/data/ds/ds2xarray.py index 84600785287d275c191806b89b39d7791171781e..d6f3845fbf2abee9b4a65106fcf1187b99eefded 100644 --- a/core_tools/data/ds/ds2xarray.py +++ b/core_tools/data/ds/ds2xarray.py @@ -4,27 +4,23 @@ import json import string from qcodes.utils.helpers import NumpyJSONEncoder -def _add_coord(ds, param, dup=0): - name = param.param_name - if dup > 0: - name += f'-{dup}' +def _add_coord(ds, param): data = param() attrs = { 'units':param.unit, 'long_name':param.label, } - if name in ds.coords: + dup = 0 + param_name = param.param_name + name = param_name + while name in ds.coords: if (np.array_equal(data , ds.coords[name].data, equal_nan=True) and attrs == ds.coords[name].attrs): - # coord already added + # coord already added and identical return name - print('*** Duplicate *** ', name, ds.attrs['uuid']) -# print(data) -# print(ds.coords[name].data) - return _add_coord(ds, param, dup+1) -# raise Exception('Cannot handle conversion with duplicate coordinate names that are not equal. ' -# f'(coord={name})') + dup += 1 + name = f'{param_name}-{dup}' ds.coords[name] = data ds.coords[name].attrs = attrs