Bug fix in pairwise_linestring_intersection
#1069
Merged
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.
Description
This PR fixes a bug in
pairwise_linestring_intersection
, wherepoint_flags
is incorrectly used to remove points in points array due to leftover results from find_duplicate_points.Previously, the code incorrectly assumed that
point_flags
will always be written to prior tomerge_point_on_segment
kernel, however, this may not be true if the result segment array is empty, and the kernel launch could be evaded, leading to that the secondremove_if
operates on the "leftover" from the previouspoint_flag
ramnant.This fix is to only run segment cleanup kernels if there is at least one segment result in the output. This not only fixes #1067 , but also serve as an optimization to avoid unnecessary kernel launching.
It should be pointed out that the result from python isn't exactly 1-1 matching with geopandas, as geopandas returns
While cuspatial returns the result in 6 point rows with geometry offsets.
Checklist