pypeit.core.slitdesign_matching module

Module with slit - mask design matching routines.

Routines are primarily used for matching the traced slit edges to the predicted trace from the mask design/optical model.

TODO: These routines are specific for DEIMOS. Can they be generalized?

These routines are taken from the DEEP2 IDL-based pipeline.

pypeit.core.slitdesign_matching.best_offset(x_det, x_model, step=1, xlag_range=None)[source]

Script to determine the best offset between the slit edge predicted by the optical model and the one found in the image. This is used iteratively.

Taken from DEEP2/spec2d/pro/ discrete_correlate.pro x_det==x1, x_model==x2

Parameters
  • x_det (numpy.ndarray) – 1D array of slit edge spatial positions found from image

  • x_model (numpy.ndarray) – 1D array of slit edge spatial positions predicted by the optical model

  • step (int) – step size in pixels used to generate a list of possible offsets within the offsets_range

  • xlag_range (list, optional) – range of offsets in pixels allowed between the slit positions predicted by the mask design and the traced slit positions.

Returns

best offset between the slit edge predicted by the optical model and the one found in the image

Return type

float

pypeit.core.slitdesign_matching.discrete_correlate_match(x_det, x_model, step=1, xlag_range=[-50, 50])[source]

Script to find the the x_model values that match the traced edges.

This method uses best_offset() to determine the best offset between slit edge predicted by the optical model and the one found in the image, given a range of offsets. This is used iteratively.

Taken from in DEEP2/spec2d/pro/discrete_correlate_match.pro x_det==x1, x_model==x2_in

Parameters
  • x_det (numpy.ndarray) – 1D array of slit edge spatial positions found from image

  • x_model (numpy.ndarray) – 1D array of slit edge spatial positions predicted by the optical model

  • step (int) – step size in pixels used to generate a list of possible offsets within the offsets_range

  • xlag_range (list, optional) – range of offsets in pixels allowed between the slit positions predicted by the mask design and the traced slit positions.

Returns

array of indices for x_model, which defines the matches to x_det, i.e., x_det matches x_model[ind]

Return type

numpy.ndarray

pypeit.core.slitdesign_matching.plot_matches(edgetrace, ind, x_model, yref, slit_index, nspat=2048, duplicates=None, missing=None, edge=None)[source]

Plot the slit mask matching results.

Parameters
  • edgetrace (numpy.ndarray) – 2D array with the location of the slit edges for each spectral pixel as measured from the trace image. Shape is \((N_{\rm spec},N_{\rm trace})\).

  • ind (numpy.ndarray) – 1D array of indices for x_model, which defines the matches to x_det.

  • x_model (numpy.ndarray) – 1D array of slit edge spatial positions predicted by the optical model.

  • yref (float) – Reference pixel in the spec direction.

  • slit_index (numpy.ndarray) – 1D array of slit-mask design indices.

  • nspat (int, optional) – Spatial dimension of the detector, for plotting purpose.

  • duplicates (numpy.ndarray, optional) – 1D array of bool that flags which ind are duplicates.

  • missing (numpy.ndarray, optional) – 1D array of indices for x_model, which defines the missing traces, if any.

  • edge (str, optional) – String that indicates which edges are being plotted, i.e., left of right.

pypeit.core.slitdesign_matching.slit_match(x_det, x_model, step=1, xlag_range=[-50, 50], sigrej=3, print_matches=False, edge=None)[source]

Script that perform the slit edges matching.

This method uses discrete_correlate_match() to find the indices of x_model that match x_det.

Taken from DEEP2/spec2d/pro/deimos_slit_match.pro

Parameters
  • x_det (numpy.ndarray) – 1D array of slit edge spatial positions found from image.

  • x_model (numpy.ndarray) – 1D array of slit edge spatial positions predicted by the optical model.

  • step (int, optional) – Step size in pixels used to generate a list of possible offsets within the offsets_range.

  • xlag_range (list, optional) – Range of offsets in pixels allowed between the slit positions predicted by the mask design and the traced slit positions.

  • sigrej (float, optional) – Reject slit matches larger than this number of sigma in the match residuals.

  • print_matches (bool, optional) – Print the result of the matching.

  • edge (str, optional) – String that indicates which edges are being plotted, i.e., left of right. Ignored if print_matches is False.

Returns

  • ind (numpy.ndarray) – 1D array of indices for x_model, which defines the matches to x_det, i.e., x_det matches x_model[ind]

  • dupl (numpy.ndarray) – 1D array of bool that flags which ind are duplicates.

  • coeff (numpy.ndarray) – pypeitFit coefficients of the fitted relation between x_det and x_model[ind]

  • sigres (float) – RMS residual for the fitted relation between x_det and x_model[ind]