Constraining Rbf Interpolation Of 3d Surface To Keep Curvature
Solution 1:
Just wanted to post my solution in case someone has the same problem. The issue was indeed with scipy
implementation of the RBF interpolation. I tried instead to adopt a more flexible library, https://rbf.readthedocs.io/en/latest/index.html#.
The results are pretty cool! Using the following options
from rbf.interpolate import RBFInterpolant
spline = RBFInterpolant(X_obs, U_obs, phi='phs5', order=1, sigma=0.0, eps=1.)
I was able to get the right shape even at the edge.
I've played around with the different phi
functions and here is the boxplot of the spread between the interpolated surface and the points that I'm testing the interpolation against (the red points in the picture).
With phs5
I get the best result with an average spread of about 0.5 mm on the upper surface and 0.8 on the lower surface. Before I was getting a similar average but with many outliers > 15 mm. Definitely a success :)
Post a Comment for "Constraining Rbf Interpolation Of 3d Surface To Keep Curvature"