Esempio n. 1
0
def test_addrm_slit():
    """ This tests the add and remove methods for user-supplied slit fussing. """

    # Check for files
    mstrace_file = os.path.join(os.getenv('PYPEIT_DEV'), 'Cooked', 'Trace',
                                'MasterTrace_KeckLRISr_400_8500_det1.fits')
    assert chk_for_files(mstrace_file)
    #tslits_dict, mstrace = traceslits.load_tslits(mstrace_file)
    # Instantiate
    _, traceSlits = instant_traceslits(mstrace_file)
    norig = traceSlits.tslits_dict['nslits']
    traceSlits.slit_left = traceSlits.tslits_dict['slit_left'].copy()
    traceSlits.slit_righ = traceSlits.tslits_dict['slit_righ'].copy()

    #  Add dummy slit
    #  y_spec, left edge, right edge on image
    add_user_slits = [[1024, 140, 200]]
    traceSlits.slit_left, traceSlits.slit_righ = trace_slits.add_user_edges(
        traceSlits.slit_left, traceSlits.slit_righ, add_user_slits)
    # Test
    assert traceSlits.nslit == (norig + 1)
    xcen0 = np.median(
        (traceSlits.slit_left[:, 0] + traceSlits.slit_righ[:, 0]) / 2.)
    assert np.abs(xcen0 - 170) < 3

    # Remove it
    rm_user_slits = [[1024, 170]]
    traceSlits.slit_left, traceSlits.slit_righ = trace_slits.rm_user_edges(
        traceSlits.slit_left, traceSlits.slit_righ, rm_user_slits)
    assert traceSlits.nslit == norig
Esempio n. 2
0
    def add_user_slits(self, user_slits):
        """
        Add user-defined slit(s)

        Wrapper to trace_slits.add_user_edges()

        self.slit_left and self.slit_righ modified in place

        Args:
            user_slits (list):

        """
        # Reset (if needed) -- For running after PyepIt took a first pass
        #self.reset_edgearr_ednum()
        # Add user input slits
        self.slit_left, self.slit_righ = trace_slits.add_user_edges(self.slit_left, self.slit_righ, user_slits)
        # Step
        self.steps.append(inspect.stack()[0][3])