mangadap.util.pixelmask module¶
A class heirarchy for pixel masks.
 License:
 Copyright (c) 2015, SDSSIV/MaNGA Pipeline Group
 Licensed under BSD 3clause license  see LICENSE.rst
 Source location:
 $MANGADAP_DIR/python/mangadap/proc/pixelmask.py
 Imports and python version compliance:
from __future__ import division from __future__ import print_function from __future__ import absolute_import from __future__ import unicode_literals import sys import warnings if sys.version > '3': long = int import numpy import astropy.constants from .bitmask import BitMask from ..par.artifactdb import ArtifactDB from ..par.emissionlinedb import EmissionLineDB
 Class usage examples:
 Add examples
 Revision history:
 18 Apr 2016: Original implementation K. Westfall (KBW)30 Nov 2016: (KBW) Generalization of
PixelMask
and minor edits

class
mangadap.util.pixelmask.
PixelMask
[source]¶ Bases:
object
Base class for a general 1D or 2D pixel mask.

shape
¶ Shape of the array for the mask.
Type: tuple

_empty_mask
(x, ny=None)[source]¶ Return an empty mask with the correct shape.
Parameters:  x (numpy.ndarray) – Coordinate vector
 ny (int) – (Optional) Size of the second dimension. Default is that there is only one dimension.
Returns: Boolean mask of the correct shape.
Return type: numpy.ndarray

_mask_coordinate_ranges
(x, rng, ny=None)[source]¶ Flag any x coordinates between a set of range limits as True. The mask is repeated in the second dimension, if requested.
Parameters:  x (numpy.ndarray) – Coordinate vector
 rng (list, numpy.ndarray) – (List of) Coordinate ranges that should be masked.
 ny (int) – (Optional) Size of the second dimension. Default is that there is only one dimension.
Returns: Boolean mask of the correct shape.
Return type: numpy.ndarray


class
mangadap.util.pixelmask.
SpectralPixelMask
(artdb=None, emldb=None, waverange=None)[source]¶ Bases:
mangadap.util.pixelmask.PixelMask
Container that produces a mask for the stellar continuum based on a set of emission lines and artifacts.
Parameters:  artdb (
mangadap.proc.artifactdb.ArtifactDB
) – (Optional) Database with the list of artifacts to mask.  emldb (
mangadap.proc.emissionlinedb.EmissionLineDB
) – (Optional) Database with the list of emission lines to mask.  waverange (numpy.ndarray) – (Optional) Any pixels outside this wavelength range are masked.

artdb
¶ Database with the list of artifacts to mask.
Type: mangadap.proc.artifactdb.ArtifactDB

emldb
¶ Database with the list of emission lines to mask.
Type: mangadap.proc.emissionlinedb.EmissionLineDB

waverange
¶ Any pixels outside this wavelength range are masked.
Type: numpy.ndarray

_artifact_mask
(wave, nspec=None)[source]¶ Mask the pixels in the wavelength range(s) defined by the artifact database.
Parameters:  wave (numpy.ndarray) – Wavelength coordinate vector
 nspec (int) – (Optional) Number of spectra to mask. Default is just one.
Returns: Boolean mask of the correct shape.
Return type: numpy.ndarray

_check_eml_kin_argument
(kin)[source]¶ Check and return the correct kinematics vectors. If a single number is provided, the function returns the number repeated for each emission line.
Parameters: kin (float, list, numpy.ndarray) – An input set of kinematics to used by the mask.
Returns: A 1D float array of the correct shape with the kinematics
Return type: numpy.ndarray
Raises: ValueError
– Raised if the length of the kin array is not the same as the number of emission lines in
emldb
.

_emission_line_mask
(wave, nspec=None, velocity_offsets=0.0, sigma=250.0, nsigma=3.0)[source]¶ Mask the pixels in the wavelength range(s) defined by the emissionline database that has been adjusted by a set of velocities and dispersions.
Currently, the velocity offsets are applied to all lines for each spectrum, whereas sigma and nsigma are applied to all spectra for each line.
Parameters:  wave (numpy.ndarray) – Wavelength coordinate vector
 nspec (int) – (Optional) Number of spectra to mask. Default is just one.
 velocity_offsets (float, numpy.ndarray) – (Optional) One or more velocity offsets to apply to the emissionline bands on a spectrumbyspectrum basis. Default is to apply no velocity offset.
 sigma (float, numpy.ndarray) – (Optional) One or more velocity dispersions to use for setting the width of the emissionline band on a linebyline basis. Default is a width based on a dispersion of 250 km/s.
 nsigma (float, numpy.ndarray) – (Optional) One or more numbers that sets the width of the band in units of the provided velocity dipsersions band on a linebyline basis.
Returns: Boolean mask of the correct shape.
Return type: numpy.ndarray

