Spectral-Index Measurements
Analysis class: SpectralIndices
Method definition: SpectralIndicesDef
Reference root: $MANGA_SPECTRO_ANALYSIS/$MANGADRP_VER/$MANGADAP_VER/[PLATE]/[IFUDESIGN]/ref
Reference file: manga-[PLATE]-[IFUDESIGN]-[DRPQA_KEY]-[BIN_KEY]-[CONTINUUM_KEY]-[ELFIT_KEY]-[SPINDEX_KEY].fits.gz
Config files: $MANGADAP_DIR/mangadap/config/spectral_indices
Example config: indxen.ini
[default]
key = INDXEN
minimum_snr = 0.0
resolution_fwhm = -1
compute_sigma_correction = True
artifact_mask = BADSKY
absorption_indices = EXTINDX
bandhead_indices = BHBASIC
Important class dependencies:
AbsorptionIndexDB
: Generalized class that provides the detailed parameters for a set of absorption-line spectral indices.
BandheadIndexDB
: Generalized class that provides the detailed parameters for a set of bandhead (or “color”) spectral indices.
mangadap.proc.bandpassfilter
: Provides the core functions that perform the bandpass integrals.
Algorithm:
Read the artifact database to setup the
SpectralPixelMask
object based on theartifact_mask
config.Setup the
AbsorptionIndexDB
(usingabsorption_indices
config) andBandheadIndexDB
(usingbandhead_indices
config) databases with the indices to measure.Determine the binned spectra above the S/N limit set by the
minimum_snr
config.Mask binned spectra, ignoring pixels masked as
DONOTUSE
,IGNORED
,FLUXINVALID
, orFORESTAR
in DAPLOGCUBE
file.Get the best-fitting emission-line models from the
EmissionLineModel
object and subtract it from them from the data; keep track of where an emission-line model is and is not defined.Measure the indices using
measure_indices()
:
Compute flux per frequency, needed for some indices; i.e., convert spectra from \(F_\lambda\) to \(F_\nu\).
Isolate which indices use each definition (\(F_\lambda\) vs. \(F_\nu\))
Mask any “dummy” indices.
For each spectrum, redshift the band definition, measure the absorption-line indices using
AbsorptionLineIndices
, and the bandhead indices usingBandheadIndices
, and save the results usingsave_results()
.
Part of saving the results is to determine which indices were successfully measured. Only bands that are completely masked (or empty) are flagged as
NOVALUE
in the output maps. I also keep track of which bands are incomplete (only partially masked).Compute the velocity-dispersion corrections:
Get the best-fitting continuum model from the
StellarContinuumModel
, both with (continuum
) and without (continuum_dcnvlv
) the convolution with the best-fitting line-of-sight velocity distribution function (LOSVD) usingfill_to_match()
.Remeasure the indices on these two models (
indx
anddcnvlv_indx
, respectively) and the correction based on the result usingcalculate_dispersion_corrections()
For
mag
unit indices, the correction isdcnvlv_indx-indx
For
ang
unit indices, the correction isdcnvlv_indx/indx
Any index with a bad correction is flagged as
NOCORRECTION
.Construct spectral-index
BINID
map. Bin IDs are the same as for the binned spectra except that any bin that does not meet the S/N limit are given a spectral-index bin ID of -1.