Find moving objects in detection catalogs.

Installation via PyPI:
$ python -m pip install find-asteroids
Usage (docs/notebooks/search.ipynb):
usage: find-asteroids [-h] --catalog CATALOG [--psfs PSFS] --velocity VELOCITY
VELOCITY --angle ANGLE ANGLE --dx DX --num-results
NUM_RESULTS --results-dir RESULTS_DIR [--precompute]
[--gpu] [--gpu-kernels] [--device DEVICE]
[--output-format OUTPUT_FORMAT]
optional arguments:
-h, --help show this help message and exit
--catalog CATALOG The detection catalog to search. An astropy-readable
table containing at least 'ra', 'dec', and 'time'
columns (with units). (default: None)
--psfs PSFS An astropy-readable table containing a 'psf' column
(with units) that specifies the PSF-widths of the
images from which the detection catalog is derived. If
not provided, a value of 1 arcsec is assumed.
(default: None)
--velocity VELOCITY VELOCITY
The velocity range over which to search, in units of
deg/day. (default: None)
--angle ANGLE ANGLE The on-sky angles over which to search, in units of
deg. (default: None)
--dx DX Search bin-width, in units of the PSF-width. (default:
None)
--num-results NUM_RESULTS
Number of results to produce. (default: None)
--results-dir RESULTS_DIR
The directory into which to write results. (default:
None)
--precompute Precompute projected positions of detections for all
trial velocities (uses more memory, but may be
faster). (default: False)
--gpu Run the core-search components of the algorithm on
GPU. (default: False)
--gpu-kernels Run the entirety of the search algorithm on the GPU.
(default: False)
--device DEVICE The GPU device number to use. (default: -1)
--output-format OUTPUT_FORMAT
The astropy.table supported format for writing
results. (default: ecsv)
References:
- Stetzler, S. et al. (2025) An Efficient Shift-and-Stack Algorithm Applied to Detection Catalogs