prose icon indicating copy to clipboard operation
prose copied to clipboard

Modular image processing pipelines with Python. Built for Astronomy.

prose

A python package to build FITS images pipelines.

github license paper documentation

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.

Example

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?

Default pipelines

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.

Installation

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

Helping us

We are interested in seeing how you use prose, as well as helping creating blocks you need. Do not hesitate to reach us out! ☎️