-
Notifications
You must be signed in to change notification settings - Fork 13
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
replace healpy
with cdshealpix
#92
base: main
Are you sure you want to change the base?
Conversation
(`cdshealpix` starts with a different pixel than `healpy` – otherwise they're the same)
They seem to be working on it (recent open PRs on the feedstock repo). |
Thanks for the heads-up. That might still take a while, though (last activity was 3 weeks ago). I'll try to work around this until those PRs are merged by using the wheels on PyPI (similar to what I did for |
Did you also consider https://github.com/astropy/astropy-healpix (BSD-licensed C wrapper) as an alternative? It has packages for all platforms on conda-forge. |
I had seen it, but didn't consider it, strangely. Edit: I don't think that is a C wrapper, though, it uses a different codebase ( Both that and |
The story of the Healpix license, and then healpy, is very long. My understanding is that it will be impossible to change the healpy license. I would be very disappointed to use anything else to reach healpy users. People are usually very conservative and might be hesitant to use results from any other library. |
I agree, this is definitely not ideal. The the vast majority of the scientific python ecosystem uses permissive licenses so we should do the same, but if we use Note, however, that we were only ever using the functions from the If you truly need a |
It might be worth checking if the alternative implementations provide features available in healpy like basic interpolation and cell neighbors. We don't use those here yet I think but we might want to use it in the future (e.g., #8). I haven't checked it but if those alternative implementations are based on This also raises the question of having a plug-in system for adding 3rd-party DGGS (implementations)? |
we kind of already have this plugin system (see #43 (comment)), we just have to formalize it and maybe add an entrypoint (but I don't think the latter needs to be a priority) |
The interpolation in |
@jmdelouis has example of code doing spline on healpix, but looked most part is written by himself. |
It seems that by importing
healpy
xdggs
may be violating the license ofhealpy
(GPLv2+): as far as I can tell, all "strong" GPL licenses consider libraries dynamically linking – in python: importing – to other libraries as "derived" from the latter, and thus must also be GPL. The version of GPL that would allow importing in a non-GPL library is LGPL, but that's not whathealpy
chose as license.Since I really don't want to re-license
xdggs
to GPLv2+, this PR replaceshealpy
withcdshealpix-python
(BSD-3) andcdshealpix-rust
(Apache-2), both of which are compatible with our current license.This also allows us to run a windows CI, since
healpy
was the library that prevented us from supporting it (however, it seemscdshealpix
is still not available for macos arm onconda-forge
).cc @tinaok, @annefou, @benbovy, @allixender