Metadata-Version: 2.1
Name: qsonic
Version: 0.8.2
Summary: Quasar continuum fitter for DESI
Author: Naim Goksel Karacayli
Author-email: ngokselk@gmail.com
License: MIT
Project-URL: Bug Reports, https://github.com/p-slash/qsonic/issues
Project-URL: Documentation, http://qsonic.readthedocs.io/
Project-URL: Source, https://github.com/p-slash/qsonic
Requires-Python: <3.11,>=3.7
License-File: LICENSE
Requires-Dist: numpy~=1.24.0
Requires-Dist: numba~=0.57.0
Requires-Dist: scipy~=1.10.0
Requires-Dist: astropy~=5.2.0
Requires-Dist: healpy~=1.16.0
Requires-Dist: fitsio~=1.1.0
Requires-Dist: iminuit~=2.18.0
Requires-Dist: mpi4py
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: bump2version; extra == "dev"
Provides-Extra: doc
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx-argparse; extra == "doc"
Requires-Dist: sphinx-rtd-theme; extra == "doc"
Provides-Extra: pub
Requires-Dist: build; extra == "pub"
Requires-Dist: twine; extra == "pub"

======
QSOnic
======

*Lightining-fast continuum fitting*

.. image:: https://img.shields.io/pypi/v/qsonic?color=blue
    :target: https://pypi.org/project/qsonic

.. image:: https://img.shields.io/badge/Source-qsonic-red
    :target: https://github.com/p-slash/qsonic

.. image:: https://github.com/p-slash/qsonic/actions/workflows/testing.yml/badge.svg
    :target: https://github.com/p-slash/qsonic/actions/workflows/testing.yml
    :alt: Tests Status

.. image:: https://readthedocs.org/projects/qsonic/badge/?version=latest
    :target: https://qsonic.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

**QSOnic** is an MPI-parallelized, highly optimized quasar continuum fitting package for DESI built on the same algorithm as `picca <https://github.com/igmhub/picca>`_, but *faster*. It also provides an efficient API to read DESI quasar spectra.

The key differences
-------------------
- Coadding of spectrograph arms can be performed after continuum fitting or disabled entirely.
- Continuum is multiplied by a fiducial mean flux when provided.
- You can pass fiducial var_lss (column **VAR_LSS**) and mean flux (column **MEANFLUX**) for observed wavelength **LAMBDA** in **STATS** extention of a FITS file. Wavelength should be linearly and equally spaced. This is the same format as rawio output from picca, except **VAR** column in picca is the variance on flux not deltas. We break away from that convention by explicitly requiring variance on deltas in a new column.
- If no fiducial is passed, we fit only for var_lss (no eta fitting by default). Eta fitting can be enabled, but is not recommended for Lya forest.
- Internal weights for continuum fitting and coadding are based on smoothed ``IVAR``, and output ``WEIGHT`` is based on this smoothed ivar. This smoothing can be turned off.
- Chi2 information as well as best fits are saved in continuum_chi2_catalog.fits. Chi2 is calculated using smooth ivar and var_lss, and does not subtract sum of ln(weights).

Similarities
------------
+ Delta files are the same. ``CONT`` column is mean flux times continuum even when fiducial mean flux is passed.
+ ``MEANSNR`` in header file and chi2 catalog is average of flux times square root of positive ivar values. Header values are per arm, but catalog values are the average over all arms.
+ Eta fitting does not rescale ``IVAR`` output. Pipeline noise will be modified with explicit calibration option.
