From d88bcf41b4716bb978d39f759d0de055abfd379b Mon Sep 17 00:00:00 2001 From: tdcwilliams Date: Fri, 19 Apr 2024 12:01:24 +0200 Subject: [PATCH] change GeoDatasetRead.get_lonlat_arrays to work for an older file; update tests --- geodataset/geodataset.py | 14 +++++++------- geodataset/tests/test_custom_geodataset.py | 4 ++-- geodataset/tests/test_geodataset.py | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/geodataset/geodataset.py b/geodataset/geodataset.py index 19f34c0..924d2c8 100644 --- a/geodataset/geodataset.py +++ b/geodataset/geodataset.py @@ -427,15 +427,15 @@ def get_lonlat_arrays(self, ij_range=(None, None, None, None), **kwargs): lat : numpy.ndarray 2D array with latitude """ - if not self.is_lonlat_dim: - return [ - self.get_variable_array(name, ij_range=ij_range) - for name in self.lonlat_names] lon_name, lat_name = self.lonlat_names + lon = self.variables[lon_name] + lat = self.variables[lat_name] i0, i1, j0, j1 = ij_range - lon = self[lon_name][j0:j1] - lat = self[lat_name][i0:i1] - return np.meshgrid(lon, lat) + slat = slice(i0, i1) + slon = slice(j0, j1) + if lon.ndim == 2: + return [a[slat, slon] for a in (lon, lat)] + return np.meshgrid(lon[slon], lat[slat]) def get_area_euclidean(self, mapping, **kwargs): """ diff --git a/geodataset/tests/test_custom_geodataset.py b/geodataset/tests/test_custom_geodataset.py index 1746d53..1e10fc8 100644 --- a/geodataset/tests/test_custom_geodataset.py +++ b/geodataset/tests/test_custom_geodataset.py @@ -10,13 +10,13 @@ import pyproj from pyproj.exceptions import CRSError -from geodataset.custom_geodataset import UniBremenAlbedoMPF +from geodataset.custom_geodataset import UniBremenAlbedoMPF, NERSCProductBase from geodataset.utils import InvalidDatasetError from geodataset.tests.base_for_tests import BaseForTests -class UniBremenAlbedoMPFBaseTest(BaseForTests): +class UniBremenAlbedoMPFTest(BaseForTests): def test_get_xy_arrays_1(self): """ test get_xy_arrays with default options """ diff --git a/geodataset/tests/test_geodataset.py b/geodataset/tests/test_geodataset.py index 313d32b..45fdff0 100644 --- a/geodataset/tests/test_geodataset.py +++ b/geodataset/tests/test_geodataset.py @@ -28,7 +28,7 @@ def setUp(self): self.moorings_var = 'sic' # ECMWF forecast file - lon,lat are dims self.ec2_file = os.path.join(os.environ['TEST_DATA_DIR'], - "ec2_start20220401.nc") + "ec2_start20240401.nc") class GeoDatasetBaseTest(GeodatasetTestBase):