continuum_models

class BaseContinuumModel[source]

Bases: object

The contract for BaseContinuumModel

stack_spectra(valid_spectra_list, flux_stacker)[source]

Stacks spectra in the observed and rest-frame. Observed frame stacking is performed over f/C. Rest-frame stacking is performed over C only.

Parameters:
  • valid_spectra_list (list(Spectrum)) – Valid spectra objects to iterate.

  • flux_stacker (FluxStacker) – Flux stacker object.

fit_continuum(spec)[source]

Fits the continuum for a single Spectrum. Should modify cont_params dictionary’s valid and cont keys at least. x, xcov, chi2 and dof keys should be set either here or in init_spectra().

Parameters:

spec (Spectrum) – Spectrum object to fit.

init_spectra(spectra_list)[source]

Initializes cont_params for a list of Spectrum objects. Specifically, set method key and any unused keys in x, xcov, chi2, dof.

Parameters:

spectra_list (list(Spectrum)) – List of Spectrum objects.

stacks_residual_flux()[source]

Return True if the model stacks residual fluxes in the rest-frame in stack_spectra() such as PiccaContinuumModel. Otherwise, return False.

Return type:

bool

class PiccaContinuumModel(meancont_interp, meanflux_interp, varlss_interp, eta_interp, cont_order, rfwave0, denom, minimizer)[source]

Bases: BaseContinuumModel

Picca continuum model class.

Parameters:
  • meancont_interp (FastCubic1DInterp) – Fast cubic spline object for the mean continuum.

  • meanflux_interp (FastLinear1DInterp) – Interpolator for mean flux. If fiducial is not set, this equals to 1.

  • varlss_interp (FastLinear1DInterp or FastCubic1DInterp) – Cubic spline for var_lss if fitting. Linear if from file.

  • eta_interp (FastCubic1DInterp) – Interpolator for eta. Returns one if fiducial var_lss is set.

  • cont_order (int) – Order of continuum polynomial from args.cont_order.

  • rfwave0 (float) – First rest-frame wavelength center for the mean continuum.

  • denom (float) – Denominator for the slope term in the continuum model.

  • minimizer (str) – iminuit or l_bfgs_b to select the minimizer function.

minimizer

Function that points to one of the minimizer options.

Type:

function

_continuum_costfn(x, wave, flux, ivar_sm, z_qso)[source]

Cost function to minimize for each quasar.

This is a modified chi2 where amplitude is also part of minimization. Cost of each arm is simply added to the total cost.

Parameters:
  • x (ndarray) – Polynomial coefficients for quasar diversity.

  • wave (dict(ndarray)) – Observed-frame wavelengths.

  • flux (dict(ndarray)) – Flux.

  • ivar_sm (dict(ndarray)) – Smooth inverse variance.

  • z_qso (float) – Quasar redshift.

Returns:

cost – Cost (modified chi2) for a given x.

Return type:

float

get_continuum_model(x, wave_rf_arm)[source]

Returns interpolated continuum model.

Parameters:
  • x (ndarray) – Polynomial coefficients for quasar diversity.

  • wave_rf_arm (ndarray) – Rest-frame wavelength per arm.

Returns:

cont – Continuum at wave_rf_arm values given x.

Return type:

ndarray

_iminuit_minimizer(spec, a0)[source]
_scipy_l_bfgs_b_minimizer(spec, a0)[source]
stack_spectra(valid_spectra_list, flux_stacker)[source]

Stacks spectra in the observed and rest-frame. Observed-frame and rest-frame stacking is performed over residuals f/C.

Parameters:
  • valid_spectra_list (list(Spectrum)) – Valid spectra objects to iterate.

  • flux_stacker (FluxStacker) – Flux stacker object.

fit_continuum(spec)[source]

Fits the continuum for a single Spectrum.

This function uses forestivar_sm in inverse variance, which must be smoothed beforehand. It also modifies cont_params dictionary’s valid, cont, x, xcov, chi2, dof keys. If the best-fitting continuum is negative at any point, the fit is invalidated. Chi2 is set separately without using the cost function. x key is the best-fitting parameter, and xcov is their inverse Hessian hess_inv given by scipy.optimize.minimize() using ‘L-BFGS-B’ method.

Parameters:

spec (Spectrum) – Spectrum object to fit.

init_spectra(spectra_list)[source]

Initializes cont_params for a list of Spectrum objects.

Parameters:

spectra_list (list(Spectrum)) – Spectrum objects to fit.

stacks_residual_flux()[source]

stack_spectra() stacks residual flux values f/C.

Returns:

True

Return type:

bool

class InputContinuumModel(input_dir, meanflux_interp, varlss_interp, eta_interp, nside=8)[source]

