Skip to content

Commit

Permalink
Narrow down the error to the slicer
Browse files Browse the repository at this point in the history
  • Loading branch information
mraspaud committed Jan 15, 2025
1 parent 3210348 commit e9507e2
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 49 deletions.
49 changes: 0 additions & 49 deletions pyresample/test/test_gradient.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,55 +255,6 @@ def test_resample_area_to_area_nn(self):
np.testing.assert_allclose(res, expected_resampled_data)
assert res.shape == dst_area.shape

def test_regression_449(self):
from datetime import datetime

import dask.array as da
import numpy as np
import xarray as xr

from pyresample import create_area_def
from pyresample.gradient import ResampleBlocksGradientSearchResampler

dater = datetime.utcnow()

lon = np.arange(-180, 180, 0.25)
lat = np.arange(-90, 90 + 0.25, 0.25)

inv = np.random.uniform(low=0., high=1., size=(lat.shape[0], lon.shape[0]))

area_ext = (np.nanmin(lon), np.nanmin(lat), np.nanmax(lon), np.nanmax(lat))
targ_area = create_area_def("source_area",
"EPSG:4326",
area_extent=area_ext,
width=inv.shape[1],
height=inv.shape[0])

dest_area = create_area_def("msg_3km_disk",
{'a': '6378169', 'h': '35785831', 'lon_0': '0', 'no_defs': 'None', 'proj': 'geos',
'rf': '295.488065897001', 'type': 'crs', 'units': 'm', 'x_0': '0', 'y_0': '0'},
area_extent=(-5570248.6867, -5567248.2834, 5567248.2834, 5570248.6867),
width=3712,
height=3712,
)

data = xr.DataArray(da.from_array(inv),
coords={'y': lat, 'x': lon},
attrs={'start_time': dater})

resampler = ResampleBlocksGradientSearchResampler(targ_area, dest_area)
resampler.precompute()
res = resampler.compute(
data, method='nn',
fill_value=np.nan).compute(scheduler='single-threaded').values

minval, meanval, maxval = (np.nanmin(res),
np.nanmean(res),
np.nanmax(res))
assert np.isfinite(minval)
assert np.isfinite(meanval)
assert np.isfinite(maxval)


class TestRBGradientSearchResamplerSwath2Area:
"""Test RBGradientSearchResampler for the Area to Swath case."""
Expand Down
27 changes: 27 additions & 0 deletions pyresample/test/test_slicer.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,33 @@ def test_slicing_works_with_extents_of_different_units(self):
assert 60 <= slice_x.stop < 65
assert 50 <= slice_y.stop < 55

def test_regression_449(self):
import numpy as np

from pyresample import create_area_def

lon = np.arange(-180, 180, 0.25)
lat = np.arange(-90, 90 + 0.25, 0.25)

area_ext = (np.nanmin(lon), np.nanmin(lat), np.nanmax(lon), np.nanmax(lat))
src_area = create_area_def("source_area",
"EPSG:4326",
area_extent=area_ext,
width=len(lon),
height=len(lat))

dest_area = create_area_def("msg_3km_disk",
{'a': '6378169', 'h': '35785831', 'lon_0': '0', 'no_defs': 'None', 'proj': 'geos',
'rf': '295.488065897001', 'type': 'crs', 'units': 'm', 'x_0': '0', 'y_0': '0'},
area_extent=(-5570248.6867, -5567248.2834, 5567248.2834, 5570248.6867),
width=3712,
height=3712,
)

slicer = create_slicer(src_area, dest_area)
# Should not raise any error
slicer.get_slices()


class TestSwathSlicer(unittest.TestCase):
"""Test the get_slice function when input is a swath."""
Expand Down

0 comments on commit e9507e2

Please sign in to comment.