Source code for sambuca_core.spectra_operations

# -*- coding: utf-8 -*-
""" Contains functions for manipulating the (wavelength, value) tuples returned
by the spectra readers.
"""

from __future__ import absolute_import, division, print_function, unicode_literals
from builtins import *

import numpy as np


[docs]def spectra_find_common_wavelengths(*args): """ Finds the common subset of wavelengths for the given inputs. I could have called this intersect, but chose the name based on purpose. Args: *args (array-like): a vector of wavelength values, or a (wavelength, values) tuple. Returns: numpy.ndarray: The common subset of wavelengths, which can be used as an input to spectra_apply_wavelength_mask. """ if args: common = args[0] for a in args[1:]: common = np.intersect1d(common, a) return common else: raise ValueError("Invalid or insufficient arguments")
[docs]def spectra_apply_wavelength_mask(spectra, mask): """ Applies a wavelength mask to a spectra ((wavelengths, values) tuple). All values in the spectra that are not in the mask will be removed in the returned values. The input spectra is not modified. Args: spectra (tuple): the (wavelengths, values) spectra tuple. mask (array-like): The wavelength values that should be retained. Returns: The masked tuple of (wavelengths, values). """ boolean_mask = (spectra[0] >= mask.min()) & (spectra[0] <= mask.max()) return spectra[0][boolean_mask], spectra[1][boolean_mask]