From a30201e5fcd2d7ef3fbfd019d4b892c11b9c6295 Mon Sep 17 00:00:00 2001 From: Bas Nijholt Date: Tue, 13 May 2025 10:33:00 +0200 Subject: [PATCH 1/2] Prevent SciPy deprecation warning Currently, I see: ``` /Users/marcellaholm/Work/pipefunc/.venv/lib/python3.13/site-packages/adaptive/learner/learner2D.py:52: DeprecationWarning: `scipy.interpolate.interpnd.estimate_gradients_2d_global` is deprecated along with the `scipy.interpolate.interpnd` namespace. `scipy.interpolate.interpnd.estimate_gradients_2d_global` will be removed in SciPy 1.16.0, and the `scipy.interpolate.interpnd` namespace will be removed in SciPy 2.0.0. gradients = interpolate.interpnd.estimate_gradients_2d_global( ``` --- adaptive/learner/learner2D.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/adaptive/learner/learner2D.py b/adaptive/learner/learner2D.py index 017a9da3..a9460eaa 100644 --- a/adaptive/learner/learner2D.py +++ b/adaptive/learner/learner2D.py @@ -12,6 +12,7 @@ import numpy as np from scipy import interpolate from scipy.interpolate import LinearNDInterpolator +import scipy.interpolate._interpnd as interpnd from adaptive.learner.base_learner import BaseLearner from adaptive.learner.triangulation import simplex_volume_in_embedding @@ -49,7 +50,7 @@ def deviations(ip: LinearNDInterpolator) -> list[np.ndarray]: The deviation per triangle. """ values = ip.values / (np.ptp(ip.values, axis=0).max() or 1) - gradients = interpolate.interpnd.estimate_gradients_2d_global( + gradients = interpnd.estimate_gradients_2d_global( ip.tri, values, tol=1e-6 ) From 3b799e6235d13f8a9e2df5ba1f82a7cc98a78acd Mon Sep 17 00:00:00 2001 From: Bas Nijholt Date: Tue, 13 May 2025 10:38:33 +0200 Subject: [PATCH 2/2] Use CloughTocher2DInterpolator --- adaptive/learner/learner2D.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/adaptive/learner/learner2D.py b/adaptive/learner/learner2D.py index a9460eaa..15864a80 100644 --- a/adaptive/learner/learner2D.py +++ b/adaptive/learner/learner2D.py @@ -11,8 +11,7 @@ import cloudpickle import numpy as np from scipy import interpolate -from scipy.interpolate import LinearNDInterpolator -import scipy.interpolate._interpnd as interpnd +from scipy.interpolate import CloughTocher2DInterpolator, LinearNDInterpolator from adaptive.learner.base_learner import BaseLearner from adaptive.learner.triangulation import simplex_volume_in_embedding @@ -50,9 +49,7 @@ def deviations(ip: LinearNDInterpolator) -> list[np.ndarray]: The deviation per triangle. """ values = ip.values / (np.ptp(ip.values, axis=0).max() or 1) - gradients = interpnd.estimate_gradients_2d_global( - ip.tri, values, tol=1e-6 - ) + gradients = CloughTocher2DInterpolator(ip.tri, values, tol=1e-6).grad simplices = ip.tri.simplices p = ip.tri.points[simplices]