Skip to content

FIX: use more robust signed-area check for ring orientation#2665

Open
greglucas wants to merge 1 commit intoSciTools:mainfrom
greglucas:fix/ring-orientation
Open

FIX: use more robust signed-area check for ring orientation#2665
greglucas wants to merge 1 commit intoSciTools:mainfrom
greglucas:fix/ring-orientation

Conversation

@greglucas
Copy link
Copy Markdown
Contributor

Self-intersecting rings may produce incorrect is_ccw results from shapely. We can implement the shoelace formula with numpy dot products to determine the net orientation ourselves which is more robust.

https://en.wikipedia.org/wiki/Shoelace_formula

@rcomer I thought this might help some of the other boundary attachment arcs (this is a separate issue unfortunately), so I had AI do a quick investigation for me and it came up with this as a solution which made sense to me. Since it didn't solve my other problems I figured I would break it out here into a separate PR. I didn't check against the original geometries, so it would probably be useful to look at those too and make sure this fixes them.

closes #2483

Self-intersecting rings may produce incorrect is_ccw results
from shapely. We can implement the shoelace formula with numpy
dot products to determine the orientation ourselves which is
more robust.
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.

contourf only drawing one level

1 participant