Ensure Python version in your environment is >=3.7
pip install shift-stack-moons
See the readthedocs page.
Increase signal-to-noise ratio on small moons around planets in multi-frame observations according to the expected position of the moon from JPL Horizons.
This image shows the utility of the software. Thirty images of Neptune from Keck's NIRC2 instrument, each separated by 1-2 minutes, have been shifted according to the orbit of Despina to increase the signal-to-noise of that moon. Despina appears as a point source, whereas all the other labeled moonlets appear as streaks. If you look closely, you can see the individual images that make up Proteus's streak. Neptune is a streak, too, but it's so overexposed you can't tell. The sidelobes of the PSF can be seen on Despina. I compared this stacked PSF to a calibration star PSF and the match is pretty close, so the shift-and-stack is quite accurate.
shift_and_stack.py scrapes the FITS header of input images for relevant information like the rotator angle, instrument angle, observation date and time, integration time, etc. The keywords are included in a .yaml file (data/kw_instrument.yaml) to (in theory) support ease-of-use for different fits header conventions.
However, this has only been tested for Keck's NIRC2 instrument. If you are using any instrument other than Keck NIRC2, you will need to make a .yaml file for your instrument.
See requirements.txt.
Note that the most recent (officially unreleased) version of Astropy-affiliated package image_registration is required, so it is installed directly from the GitHub page instead of from pypi.
The other dependencies should be included with a usual Python Anaconda install.
I welcome contributions! Please submit an issue first, explaining what you'd like to change/add. I'll comment on that, and then you can submit a PR when your improvement/addition is ready!
If you use this for research, please cite it using the DOI above. Please also cite Molter et al. (2023), Keck Near-Infrared Detections of Mab and Perdita, Icarus 405, 115697