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

skip NaN in extent calculation #166

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

skip NaN in extent calculation #166

wants to merge 2 commits into from

Conversation

rafaqz
Copy link
Member

@rafaqz rafaqz commented Sep 25, 2024

This PR fixes the problem where NaNs win over other coordinates to make NaN extents that don't work anywhere. Or do work in DimensionalData.jl and because NaN comparisons always return false, it just selects the maximum possible extent.

To do this I switch extrema to _nan_free_extrema, which turns out to be faster anyway.

This PR will be coupled with a PR for Extents.union and Extents.intersection to behave the same way, and for DimensionalData.jl to check for NaN extents for the rare few that still get through.

@rafaqz rafaqz changed the title skip nan in extent calculation skip NaN in extent calculation Sep 25, 2024
@rafaqz rafaqz requested a review from evetion September 25, 2024 22:01
@rafaqz rafaqz requested a review from asinghvi17 September 25, 2024 22:04
test/test_wrappers.jl Outdated Show resolved Hide resolved
Co-authored-by: Anshul Singhvi <[email protected]>
@rafaqz
Copy link
Member Author

rafaqz commented Sep 25, 2024

The weird thing about this (that I just realised for Extents.jl as well) is that for (X=NaN, Y=1000.0) the 1000.0 will still effect the final Y extent. Maybe this is an extreme edge case and doesn't matter much, I'm not sure.

@rafaqz
Copy link
Member Author

rafaqz commented Nov 5, 2024

@evetion would be good to get a review and merge on this

@evetion
Copy link
Member

evetion commented Nov 22, 2024

LGTM, I haven't hit this specific use case yet. Can you document the behaviour in the docstring(test?) somewhere. All NaN points will still yield a NaN extent right?

@rafaqz
Copy link
Member Author

rafaqz commented Nov 22, 2024

For sure, a doc comment would help. And yes all NaN still returns NaN

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.

3 participants