Ejemplo n.º 1
0
def multi_caliBrate(fitstbl):
    det = 1
    spectrograph = load_kast_blue_masters(get_spectrograph=True)[0]
    # Par
    def_par = spectrograph.default_pypeit_par()
    # Grab a science file for configuration specific parameters
    for idx, row in enumerate(fitstbl):
        if 'science' in row['frametype']:
            sci_file = os.path.join(row['directory'], row['filename'])
            break
    par = spectrograph.config_specific_par(def_par, sci_file)
    #
    calib_par = par['calibrations']
    calib_par['badpix'] = False
    calib_par['biasframe']['useframe'] = 'overscan'


    redux_path = data_path('') if os.getenv('PYPEIT_DEV') is None \
                                else os.path.join(os.getenv('PYPEIT_DEV'), 'Cooked')

    multi_caliBrate = calibrations.MultiSlitCalibrations(fitstbl,
                                                         calib_par,
                                                         spectrograph,
                                                         redux_path=redux_path,
                                                         save_masters=False,
                                                         write_qa=False)
    # Find the first science row
    frame = fitstbl.find_frames('science', index=True)[0]
    # Set
    multi_caliBrate.set_config(frame, det, par=calib_par)
    return multi_caliBrate
Ejemplo n.º 2
0
def test_instantiate_from_one(shane_kast_blue_sci_files):
    """
    Run on a single science frame
    """
    #
    det = 1
    # Load calibrations
    pixelflat = load_kast_blue_masters(pixflat=True)[0]
    bpm = kast_blue.empty_bpm(shane_kast_blue_sci_files[0], det)
    # Process steps
    bias = None
    par = kast_par['scienceframe']['process']
    process_steps = procimg.init_process_steps(bias, par)
    process_steps += ['trim', 'apply_gain', 'orient']
    process_steps += ['flatten']
    process_steps += ['extras']
    process_steps += ['crmask']
    # Load
    rawImage = rawimage.RawImage(shane_kast_blue_sci_files[0], kast_blue, det)
    processRawImage = processrawimage.ProcessRawImage(rawImage,
                                                      kast_par['scienceframe']['process'])
    pypeItImage = processRawImage.process(process_steps, pixel_flat=pixelflat)
    # Do it
    sciImg = scienceimage.ScienceImage(kast_blue, det, kast_par['scienceframe']['process'],
                                       pypeItImage.image, pypeItImage.ivar, bpm)
Ejemplo n.º 3
0
def test_step_by_step(master_dir):
    # Masters
    spectrograph = load_spectrograph('shane_kast_blue')
    msarc, tslits_dict, mstrace = load_kast_blue_masters(aimg=True, tslits=True)
    # Instantiate
    master_key = 'A_1_01'
    parset = spectrograph.default_pypeit_par()
    par = parset['calibrations']['tilts']
    wavepar = parset['calibrations']['wavelengths']
    waveTilts = wavetilts.WaveTilts(msarc, tslits_dict, spectrograph, par, wavepar,
                                    det=1, master_key=master_key,
                                    master_dir=master_dir,reuse_masters=True)
    # Extract arcs
    arccen, maskslits = waveTilts.extract_arcs(waveTilts.slitcen, waveTilts.slitmask, msarc, waveTilts.inmask)
    assert arccen.shape == (2048,1)
    # Tilts in the slit
    slit = 0
    waveTilts.slitmask = pixels.tslits2mask(waveTilts.tslits_dict)
    thismask = waveTilts.slitmask == slit
    waveTilts.lines_spec, waveTilts.lines_spat = waveTilts.find_lines(arccen[:, slit], waveTilts.slitcen[:, slit], slit)

    trcdict = waveTilts.trace_tilts(waveTilts.msarc, waveTilts.lines_spec, waveTilts.lines_spat, thismask, slit)
    assert isinstance(trcdict, dict)
    # 2D Fit
    spat_order = waveTilts._parse_param(waveTilts.par, 'spat_order', slit)
    spec_order = waveTilts._parse_param(waveTilts.par, 'spec_order', slit)
    coeffs = waveTilts.fit_tilts(trcdict, thismask, waveTilts.slitcen[:, slit], spat_order, spec_order,slit, doqa=False)
    tilts = tracewave.fit2tilts(waveTilts.slitmask_science.shape, coeffs, waveTilts.par['func2d'])
    assert np.max(tilts) < 1.01