_get_emission_line_bands
(velocity_offsets=0.0, sigma=250.0, nsigma=3.0)[source]¶ Set the emissionline masks, using the emissionline parameters defined by
emldb
(seemangadap.par.emissionlinedb.EmissionLineDB
.All emission lines in the database, except for those marked with action==i are masked.
The center of the masked region is constructed using emldb[‘restwave’] and the provided velocity (velocity_offset). The velocity of any lines marked as sky (action==s) is always set to 0.
The width of the mask is set to be \(\pm n_\sigma \sigma\) about this center, where both \(n_\sigma\) and \(\sigma\) are parameters (nsigma, sigma). If sigma is None, emldb[‘sig’] is used for each line.
Parameters:  velocity_offsets (float, numpy.ndarray) – (Optional) The velocity offset to apply to each emissionline mask. Must be either a single number or one number per emission line. Assumed to be 0 if set to None.
 sigma (float, numpy.ndarray) – (Optional) Line velocity dispersions used to set the mask width. Must be either a single number or one number per emission line. If None, the dispersion provided by the emissionline database is used (emldb[‘sig’]).
 nsigma (float, numpy.ndarray) – (Optional) The halfwidth of the band in units of the provided velocity dipsersions. Must be either a single number or one number per emission line. Cannot be None.
Returns: A \(N_l \times 2\) array with the wavelength limits of the emissionline bands.
Return type: numpy.ndarray
Raises: ValueError
– Raised if nsigma is None, or any nsigma is not greater than 0; raised if the halfwidth of any mask is not greater than 0.

_waverange_mask
(wave, nspec=None)[source]¶ Mask the pixels not within the selected wavelength range.
Parameters:  wave (numpy.ndarray) – Wavelength coordinate vector
 nspec (int) – (Optional) Number of spectra to mask. Default is just one.
Returns: Boolean mask of the correct shape.
Return type: numpy.ndarray

bits
(bitmask, wave, nspec=None, mask=None, velocity_offsets=0.0, sigma=250.0, nsigma=3.0, waverange_flag='OUTSIDE_RANGE', art_flag='ARTIFACT', eml_flag='EML_REGION')[source]¶ Construct a bit mask that signifies pixels as outside the desired wavelength range, as being affected by an artifact, and being designated as an emissionline region. To simply flag the pixels as a binary masked or unmasked, use
boolean()
.Parameters:  bitmask (
mangadap.util.bitmask.BitMask
) – Bitmask used to flag pixels. The flags waverange_flag, art_flag, and eml_flag must be defined in the provided instance of BitMask.  wave (numpy.ndarray) – Wavelength coordinate vector
 nspec (int) – (Optional) Number of spectra to mask. Default is just one.
 mask (numpy.array) – (Optional) Baseline mask to add pixels masks. Should have data type that matches provided bitmask. Default is to start with all pixels unmasked.
 velocity_offsets (float, numpy.ndarray) – (Optional) One or more velocity offsets to apply to the emissionline bands on a spectrumbyspectrum basis. Default is to apply no velocity offset.
 sigma (float, numpy.ndarray) – (Optional) One or more velocity dispersions to use for setting the width of the emissionline band on a linebyline basis. Default is a width based on a dispersion of 250 km/s.
 nsigma (float, numpy.ndarray) – (Optional) One or more numbers that sets the width of the band in units of the provided velocity dipsersions band on a linebyline basis.
 waverange_flag (str) – (Optional) Bitmask name used to flag a pixel as outside of the desired wavelength range. Default is ‘OUTSIDE_RANGE’.
 art_flag (str) – (Optional) Bitmask name used to flag a pixel being affected by an artifact. Default is ‘ARTIFACT’.
 eml_flag (str) – (Optional) Bitmask name used to flag a pixel being within an emissionline region. Default is ‘EML_REGION’.
Returns: Bit mask of the correct shape.
Return type: numpy.ndarray
 bitmask (

boolean
(wave, nspec=None, velocity_offsets=0.0, sigma=250.0, nsigma=3.0)[source]¶ Construct the full boolean mask that includes the desired wavelength range, omitting artifacts, and omitting emission lines.
Parameters:  wave (numpy.ndarray) – Wavelength coordinate vector
 nspec (int) – (Optional) Number of spectra to mask. Default is just one.
 velocity_offsets (float, numpy.ndarray) – (Optional) One or more velocity offsets to apply to the emissionline bands on a spectrumbyspectrum basis. Default is to apply no velocity offset.
 sigma (float, numpy.ndarray) – (Optional) One or more velocity dispersions to use for setting the width of the emissionline band on a linebyline basis. Default is a width based on a dispersion of 250 km/s.
 nsigma (float, numpy.ndarray) – (Optional) One or more numbers that sets the width of the band in units of the provided velocity dipsersions band on a linebyline basis.
Returns: Boolean mask of the correct shape.
Return type: numpy.ndarray
 artdb (