Area-preserving bilinear interpolation for Healpix maps #89
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The weights computed for bilinear interpolation are computed in (theta, phi) coordinates, such that the effective sample location is shifted north or south compared to its actual location, with a shift amplitude that scales like 1/nside and is largest near the poles. This PR changes the GetInterpPixelsWeights method to compute weights in (z, phi) coordinates, so that the weights are area-preserving and calculated in the coordinates in which the Healpix pixel boundaries are defined.
Note that this means that
HealpixSkyMap.get_interp_values()
no longer produces the same results ashealpy.get_interp_val()
.Thank you to Eric Hivon for identifying the issue.