diff --git a/environment.yml b/environment.yml index b6005bf34..60ab46ee1 100755 --- a/environment.yml +++ b/environment.yml @@ -29,6 +29,6 @@ dependencies: - flake8-quotes - pep8-naming - matplotlib - - xarray + - xarray >=0.10.2 - cartopy - beautifulsoup4 diff --git a/setup.py b/setup.py index 3ae8b1979..2b698f386 100644 --- a/setup.py +++ b/setup.py @@ -52,7 +52,7 @@ 'flake8-copyright', 'flake8-docstrings', 'flake8-import-order', 'flake8-mutable', 'flake8-pep3101', 'flake8-print', 'flake8-quotes', 'pep8-naming', - 'vcrpy~=1.5,!=1.7.0,!=1.7.1,!=1.7.2,!=1.7.3', 'xarray>=0.6'], + 'vcrpy~=1.5,!=1.7.0,!=1.7.1,!=1.7.2,!=1.7.3', 'xarray>=0.10.2'], 'doc': ['sphinx>=1.3,!=1.6.4', 'sphinx-gallery', 'doc8', 'recommonmark'], # SciPy needed for cartopy; we don't use cartopy[plotting] because # that will pull in GDAL. diff --git a/siphon/cdmr/xarray_support.py b/siphon/cdmr/xarray_support.py index 195f85e49..724238291 100644 --- a/siphon/cdmr/xarray_support.py +++ b/siphon/cdmr/xarray_support.py @@ -29,9 +29,15 @@ def get_array(self): def __getitem__(self, item): """Wrap getitem around the data.""" - item = indexing.unwrap_explicit_indexer( - item, self, allow=(indexing.BasicIndexer, indexing.OuterIndexer)) - return self.get_array()[item] + item, np_inds = indexing.decompose_indexer(item, self.shape, + indexing.IndexingSupport.BASIC) + with self.datastore: + array = self.get_array()[item.tuple] + + if len(np_inds.tuple) > 0: + array = indexing.NumpyIndexingAdapter(array)[np_inds] + + return array class CDMRemoteStore(AbstractDataStore): @@ -45,7 +51,7 @@ def __init__(self, url, deflate=None): def open_store_variable(self, name, var): """Turn CDMRemote variable into something like a numpy.ndarray.""" - data = indexing.LazilyIndexedArray(CDMArrayWrapper(name, self)) + data = indexing.LazilyOuterIndexedArray(CDMArrayWrapper(name, self)) return Variable(var.dimensions, data, {a: getattr(var, a) for a in var.ncattrs()}) def get_variables(self):