https://github.com/owlpinetech/healpix
A Go-lang implementation of the HEALPix projection and associated functionality
https://github.com/owlpinetech/healpix
healpix pixelization projection
Last synced: 5 months ago
JSON representation
A Go-lang implementation of the HEALPix projection and associated functionality
- Host: GitHub
- URL: https://github.com/owlpinetech/healpix
- Owner: owlpinetech
- License: mit
- Created: 2023-09-19T01:16:38.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-08-05T22:10:16.000Z (11 months ago)
- Last Synced: 2025-08-06T00:09:56.187Z (11 months ago)
- Topics: healpix, pixelization, projection
- Language: Go
- Homepage:
- Size: 75.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# healpix
A Go-lang implementation of the HEALPix projection and pixelization of a sphere. This package is **early stage** and not yet recommended for integration. However, features incorporated into the master branch generally have good test coverage.
The HEALPix pixelization is 'equal-area' for each pixel: a pixel at the equator of the sphere contains the same resolution of data as a pixel at the poles (unlike many pixelizations based on more common projections). The resolution increments as a scaled, squared power of 2, and this package supports spheres divided into up to 12*((2^29)^2) pixels, i.e. 29 different levels of resolution.
HEALPix supports two basic pixel numbering schemes:
1. **Nested** - useful for efficient querying of nearest neighbors for individual pixels
2. **Ring** - useful for efficient spherical harmonic computations
A third numbering scheme, **Nested Unique**, allows for the selection of pixels at different scales of resolution, allowing for 'sparse' HEALPix queries and data set representations in addition to the default 'dense' representation.
## Roadmap
- [x] - Querying nearest neighbors
- [x] - Support 'Nested Unique' pixel numbering (for multiresolution)
- [ ] - Support Cartesian 3-vector 'positions'
- [ ] - Querying discs
- [ ] - Querying polygons
- [ ] - Multiresolution pixel range sets
## References
The following prior works were studied carefully to aid the implementation of this package.
Gorski, et al. "HEALPix: A Framework for High-Resolution Discretization and Fast Analysis of Data Distributed on the Sphere" *The Astrophysical Journal*, 622:759–771, 2005 April 1. [Link](https://iopscience.iop.org/article/10.1086/427976/pdf)
I. Martinez-Castellanos, et al. "Multiresolution HEALPix Maps for Multiwavelength and Multimessenger Astronomy" *The Astronomical Journal*, vol. 63, no. 6, 2022 May 11. [Link](https://iopscience.iop.org/article/10.3847/1538-3881/ac6260#ajac6260s2)
Reinecke & Hivon. "Efficient data structures for masks on 2D grids" *Astronomy and Astrophysics*, vol. 580, 2015 August 19. [Link](https://www.aanda.org/articles/aa/full_html/2015/08/aa26549-15/aa26549-15.html#:~:text=Efficient%20data%20structures%20for%20masks%20on%202D%20grids,...%207%207.%20Generation%20from%20analytical%20shapes%20)