Ejemplo n.º 4
0
def test_instantiate(fitstbl):
    par = pypeitpar.PypeItPar()
    spectrograph = load_kast_blue_masters(get_spectrograph=True)[0]
    caliBrate = calibrations.MultiSlitCalibrations(fitstbl,
                                                   par['calibrations'],
                                                   spectrograph)
    print(caliBrate)
Ejemplo n.º 5
0
def test_build_me():
    # Masters
    spectrograph = load_spectrograph('shane_kast_blue')
    edges, tilts_dict, wv_calib = load_kast_blue_masters(edges=True,
                                                         tilts=True,
                                                         wvcalib=True)
    tslits_dict = edges.convert_to_tslits_dict()
    # Instantiate
    master_key = 'A_01_aa'
    master_dir = os.path.join(os.getenv('PYPEIT_DEV'), 'Cooked',
                              'Shane_Kast_blue')
    nslits = tslits_dict['nslits']
    maskslits = np.zeros(nslits, dtype=bool)
    det = 1
    wvImg = waveimage.WaveImage(tslits_dict,
                                tilts_dict['tilts'],
                                wv_calib,
                                spectrograph,
                                det,
                                maskslits,
                                master_key=master_key,
                                master_dir=master_dir,
                                reuse_masters=True)
    # Build
    wave = wvImg.build_wave()
    assert int(np.max(wave)) > 5510
Ejemplo n.º 6
0
def test_run(master_dir):
    # Masters
    spectrograph = load_spectrograph('shane_kast_blue')
    mstilt, edges = load_kast_blue_masters(mstilt=True, edges=True)
    # Instantiate
    #spectrograph.detector[0]['saturation'] = 60000.
    #spectrograph.detector[0]['nonlinear'] = 0.9
    par = pypeitpar.WaveTiltsPar()
    wavepar = pypeitpar.WavelengthSolutionPar()
    slits = edges.get_slits()
    buildwaveTilts = wavetilts.BuildWaveTilts(mstilt, slits, spectrograph, par, wavepar, det=1)
    # Run
    waveTilts = buildwaveTilts.run(doqa=False)
    assert isinstance(waveTilts.fit2tiltimg(slits.slit_img()), np.ndarray)
Ejemplo n.º 7
0
def test_from_list(shane_kast_blue_sci_files):
    """
    Run on two frames
    """
    det = 1
    # Load calibrations
    pixelflat = load_kast_blue_masters(pixflat=True)[0]
    bpm = kast_blue.empty_bpm(shane_kast_blue_sci_files[0], det)
    # Do it
    sciImg = scienceimage.build_from_file_list(
        kast_blue, det, kast_par['scienceframe']['process'], bpm,
        shane_kast_blue_sci_files, None, pixelflat)
    # Test
    assert isinstance(sciImg, scienceimage.ScienceImage)
Ejemplo n.º 8
0
def test_run():
    # Masters
    spectrograph, tslits_dict, tilts_dict, datasec_img \
                = load_kast_blue_masters(get_spectrograph=True, tslits=True, tilts=True,
                                         datasec=True)
    # Instantiate
    frametype = 'pixelflat'
    par = pypeitpar.FrameGroupPar(frametype)
    flatField = flatfield.FlatField(spectrograph, par, det=1, tilts_dict=tilts_dict,
                                    tslits_dict=tslits_dict.copy())

    # Use mstrace
    flatField.rawflatimg = tslits_dict['mstrace'].copy()
    mspixelflatnrm, msillumflat = flatField.run()
    assert np.isclose(np.median(mspixelflatnrm), 1.0)
Ejemplo n.º 9
0
def test_from_list(shane_kast_blue_sci_files):
    """
    Run on two frames
    """
    # Load calibrations
    tslits_dict, mstrace, tilts_dict, pixelflat = load_kast_blue_masters(
        tslits=True, tilts=True, pixflat=True)
    bpm = kast_blue.empty_bpm(shape=pixelflat.shape)
    # Do it
    det = 1
    sciImg = scienceimage.ScienceImage.from_file_list(
        kast_blue, det, kast_par['scienceframe']['process'], bpm,
        shane_kast_blue_sci_files, None, pixelflat)
    # Test
    assert sciImg.nfiles == 2
