From 073ba97a2a7aaaa925bb0f496bb66d74cfa63ec5 Mon Sep 17 00:00:00 2001 From: Roy Smart Date: Sat, 11 Apr 2026 12:24:07 -0600 Subject: [PATCH 1/3] Fixed a bug in `regridding.weights()` where the units of the coordinates weren't being converted. --- regridding/_weights/_weights.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/regridding/_weights/_weights.py b/regridding/_weights/_weights.py index 150705e..d629ff3 100644 --- a/regridding/_weights/_weights.py +++ b/regridding/_weights/_weights.py @@ -120,6 +120,16 @@ def weights( axs[1, 1].pcolormesh(x_output, y_output, values_output_2); axs[1, 1].set_title(r"values_output_2"); """ + + coordinates_input = list(coordinates_input) + for i in range(len(coordinates_input)): + coord_input = coordinates_input[i] + coord_output = coordinates_output[i] + if hasattr(coord_output, "unit"): + coord_input = coord_input << coord_output.unit + coordinates_input[i] = coord_input + coordinates_input = tuple(coordinates_input) + if method == "multilinear": return _weights_multilinear( coordinates_input=coordinates_input, From f06d7e2058dab18345cbe9c8e4900f36a0eeacb4 Mon Sep 17 00:00:00 2001 From: Roy Smart Date: Sat, 11 Apr 2026 12:30:06 -0600 Subject: [PATCH 2/3] fix --- regridding/_util.py | 9 +++++++++ regridding/_weights/_weights.py | 10 ---------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/regridding/_util.py b/regridding/_util.py index 3cf7004..8c1c62d 100644 --- a/regridding/_util.py +++ b/regridding/_util.py @@ -32,6 +32,15 @@ def _normalize_input_output_coordinates( if isinstance(coordinates_output, np.ndarray): coordinates_output = (coordinates_output,) + coordinates_input = list(coordinates_input) + for i in range(len(coordinates_input)): + coord_input = coordinates_input[i] + coord_output = coordinates_output[i] + if hasattr(coord_output, "unit"): + coord_input = coord_input << coord_output.unit + coordinates_input[i] = coord_input + coordinates_input = tuple(coordinates_input) + shape_coordinates_input = np.broadcast(*coordinates_input).shape shape_coordinates_output = np.broadcast(*coordinates_output).shape diff --git a/regridding/_weights/_weights.py b/regridding/_weights/_weights.py index d629ff3..150705e 100644 --- a/regridding/_weights/_weights.py +++ b/regridding/_weights/_weights.py @@ -120,16 +120,6 @@ def weights( axs[1, 1].pcolormesh(x_output, y_output, values_output_2); axs[1, 1].set_title(r"values_output_2"); """ - - coordinates_input = list(coordinates_input) - for i in range(len(coordinates_input)): - coord_input = coordinates_input[i] - coord_output = coordinates_output[i] - if hasattr(coord_output, "unit"): - coord_input = coord_input << coord_output.unit - coordinates_input[i] = coord_input - coordinates_input = tuple(coordinates_input) - if method == "multilinear": return _weights_multilinear( coordinates_input=coordinates_input, From 1121a8bd3723efd57f3ed31ca5d5839cfcd7063d Mon Sep 17 00:00:00 2001 From: Roy Smart Date: Sat, 11 Apr 2026 12:35:40 -0600 Subject: [PATCH 3/3] coverage --- regridding/_regrid/_tests/test_regrid.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/regridding/_regrid/_tests/test_regrid.py b/regridding/_regrid/_tests/test_regrid.py index 35ef7c9..97f2878 100644 --- a/regridding/_regrid/_tests/test_regrid.py +++ b/regridding/_regrid/_tests/test_regrid.py @@ -39,6 +39,15 @@ None, np.square(np.linspace(-1, 1, num=11)), ), + ( + (np.linspace(-1, 1, num=11) * u.mm,), + (np.linspace(-1, 1, num=11) * u.mm,), + np.square(np.linspace(-1, 1, num=11)), + None, + None, + None, + np.square(np.linspace(-1, 1, num=11)), + ), ( (np.linspace(-1, 1, num=11),), (np.linspace(-1, 1, num=11),),