Repository under construction.
1.0 release planned for late 2023.
A simple GLS periodogram for detection of periodic variable stats candidates. Possibly useful for other periodic brightness change detections (like search for rotation period in asteroids), however not tested for these purposes.
Application based on fnpeaks, with the goal of increasing performance, user-friendliness, and accuracy over its predecessor.
/include subdirectory does contain copy of niXman/yas serializer, fastfloat/fast_float float parser, (orlp/pdqsort)[https://github.com/orlp/pdqsort] sorting library, (jarro2783/cxxopts)[https://github.com/jarro2783/cxxopts] CLI arguments parser and a header-only variant of DarkoVeberic/LambertW.
git clone --depth=1 https://github.com/silkskier/glspeaks
cd glspeaks
cmake .
make
sudo make install
cd plots
make
sudo make install
rm -r ~/glspeaks
For version 1.0.0 and later PPA for x86-64 Debian-based systems will be available.
ICPX (Intel oneAPI C++ Compiler) is a recommended compiler choice due to measured significant performance advantage over alternatives, however, g++ with O3 optimization level can be used to reduce output binary size from ~ 500 kB to less than 200 kB at a cost of ~5% increase of execution time.
The program is designed to work with data stored on flash memory - on HDDs accessing data 'all over the place' due to the usage of OpenMP to parse the input may cause significant overhead.
As for now, the application is almost fully functional. Planned improvements include NFFT3 and conditional entropy-based algorithms available as an alternative for current batch mode and SyCL GPGPU implementation for 1.3 update (planned to be fully bottlenecked by CPU during data parsing, needs to solve the issue of limited static GPU memory, to be implemented efficiently). The stock FastChi algorithm implementation is not planned due to its underwhelming performance (~3 stars/second * core on Ryzen 5 4600H) with precision inferior to CE. Modified implementation is possible at future release. The current performance of recursive GLS is close to ~75 stars/second*core on the same hardware at the resolution set to 13 (which results in accuracy close to limitations of the algorithm).
- AstroPy - Python Library containing alternative implementations of all periodograms used in this application as well, as many other tools.
- VStar - Alternative GUI OpenSource application allowing for batch searches.
- UPSILoN - Automatic variable stars classifier based on the Random Forest model.
- Peransi - Proprietary GUI application allowing for analysis of variable stars' periodicity with many different periodograms included.
- FastChi$^{2}$ - Reasonably performant periodogram for batch searches (CLI only).
- PDM2 - Accurate low-performance periodogram.
- Plotypus - Not maintained Python library useful for finding periods as well as lightcurve generation.
- fnpeaks - a simple recursive Lomb-Scargle periodogram (CLI only)
- AstroPy's periodograms' implementations
- nfft.nfft_adjoint function from nfft Python package
- adjoint CUNFFT from CUNFFT library
- NFFT3.jl package
- B. Leroy - Fast calculation of the Lomb-Scargle periodogram using NFFTs
- jakevdp/nfftls Python package
- pynfftls Python package
- Matthew J. Graham at all - A comparison of period finding algorithms
- Deep Forward Thinking Random Forest ensemble learning method
- randomForest Go machine learning library
- GoLearn machine learning library
- Friedman, J. H. (1984) A variable span scatterplot smoother
- supersmoother Python package
- pdqsort library
- VkFFT library
- Kaixi Hou at all - bb_segsort algoruthm
- FINUFFT
- Sheng Shi, Runkai Yang and Haihang You - NFFT.jl
- Haitham Hassanieh, Piotr Indyk, Dina Katabi, Eric Price - Nearly Optimal Sparse Fourier Transform
- sFFT-4.0
- Sheng Shi, Runkai Yang, Haihang You - ATSFFT
- GPU-accelerated supersmoother
- KuiperVnStatistic
- GPU accelerated Conditional Entropy periodogram, Github repo