Ejemplo n.º 10
0
def test_run(master_dir):
    # Masters
    spectrograph = load_spectrograph('shane_kast_blue')
    msarc, tslits_dict, mstrace = load_kast_blue_masters(aimg=True, tslits=True)
    # Instantiate
    master_key = 'A_1_01'
    spectrograph.detector[0]['saturation'] = 60000.
    spectrograph.detector[0]['nonlinear'] = 0.9
    par = pypeitpar.WaveTiltsPar()
    wavepar = pypeitpar.WavelengthSolutionPar()
    waveTilts = wavetilts.WaveTilts(msarc, tslits_dict, spectrograph, par, wavepar,
                                    det=1, master_key=master_key,
                                    master_dir=master_dir, reuse_masters=True)
    # Run
    tilts_dict, mask = waveTilts.run(doqa=False)
    assert isinstance(tilts_dict['tilts'], np.ndarray)
Ejemplo n.º 11
0
def test_build_me():
    # Masters
    spectrograph, tslits_dict, tilts_dict, wv_calib \
            = load_kast_blue_masters(get_spectrograph=True, tslits=True, tilts=True, wvcalib=True)
    # Instantiate
    master_key = 'A_01_aa'
    root_path = data_path('MF') if os.getenv('PYPEIT_DEV') is None \
                    else os.path.join(os.getenv('PYPEIT_DEV'), 'Cooked', 'MF')
    master_dir = root_path+'_'+spectrograph.spectrograph
    nslits = tslits_dict['slit_left'].shape[1]
    maskslits = np.zeros(nslits, dtype=bool)
    wvImg = waveimage.WaveImage(tslits_dict, tilts_dict['tilts'], wv_calib, spectrograph, maskslits,
                                master_key=master_key, master_dir=master_dir, reuse_masters=True)
    # Build
    wave = wvImg._build_wave()
    assert int(np.max(wave)) > 5510
Ejemplo n.º 12
0
def test_run():
    # Masters
    spectrograph = load_spectrograph('shane_kast_blue')
    edges, tilts_dict = load_kast_blue_masters(edges=True, tilts=True)
    # Instantiate
    frametype = 'pixelflat'
    par = pypeitpar.FrameGroupPar(frametype)
    flatField = flatfield.FlatField(spectrograph,
                                    par,
                                    det=1,
                                    tilts_dict=tilts_dict,
                                    tslits_dict=edges.convert_to_tslits_dict())

    # Use the trace image
    flatField.rawflatimg = pypeitimage.PypeItImage(edges.img.copy())
    mspixelflatnrm, msillumflat = flatField.run()
    assert np.isclose(np.median(mspixelflatnrm), 1.0)
Ejemplo n.º 13
0
def test_instantiate_from_one(shane_kast_blue_sci_files):
    """
    Run on a single science frame
    """
    #
    det = 1
    # Load calibrations
    pixelflat = load_kast_blue_masters(pixflat=True)[0]
    bpm = kast_blue.empty_bpm(shane_kast_blue_sci_files[0], det)
    # Process steps -- Set in PypeItPar
    frame_par = kast_par['scienceframe']
    frame_par['process']['use_illumflat'] = False
    frame_par['process']['use_biasimage'] = False
    # Load
    rawImage = rawimage.RawImage(shane_kast_blue_sci_files[0], kast_blue, det)
    flatImages = flatfield.FlatImages(pixelflat_norm=pixelflat)
    pypeItImage = rawImage.process(frame_par['process'], flatimages=flatImages)
Ejemplo n.º 14
0
def test_from_list(shane_kast_blue_sci_files):
    """
    Run on two frames
    """
    det = 1
    # Load calibrations
    pixelflat = load_kast_blue_masters(pixflat=True)[0]
    bpm = kast_blue.empty_bpm(shane_kast_blue_sci_files[0], det)
    # Do it
    flatImages = flatfield.FlatImages(pixelflat_norm=pixelflat)
    kast_par['scienceframe']['process']['use_illumflat'] = False
    kast_par['scienceframe']['process']['use_biasimage'] = False
    sciImg = buildimage.buildimage_fromlist(kast_blue,
                                            det,
                                            kast_par['scienceframe'],
                                            shane_kast_blue_sci_files,
                                            bpm=bpm,
                                            bias=None,
                                            flatimages=flatImages)
    # Test
    assert isinstance(sciImg, pypeitimage.PypeItImage)