khaeru/py-gdx

ValueError on extract()

Closed this issue · 0 comments

Using mit-jp/crem@51d7d0189de31e54e18f164a0d004bae3a41670c to produce example.gdx, one parameter raises an error when using File.extract():

>>> import gdx
>>> f = gdx.File('example.gdx')
>>> f.extract('sectem')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-8-bdee7af32ba8> in <module>()
----> 1 f.extract('sectem')

/home/khaeru/vc/py-gdx/gdx/__init__.py in extract(self, name)
    372                 # rename 'p' to 'c'
    373                 drop = set(self[p].values) - set(self[c].values) - set('')
--> 374                 result = result.drop(drop, dim=p).rename({p: c})
    375         return result
    376 

/home/khaeru/.local/lib/python3.5/site-packages/xarray/core/dataarray.py in rename(self, new_name_or_name_dict)
    733             name_dict = new_name_or_name_dict.copy()
    734             name = name_dict.pop(self.name, self.name)
--> 735             dataset = self._to_temp_dataset().rename(name_dict)
    736             return self._from_temp_dataset(dataset, name)
    737         else:

/home/khaeru/.local/lib/python3.5/site-packages/xarray/core/dataset.py in rename(self, name_dict, inplace)
   1245                                  "variable in this dataset" % k)
   1246             if v in self:
-> 1247                 raise ValueError('the new name %r already exists' % v)
   1248 
   1249         variables = OrderedDict()

ValueError: the new name 'r' already exists

sectem is defined over r, g and t; r is a subset of rs, and the error seems to happen when trying to rename r to rs.

This may be new after the update to xarray.

Reported by @ctli