FIX: correct transform_vectors for angular coordinates - #2725
Open
greglucas wants to merge 1 commit into
Open
Conversation
…ystems Replaces the single-direction finite-difference approximation with a central difference (fallback to single-direction) and Jacobian rotation based on PROJ's get_factors to get the local distortion.
This was referenced Sep 3, 2026
|
Hi @greglucas, I checked this against the #2279 linearity case locally, and the transform is linear in the input components as expected. The #1179 near-pole PlateCarree case also gives the expected direction. One thing I noticed while testing: when I think this could just be: if self == src_proj:
return (np.array(u, dtype=np.float64, copy=True),
np.array(v, dtype=np.float64, copy=True)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Rationale
Uses central differencing, falling back to single-sided forward or backward if necessary, and the local Jacobian via pyproj.get_factors() as suggested in the notes of #1926. This removes the need for special cutouts for angular projections and different branches and generalizes the computations for any projection <-> projection pair.
closes #1179
Implications
A few more transforms due to central differencing, but performance was not significantly worse in my local experimentation.
Alternative to #2718