Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define consistent nodata propagation for interp_points and allow to return interpolator #560

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

rhugonnet
Copy link
Contributor

@rhugonnet rhugonnet commented Jun 7, 2024

Most of the line changes in this PR are due to re-structuring, moving out functions of the Raster class (see #539, in preparation for #383) into their own module, here only those linked to interp_points.

This PR also adds a nodata propagation scheme (as scipy.interpolate.interpn does not support nodata propagation natively except for methods "nearest" and "linear") and allows to return an interpolator that contains this nodata propagation (to optimize speed of iterative methods calling the same interpolator several times, such as DEM coregistration).

It turned out that interpolation of map_coordinates with splines of order 3/5 does not match "cubic" or "quintic" in interpn, only order 0/1 do match for "nearest" and "linear", so all other are dropped. The nodata propagation and accuracy of results for values near the edge of NaNs is now tested thoroughly! 😄

Resolves #559
Starts addressing #539 for functions related to interp_points

TO-DO:

  • Add tests on return_interpolator,
  • Add tests that gets exact interpolation value, then creates artificial NaNs, and compares to the interpolation near NaN edges to estimate the accuracy,
  • Adjust nodata propagation tests for "nearest" and "linear" (by enforcing the same propagation between map_coordinates and interpn)?

@rhugonnet rhugonnet changed the title Add option to return interpolator in interp_points and re-structure Define consistent nodata propagation for interp_points and allow to return interpolator Jun 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add option to return interpolator of interp_points to optimize speed of some iterative functionalities
1 participant