chemicalc.utils

chemicalc.utils.find_nearest_val(array: Union[List[float], numpy.ndarray], value: float) → float

Find the nearest value in an array. Helpful for indexing spectra at a specific wavelength.

Parameters
  • array (Union[List[float],np.ndarray]) – list or array of floats to search

  • value (float) – value that you wish to find

Return float

entry in array that is nearest to value

chemicalc.utils.find_nearest_idx(array: Union[List[float], numpy.ndarray], value: float) → int

Find the index of the nearest value in an array. Helpful for indexing spectra at a specific wavelength.

Parameters
  • np.ndarray] array (Union[List[float],) – list or array of floats to search

  • value (float) – value that you wish to find

Return int

index of entry in array that is nearest to value

chemicalc.utils.generate_wavelength_template(start_wavelength: float, end_wavelength: float, resolution: float, res_sampling: float, truncate: bool = False) → numpy.ndarray

Generate wavelength array with fixed resolution and wavelength sampling.

Parameters
  • start_wavelength (float) – minimum wavelength of spectra to include

  • end_wavelength (float) – maximum wavelength of spectra to include

  • resolution (float) – resolving power of instrument (R = lambda / delta lambda)

  • res_sampling (float) – pixels per resolution element

  • truncate (bool) – If true, drop final pixel for which lambda > end_wavelength

Return np.ndarray

wavelength grid of given resolution between start and end wavelengths

chemicalc.utils.doppler_shift(wave: numpy.ndarray, spec: numpy.ndarray, rv: float, bounds_warning: bool = True) → Union[numpy.ndarray, Any]

Apply doppler shift to spectra and resample onto original wavelength grid

Warning: This function does not gracefully handle spectral regions with rest-frame wavelengths outside of the wavelength range. Presently, these are set to np.nan.

Parameters
  • wave (np.ndarray) – input wavelength array

  • spec (np.ndarray) – input spectra array

  • rv (float) – Radial Velocity (km/s)

  • bounds_warning (bool) – warn about boundary issues?

Return Union[np.ndarray,Any]

Doppler shifted spectra array

chemicalc.utils.convolve_spec(wave: numpy.ndarray, spec: numpy.ndarray, resolution: float, outwave: numpy.ndarray, res_in: Optional[float] = None) → Union[numpy.ndarray, Any]

Convolves spectrum to lower resolution and samples onto a new wavelength grid

Parameters
  • wave (np.ndarray) – input wavelength array

  • spec (np.ndarray) – input spectra array (may be 1 or 2 dimensional)

  • resolution (float) – Resolving power to convolve down to (R = lambda / delta lambda)

  • outwave (np.ndarray) – wavelength grid to sample onto

  • res_in (Optional[float]) – Resolving power of input spectra

Return Union[np.ndarray,Any]

convolved spectra array

chemicalc.utils.calc_gradient(spectra: numpy.ndarray, labels: pandas.core.frame.DataFrame, symmetric: bool = True, ref_included: bool = True) → pandas.core.frame.DataFrame

Calculates partial derivatives of spectra with respect to each label

Parameters
  • spectra (np.ndarray) – input spectra array

  • labels (pd.DataFrame) – input label array

  • symmetric (bool) – If true, calculates symmetric gradient about reference

  • ref_included (bool) – Is spectra[0] the reference spectrum?

Return pd.DataFrame

Partial derivatives of spectra wrt each label

chemicalc.utils.kpc_to_mu(d: Union[float, List[float], numpy.ndarray]) → Union[numpy.float64, numpy.ndarray, Any]

Converts kpc to distance modulus

Parameters

d (Union[float,List[float],np.ndarray]) – distance in kpc

Return Union[np.float64, np.ndarray, Any]

distance modulus

chemicalc.utils.mu_to_kpc(mu: Union[float, List[float], numpy.ndarray]) → Union[float, numpy.ndarray]

Converts distance modulus to kpc

Parameters

mu (Union[float,List[float],np.ndarray]) – distance modulus

Return Union[float, np.float64, np.ndarray]

distance in kpc

chemicalc.utils.decode_base64_dict(data)

Decode a base64 encoded array into a NumPy array. Lifted from bokeh.serialization

Parameters

data (dict) – encoded array data to decode. Data should have the format encoded by encode_base64_dict().

Return np.ndarray

decoded numpy array