A python package to build FITS images pipelines.
prose is a Python package to build pipelines dedicated to astronomical image processing, all based on pipy packages 📦. Beyond providing the blocks to do so, it features default pipelines to perform common tasks such as automated calibration, reduction and photometry.
Here is a quick example pipeline to characterize the point-spread-function (PSF) of an example image
from prose import Sequence, blocks
from prose.tutorials import example_image
import matplotlib.pyplot as plt
# getting the example image
image = example_image()
sequence = Sequence([
blocks.SegmentedPeaks(), # stars detection
blocks.Cutouts(size=21), # cutouts extraction
blocks.MedianPSF(), # PSF building
blocks.psf.Moffat2D(), # PSF modeling
])
sequence.run(image)
# plotting
image.show() # detected stars
image.plot_psf_model() # PSF model
While being run on a single image, a Sequence is designed to be run on list of images (paths) and provides the architecture to build powerful pipelines. For more details check Quickstart and What is a pipeline?
prose features default pipelines to perform common tasks like:
from prose.pipeline import Calibration, AperturePhotometry
destination = "reduced_folder"
reduction = Calibration(darks=[...], flats=[...])
reduction.run(images, destination)
photometry = AperturePhotometry(calib.images, calib.stack)
photometry.run(calib.phot)
However, the package is designed to avoid pre-implemented black-boxes, in favor of transparent pipelines. For a practical illustration of that, check our Photometry tutorial.
prose is written for python 3 and can be installed from pypi with:
pip install prose
To install it through conda (recommended, within a fresh environment):
conda install numpy scipy tensorflow netcdf4 numba
# then
pip install prose
clone the repo
git clone https://github.com/lgrcia/prose.git
install locally (if within conda, same environment setup as above)
pip install -e {path_to_repo}
We are interested in seeing how you use prose, as well as helping creating blocks you need. Do not hesitate to reach us out! ☎️