Resampling
The DAP is picky about the spectral sampling required to fit the spectra; the spectra must be geometrically sampled in wavelength (constant steps in, e.g., \(\log\lambda\). Ideally, the data-reduction procedures would provide this sampling directly for your data (even if this is a rather unnatural sampling of data from a spectrograph). However, if the spectra are, e.g., sampled linearly in wavelength, the DAP provides a utility to robustly resample the spectra.
Warning
The DAP is, in fact, very picky about the sampling. Even if you expect
the sampling is geometric, the DAP may throw an error if the wavelength
vector does not yield a constant geometric step to (nearly) numerical
accuracy. If that’s the case, please Submit an issue. The likely
solution will be to use Resample
to
resample the data anyway, or you can follow the riskier approach to fool the
DAP by remaking the wavelength vector so the step is constant to numerical
accuracy (e.g., using numpy.logspace
).
The example script test_resample.py
illustrates how to use Resample
to resample a
spectrum. This class is a generalization of the log_rebin
function provided
by Michele Cappellari in the pPXF package. The script uses the resampling
code to de-redshift example spectra from MaNGA, and compares the results to a
brute force approach and, if it is installed in your environment, spectres.
The script should result in identical results for the brute force, spectres,
and Resample
; however,
Resample
is ~100 times faster than the
brute-force approach and ~10 times faster than spectres.
For another practical example of how to use
Resample
, specifically for a full datacube, see
the resampling of a KCWI datacube here: Example: KCWI.