Bases: BaseContinuumModel

Input continuum model class.

Input continua should be in the rest frame with equal wavelength spacing. These continua are then interpolated using a cubic spline. Uses fiducials for mean flux and varlss interpolation.

The files are assumed to be organized by healpix nside=8 with nested ordering. For example, input-continuum-{nside}-{pixnum}.fits , where pixnum = healpy.ang2pix(nside, ra_deg, dec_deg, lonlat=True, nest=True) . Each file should have at least two extensions: FIBERMAP and CONTINUA.

  • FIBERMAP extension should have the typical DESI fibermap columns: TARGETID, Z, RA, DEC, PROGRAM, SURVEY. Each TARGETID should occur once.

  • CONTINUA extention should be an ImageHDU and have the quasar continua in the same order of TARGETID s in FIBERMAP. Its header should declare the initial rest-frame wavelength by WAVE1 key and the rest-frame wavelength step by DWAVE key. The data should be in (nqso, nwave) shape.

Parameters:
  • input_dir (str) – Input directory for all input-continuum FITS files.

  • meanflux_interp (FastLinear1DInterp) – Interpolator for mean flux. If fiducial is not set, this equals to 1.

  • varlss_interp (FastLinear1DInterp or FastCubic1DInterp) – Cubic spline for var_lss if fitting. Linear if from file.

  • eta_interp (FastCubic1DInterp) – Interpolator for eta.

  • nside (int, default: 8) – Healpy nside.

_read_continua_one_file(pixnum, targetids)[source]

Reads one input continuum file.

Parameters:
  • pixnum (int) – Healpix number

  • targetids (ndarray) – TARGETIDs in this healpix

Returns:

  • wave_rf_1 (float) – First wavelength in the rest frame.

  • dwave_rf (float) – Rest-frame wavelength step

  • common_targetids (ndarray) – TARGETIDs that are found in the file.

  • continua (ndarray) – 2D array of shape (common_targetids.size, nwave)

Raises:
  • Exception – If the number of quasars in FIBERMAP and CONTINUA extension do not match.

  • RuntimeWarning – If the file cannot be read. In this case, all objects are assumed to have invalid continuum.

_read_continua(spectra_list)[source]

Reads and sets input continuum for all elements in spectra_list. If a TARGETID is not found in its expected file, its continuum will be set to invalid.

If found, qsonic.spectrum.Spectrum.cont_params dictionary gains the following:

cont_params['valid'] = True
cont_params['input_w1'] (float): First rest-frame wavelength
cont_params['input_dwave'] (float): Rest-frame wavelength spacing
cont_params['input_data'] (ndarray): Input continuum
Parameters:

spectra_list (list(Spectrum)) – Spectrum objects.

fit_continuum(spec)[source]

Input continuum reduction. Uses fiducials for mean flux and varlss interpolation. Continuum is interpolated using a cubic spline.

Parameters:

spec (Spectrum) – Spectrum object to add true continuum.

init_spectra(spectra_list)[source]

Reads input continuum. Initializes cont_params for a list of Spectrum objects.

Parameters:

spectra_list (list(Spectrum)) – Spectrum objects.

stacks_residual_flux()[source]

stack_spectra() stacks actual continuum values.

Returns:

False

Return type:

bool

stack_spectra(valid_spectra_list, flux_stacker)

Stacks spectra in the observed and rest-frame. Observed frame stacking is performed over f/C. Rest-frame stacking is performed over C only.

Parameters:
  • valid_spectra_list (list(Spectrum)) – Valid spectra objects to iterate.

  • flux_stacker (FluxStacker) – Flux stacker object.

class TrueContinuumModel(meanflux_interp, varlss_interp)[source]

Bases: BaseContinuumModel

True continuum model class for mock analysis. Uses fiducials for mean flux and varlss interpolation. Continuum is interpolated using a cubic spline.

Parameters:
fit_continuum(spec)[source]

True continuum reduction. Uses fiducials for mean flux and varlss interpolation. Continuum is interpolated using a cubic spline.

Parameters:

spec (Spectrum) – Spectrum object to add true continuum.

init_spectra(spectra_list)[source]

Initializes cont_params for a list of Spectrum objects.

Parameters:

spectra_list (list(Spectrum)) – Spectrum objects.

stacks_residual_flux()[source]

stack_spectra() stacks actual continuum values.

Returns:

False

Return type:

bool

stack_spectra(valid_spectra_list, flux_stacker)

Stacks spectra in the observed and rest-frame. Observed frame stacking is performed over f/C. Rest-frame stacking is performed over C only.

Parameters:
  • valid_spectra_list (list(Spectrum)) – Valid spectra objects to iterate.

  • flux_stacker (FluxStacker) – Flux stacker object.