Version 0.7 is a major overhaul with many improvements, please see WhatsNew.md for the highlights. If the update breaks your existing setup, you are very welcome to file an issue, so we can assist you.
A data reduction pipeline for echelle spectrographs (HARPS, UVES, XSHOOTER, CRIRES+, JWST/NIRISS, and more).
Based on the REDUCE package. See the papers:
- Piskunov & Valenti (2001) doi:10.1051/0004-6361:20020175
- Piskunov, Wehrhahn & Marquart (2021) doi:10.1051/0004-6361/202038293
# Using uv (recommended)
uv add pyreduce-astro
# Or pip
pip install pyreduce-astroFor development:
git clone https://github.com/ivh/PyReduce
cd PyReduce
uv sync# Download sample data
uv run reduce download UVES
# Run reduction
uv run reduce run UVES -t HD132205 --steps bias,flat,trace,science
# Or run individual steps
uv run reduce bias UVES -t HD132205
uv run reduce flat UVES -t HD132205Or use the Python API:
from pyreduce.pipeline import Pipeline
Pipeline.from_instrument(
instrument="UVES",
target="HD132205",
night="2010-04-01",
channel="middle",
).run()Control plotting with environment variables:
# Save plots to files (headless/CI)
PYREDUCE_PLOT=1 PYREDUCE_PLOT_DIR=/tmp/plots PYREDUCE_PLOT_SHOW=off uv run reduce run ...
# Show all plots at end (browser via webagg)
MPLBACKEND=webagg PYREDUCE_PLOT=1 PYREDUCE_PLOT_SHOW=defer uv run reduce run ...See How To for details.
Full documentation at ReadTheDocs.
PyReduce creates .fits files (standard FITS with binary table extension). Headers include original keywords plus PyReduce-specific ones prefixed with e_.