Skip to content

Commit 541e800

Browse files
committed
Minor bug fix in base_variables
1 parent 250c751 commit 541e800

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

psyplot/data.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2247,22 +2247,28 @@ def init_accessor(self, base=None, idims=None, decoder=None,
22472247
@property
22482248
def iter_base_variables(self):
22492249
"""An iterator over the base variables in the :attr:`base` dataset"""
2250-
if 'variable' in self.arr.coords:
2251-
return (self.base.variables[name] for name in safe_list(
2252-
self.arr.coords['variable'].values.tolist()))
2250+
if VARIABLELABEL in self.arr.coords:
2251+
return (self._get_base_var(name) for name in safe_list(
2252+
self.arr.coords[VARIABLELABEL].values.tolist()))
22532253
name = self.arr.name
22542254
if name is None:
22552255
return iter([self.arr._variable])
22562256
return iter([self.base.variables[name]])
22572257

2258+
def _get_base_var(self, name):
2259+
try:
2260+
return self.base.variables[name]
2261+
except KeyError:
2262+
return self.arr.sel(**{VARIABLELABEL: name}).rename(name)
2263+
22582264
@property
22592265
def base_variables(self):
22602266
"""A mapping from the variable name to the variablein the :attr:`base`
22612267
dataset."""
2262-
if 'variable' in self.arr.coords:
2268+
if VARIABLELABEL in self.arr.coords:
22632269
return OrderedDict([
2264-
(name, self.base.variables[name]) for name in safe_list(
2265-
self.arr.coords['variable'].values.tolist())])
2270+
(name, self._get_base_var(name)) for name in safe_list(
2271+
self.arr.coords[VARIABLELABEL].values.tolist())])
22662272
name = self.arr.name
22672273
if name is None:
22682274
return {name: self.arr._variable}

0 commit comments

Comments
 (0)