Example #1
0
def make_master_cals():

    # Create the list of biases:
    n_first = 332777
    n_last = 332877
    framen = range( n_first, n_last+1 )
    nframes = len( framen )
    ddir_bias = os.path.join( ddir, 'bias' )
    bias_frames = []
    for i in range( nframes ):
        bias_frames += [ '0000{0:.0f}-20130520-OSIRIS-OsirisBias.fits'.format( framen[i] ) ]
    bias_list_filename = 'bias.lst'
    bias_list_filepath = os.path.join( adir, bias_list_filename )
    np.savetxt( bias_list_filepath, np.array( bias_frames, dtype=str ), fmt='%s' )
    # Generate the master bias:
    ddir_bias = os.path.join( ddir, 'bias' )
    reduction.median_combine_frames( bias_list_filepath, ddir_bias, 'mbias.fits', frame_type='bias', n_exts=N_EXTS )
    
    # Create the list of flats:
    n_first = 333651
    n_last = 333751
    framen = range( n_first, n_last+1 )
    nframes = len( framen )
    ddir_flat = os.path.join( ddir, 'flat' )
    flat_frames = []
    for i in range( nframes ):
        flat_frames += [ '0000{0:.0f}-20130520-OSIRIS-OsirisDomeFlat.fits'.format( framen[i] ) ]
    flat_list_filename = 'flat.lst'
    flat_list_filepath = os.path.join( adir, flat_list_filename )
    np.savetxt( flat_list_filepath, np.array( flat_frames, dtype=str ), fmt='%s' )
    # Generate the master flat:
    ddir_flat = os.path.join( ddir, 'flat' )
    reduction.median_combine_frames( flat_list_filepath, ddir_flat, 'mflat.fits', frame_type='flat', n_exts=N_EXTS )

    # Create the list of arcs:
    n_first = 333646
    n_last = 333647
    framen = range( n_first, n_last+1 )
    nframes = len( framen )
    ddir_arc = os.path.join( ddir, 'arc' )
    arc_frames = []
    for i in range( nframes ):
        arc_frames += [ '0000{0:.0f}-20130520-OSIRIS-OsirisCalibrationLamp.fits'.format( framen[i] ) ]
    arc_list_filename = 'arc.lst'
    arc_list_filepath = os.path.join( adir, arc_list_filename )
    np.savetxt( arc_list_filepath, np.array( arc_frames, dtype=str ), fmt='%s' )
    # Generate the master arc:
    ddir_arc = os.path.join( ddir, 'arc' )
    reduction.median_combine_frames( arc_list_filepath, ddir_arc, 'marc.fits', frame_type='arc', n_exts=N_EXTS )

    return None
Example #2
0
def make_master_cals(bias=True, flat=True, arc=True):

    # Create the list of biases:
    if bias == True:
        n_first = 407479
        n_last = 407528
        framen = range(n_first, n_last + 1)
        nframes = len(framen)
        ddir_bias = os.path.join(ddir, 'bias')
        bias_frames = []
        for i in range(nframes):
            bias_frames += [
                '0000{0:.0f}-20130728-OSIRIS-OsirisBias.fits'.format(framen[i])
            ]
        bias_list_filename = 'bias.lst'
        bias_list_filepath = os.path.join(adir, bias_list_filename)
        np.savetxt(bias_list_filepath,
                   np.array(bias_frames, dtype=str),
                   fmt='%s')
        # Generate the master bias:
        ddir_bias = os.path.join(ddir, 'bias')
        reduction.median_combine_frames(bias_list_filepath,
                                        ddir_bias,
                                        'mbias.fits',
                                        frame_type='bias',
                                        n_exts=N_EXTS)

    # Create the list of flats:
    if flat == True:
        n_first = 407531
        n_last = 407630
        framen = range(n_first, n_last + 1)
        nframes = len(framen)
        ddir_flat = os.path.join(ddir, 'flat')
        flat_frames = []
        for i in range(nframes):
            flat_frames += [
                '0000{0:.0f}-20130728-OSIRIS-OsirisSpectralFlat.fits'.format(
                    framen[i])
            ]
        flat_list_filename = 'flat.lst'
        flat_list_filepath = os.path.join(adir, flat_list_filename)
        np.savetxt(flat_list_filepath,
                   np.array(flat_frames, dtype=str),
                   fmt='%s')
        # Generate the master flat:
        ddir_flat = os.path.join(ddir, 'flat')
        reduction.median_combine_frames(flat_list_filepath,
                                        ddir_flat,
                                        'mflat.fits',
                                        frame_type='flat',
                                        n_exts=N_EXTS)

    # Create the list of HgAr arcs:
    if arc == True:
        framens = [407634]
        ddir_arc = os.path.join(ddir, 'arc')
        arc_frames = []
        for i in framens:
            arc_frames += [
                '0000{0:.0f}-20130728-OSIRIS-OsirisCalibrationLamp.fits'.
                format(i)
            ]
        arc_list_filename = 'arc_HgAr.lst'
        arc_list_filepath = os.path.join(adir, arc_list_filename)
        np.savetxt(arc_list_filepath,
                   np.array(arc_frames, dtype=str),
                   fmt='%s')
        # Generate the master HgAr arc:
        ddir_arc = os.path.join(ddir, 'arc')
        reduction.median_combine_frames(arc_list_filepath,
                                        ddir_arc,
                                        'marc_HgAr.fits',
                                        frame_type='arc',
                                        n_exts=N_EXTS)

    # Create the list of Ne arcs:
    if arc == True:
        framens = [407636]
        ddir_arc = os.path.join(ddir, 'arc')
        arc_frames = []
        for i in framens:
            arc_frames += [
                '0000{0:.0f}-20130728-OSIRIS-OsirisCalibrationLamp.fits'.
                format(i)
            ]
        arc_list_filename = 'arc_Ne.lst'
        arc_list_filepath = os.path.join(adir, arc_list_filename)
        np.savetxt(arc_list_filepath,
                   np.array(arc_frames, dtype=str),
                   fmt='%s')
        # Generate the master Ne arc:
        ddir_arc = os.path.join(ddir, 'arc')
        reduction.median_combine_frames(arc_list_filepath,
                                        ddir_arc,
                                        'marc_Ne.fits',
                                        frame_type='arc',
                                        n_exts=N_EXTS)

    return None
Example #3
0
def make_master_cals( night='' ):
    """
    This is a fairly bloated routine for LIRIS, mainly because there are dim and
    bright frames, and two different arc lamps (Ar and Xe), both taken at start
    and end of the night.
    """
    

    adir_full = os.path.join( ADIR, night )
    raw_ddir_full = os.path.join( RAW_DDIR, '{0}/raw'.format( night ) )
    cal_ddir_full = os.path.join( CAL_DDIR, night )
    ddir_dark = os.path.join( cal_ddir_full, 'dark' )
    ddir_flat = os.path.join( cal_ddir_full, 'flat' )

    # Create the list of darks:
    if night=='20130517':

        # Darks:
        dark_framen = range( 1907393, 1907432+1 ) # 45sec
        ndark = len( dark_framen )
        dark_frames = []
        for i in range( ndark ):
            dark_frames += [ 'r{0:.0f}.fit'.format( dark_framen[i] ) ]
        dark_list_filename = 'dark.lst'
        mdark_filename = 'mdark.fit'

        # Flats

        flat_1arcsec_dim_framen = range( 1906407, 1906456+1 )
        flat_1arcsec_dim_list_filename = 'domeflat_1arcsec_dim.lst'
        mflat_1arcsec_dim_filename = 'mdomeflat_1arcsec_dim.fit'
        nflat = len( flat_1arcsec_dim_framen )
        flat_1arcsec_dim_frames = []
        for i in range( nflat ):
            flat_1arcsec_dim_frames += [ 'r{0:.0f}.fit'.format( flat_1arcsec_dim_framen[i] ) ]

        flat_1arcsec_bri_framen = range( 1906307, 1906406+1 )
        flat_1arcsec_bri_list_filename = 'domeflat_1arcsec_bri.lst'
        mflat_1arcsec_bri_filename = 'mdomeflat_1arcsec_bri.fit'
        nflat = len( flat_1arcsec_bri_framen )
        flat_1arcsec_bri_frames = []
        for i in range( nflat ):
            flat_1arcsec_bri_frames += [ 'r{0:.0f}.fit'.format( flat_1arcsec_bri_framen[i] ) ]

        flat_10arcsec_dim_framen = range( 1906257, 1906306+1 )
        flat_10arcsec_dim_list_filename = 'domeflat_10arcsec_dim.lst'
        mflat_10arcsec_dim_filename = 'mdomeflat_10arcsec_dim.fit'
        nflat = len( flat_10arcsec_dim_framen )
        flat_10arcsec_dim_frames = []
        for i in range( nflat ):
            flat_10arcsec_dim_frames += [ 'r{0:.0f}.fit'.format( flat_10arcsec_dim_framen[i] ) ]

        flat_10arcsec_bri_framen = range( 1906207, 1906256+1 )
        flat_10arcsec_bri_list_filename = 'domeflat_10arcsec_bri.lst'
        mflat_10arcsec_bri_filename = 'mdomeflat_10arcsec_bri.fit'
        nflat = len( flat_10arcsec_bri_framen )
        flat_10arcsec_bri_frames = []
        for i in range( nflat ):
            flat_10arcsec_bri_frames += [ 'r{0:.0f}.fit'.format( flat_10arcsec_bri_framen[i] ) ]

        # Argon arcs start of night:
        arc_Ar1_dim_framen = range( 1906856, 1906857+1 )
        arc_Ar1_dim_list_filename = 'arc_Ar1_dim.lst'
        marc_Ar1_dim_filename = 'marc_Ar1_dim.fit'
        narc = len( arc_Ar1_dim_framen )
        arc_Ar1_dim_frames = []
        for i in range( narc ):
            arc_Ar1_dim_frames += [ 'r{0:.0f}.fit'.format( arc_Ar1_dim_framen[i] ) ]
        arc_Ar1_bri_framen = range( 1906858, 1906859+1 )
        arc_Ar1_bri_list_filename = 'arc_Ar1_bri.lst'
        marc_Ar1_bri_filename = 'marc_Ar1_bri.fit'
        narc = len( arc_Ar1_bri_framen )
        arc_Ar1_bri_frames = []
        for i in range( narc ):
            arc_Ar1_bri_frames += [ 'r{0:.0f}.fit'.format( arc_Ar1_bri_framen[i] ) ]

        # Argon arcs end of night:
        arc_Ar2_dim_framen = range( 1907383, 1907384+1 )
        arc_Ar2_dim_list_filename = 'arc_Ar2_dim.lst'
        marc_Ar2_dim_filename = 'marc_Ar2_dim.fit'
        narc = len( arc_Ar2_dim_framen )
        arc_Ar2_dim_frames = []
        for i in range( narc ):
            arc_Ar2_dim_frames += [ 'r{0:.0f}.fit'.format( arc_Ar2_dim_framen[i] ) ]
        arc_Ar2_bri_framen = range( 1907385, 1907386+1 )
        arc_Ar2_bri_list_filename = 'arc_Ar2_bri.lst'
        marc_Ar2_bri_filename = 'marc_Ar2_bri.fit'
        narc = len( arc_Ar2_bri_framen )
        arc_Ar2_bri_frames = []
        for i in range( narc ):
            arc_Ar2_bri_frames += [ 'r{0:.0f}.fit'.format( arc_Ar2_bri_framen[i] ) ]

        # Xenon arcs start of night:
        arc_Xe1_dim_framen = range( 1906860, 1906861+1 )
        arc_Xe1_dim_list_filename = 'arc_Xe1_dim.lst'
        marc_Xe1_dim_filename = 'marc_Xe1_dim.fit'
        narc = len( arc_Xe1_dim_framen )
        arc_Xe1_dim_frames = []
        for i in range( narc ):
            arc_Xe1_dim_frames += [ 'r{0:.0f}.fit'.format( arc_Xe1_dim_framen[i] ) ]
        arc_Xe1_bri_framen = range( 1906862, 1906863+1 )
        arc_Xe1_bri_list_filename = 'arc_Xe1_bri.lst'
        marc_Xe1_bri_filename = 'marc_Xe1_bri.fit'
        narc = len( arc_Xe1_bri_framen )
        arc_Xe1_bri_frames = []
        for i in range( narc ):
            arc_Xe1_bri_frames += [ 'r{0:.0f}.fit'.format( arc_Xe1_bri_framen[i] ) ]

        # Xenon arcs end of night:
        arc_Xe2_dim_framen = range( 1907388, 1907389+1 )
        arc_Xe2_dim_list_filename = 'arc_Xe2_dim.lst'
        marc_Xe2_dim_filename = 'marc_Xe2_dim.fit'
        narc = len( arc_Xe2_dim_framen )
        arc_Xe2_dim_frames = []
        for i in range( narc ):
            arc_Xe2_dim_frames += [ 'r{0:.0f}.fit'.format( arc_Xe2_dim_framen[i] ) ]
        arc_Xe2_bri_framen = range( 1907390, 1907391+1 )
        arc_Xe2_bri_list_filename = 'arc_Xe2_bri.lst'
        marc_Xe2_bri_filename = 'marc_Xe2_bri.fit'
        narc = len( arc_Xe2_bri_framen )
        arc_Xe2_bri_frames = []
        for i in range( narc ):
            arc_Xe2_bri_frames += [ 'r{0:.0f}.fit'.format( arc_Xe2_bri_framen[i] ) ]

    elif night=='':
        pdb.set_trace()#todo
    elif night=='':
        pdb.set_trace()#todo
    else:
        pdb.set_trace() # not recognised

    # Create master dark:
    dark_list_filepath = os.path.join( adir_full, dark_list_filename )
    np.savetxt( dark_list_filepath, np.array( dark_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( dark_list_filepath, raw_ddir_full, ddir_dark, \
                                     mdark_filename, frame_type='dark', n_exts=N_EXTS )

    # Create master dim flat with 1 arcsec slit:
    flat_1arcsec_dim_list_filepath = os.path.join( adir_full, flat_1arcsec_dim_list_filename )
    np.savetxt( flat_1arcsec_dim_list_filepath, np.array( flat_1arcsec_dim_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( flat_1arcsec_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     mflat_1arcsec_dim_filename, frame_type='dflatdim', n_exts=N_EXTS )

    # Create master bright flat with 1 arcsec slit:
    flat_1arcsec_bri_list_filepath = os.path.join( adir_full, flat_1arcsec_bri_list_filename )
    np.savetxt( flat_1arcsec_bri_list_filepath, np.array( flat_1arcsec_bri_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( flat_1arcsec_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     mflat_1arcsec_bri_filename, frame_type='dflatbri', n_exts=N_EXTS )

    # Create master dim flat with 10 arcsec slit:
    flat_10arcsec_dim_list_filepath = os.path.join( adir_full, flat_10arcsec_dim_list_filename )
    np.savetxt( flat_10arcsec_dim_list_filepath, np.array( flat_10arcsec_dim_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( flat_10arcsec_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     mflat_10arcsec_dim_filename, frame_type='dflatdim', n_exts=N_EXTS )

    # Create master bright flat with 10 arcsec slit:
    flat_10arcsec_bri_list_filepath = os.path.join( adir_full, flat_10arcsec_bri_list_filename )
    np.savetxt( flat_10arcsec_bri_list_filepath, np.array( flat_10arcsec_bri_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( flat_10arcsec_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     mflat_10arcsec_bri_filename, frame_type='dflatbri', n_exts=N_EXTS )

    # Create master dim Ar arc from start of night:
    arc_Ar1_dim_list_filepath = os.path.join( adir_full, arc_Ar1_dim_list_filename )
    np.savetxt( arc_Ar1_dim_list_filepath, np.array( arc_Ar1_dim_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( arc_Ar1_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Ar1_dim_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master bright Ar arc from start of night:
    arc_Ar1_bri_list_filepath = os.path.join( adir_full, arc_Ar1_bri_list_filename )
    np.savetxt( arc_Ar1_bri_list_filepath, np.array( arc_Ar1_bri_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( arc_Ar1_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Ar1_bri_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master dim Ar arc from end of night:
    arc_Ar2_dim_list_filepath = os.path.join( adir_full, arc_Ar2_dim_list_filename )
    np.savetxt( arc_Ar2_dim_list_filepath, np.array( arc_Ar2_dim_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( arc_Ar2_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Ar2_dim_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master bright Ar arc from end of night:
    arc_Ar2_bri_list_filepath = os.path.join( adir_full, arc_Ar2_bri_list_filename )
    np.savetxt( arc_Ar2_bri_list_filepath, np.array( arc_Ar2_bri_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( arc_Ar2_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Ar2_bri_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master dim Xe arc from start of night:
    arc_Xe1_dim_list_filepath = os.path.join( adir_full, arc_Xe1_dim_list_filename )
    np.savetxt( arc_Xe1_dim_list_filepath, np.array( arc_Xe1_dim_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( arc_Xe1_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Xe1_dim_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master bright Xe arc from start of night:
    arc_Xe1_bri_list_filepath = os.path.join( adir_full, arc_Xe1_bri_list_filename )
    np.savetxt( arc_Xe1_bri_list_filepath, np.array( arc_Xe1_bri_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( arc_Xe1_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Xe1_bri_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master dim Xe arc from end of night:
    arc_Xe2_dim_list_filepath = os.path.join( adir_full, arc_Xe2_dim_list_filename )
    np.savetxt( arc_Xe2_dim_list_filepath, np.array( arc_Xe2_dim_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( arc_Xe2_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Xe2_dim_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master bright Xe arc from end of night:
    arc_Xe2_bri_list_filepath = os.path.join( adir_full, arc_Xe2_bri_list_filename )
    np.savetxt( arc_Xe2_bri_list_filepath, np.array( arc_Xe2_bri_frames, dtype=str ), fmt='%s' )
    reduction.median_combine_frames( arc_Xe2_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Xe2_bri_filename, frame_type='arc_ar', n_exts=N_EXTS )


    # Now create the final master files by subtracting the dims from the brights:

    dim_ifilepath = os.path.join( ddir_flat, mflat_10arcsec_dim_filename )
    bri_ifilepath = os.path.join( ddir_flat, mflat_10arcsec_bri_filename )
    ofilepath = os.path.join( ddir_flat, 'mdomeflat_10arcsec_final.fit' )
    reduction.subtract_dim_from_bright( dim_ifilepath, bri_ifilepath, ofilepath, frame_type='dflat', n_exts=N_EXTS )

    dim_ifilepath = os.path.join( ddir_flat, mflat_1arcsec_dim_filename )
    bri_ifilepath = os.path.join( ddir_flat, mflat_1arcsec_bri_filename )
    ofilepath = os.path.join( ddir_flat, 'mdomeflat_1arcsec_final.fit' )
    reduction.subtract_dim_from_bright( dim_ifilepath, bri_ifilepath, ofilepath, frame_type='dflat', n_exts=N_EXTS )

    dim_ifilepath = os.path.join( ddir_flat, marc_Ar1_dim_filename )
    bri_ifilepath = os.path.join( ddir_flat, marc_Ar1_bri_filename )
    ofilepath = os.path.join( ddir_flat, 'marc_Ar1_final.fit' )
    reduction.subtract_dim_from_bright( dim_ifilepath, bri_ifilepath, ofilepath, frame_type='arc_ar', n_exts=N_EXTS )

    dim_ifilepath = os.path.join( ddir_flat, marc_Ar2_dim_filename )
    bri_ifilepath = os.path.join( ddir_flat, marc_Ar2_bri_filename )
    ofilepath = os.path.join( ddir_flat, 'marc_Ar2_final.fit' )
    reduction.subtract_dim_from_bright( dim_ifilepath, bri_ifilepath, ofilepath, frame_type='arc_ar', n_exts=N_EXTS )

    return None
Example #4
0
def make_master_cals( bias=True, flat=True, arc=True ):

    # Create the list of biases:
    if bias==True:
        n_first = 407479
        n_last = 407528
        framen = range( n_first, n_last+1 )
        nframes = len( framen )
        ddir_bias = os.path.join( ddir, 'bias' )
        bias_frames = []
        for i in range( nframes ):
            bias_frames += [ '0000{0:.0f}-20130728-OSIRIS-OsirisBias.fits'.format( framen[i] ) ]
        bias_list_filename = 'bias.lst'
        bias_list_filepath = os.path.join( adir, bias_list_filename )
        np.savetxt( bias_list_filepath, np.array( bias_frames, dtype=str ), fmt='%s' )
        # Generate the master bias:
        ddir_bias = os.path.join( ddir, 'bias' )
        reduction.median_combine_frames( bias_list_filepath, ddir_bias, 'mbias.fits', frame_type='bias', n_exts=N_EXTS )
    
    # Create the list of flats:
    if flat==True:
        n_first = 407531
        n_last = 407630
        framen = range( n_first, n_last+1 )
        nframes = len( framen )
        ddir_flat = os.path.join( ddir, 'flat' )
        flat_frames = []
        for i in range( nframes ):
            flat_frames += [ '0000{0:.0f}-20130728-OSIRIS-OsirisSpectralFlat.fits'.format( framen[i] ) ]
        flat_list_filename = 'flat.lst'
        flat_list_filepath = os.path.join( adir, flat_list_filename )
        np.savetxt( flat_list_filepath, np.array( flat_frames, dtype=str ), fmt='%s' )
        # Generate the master flat:
        ddir_flat = os.path.join( ddir, 'flat' )
        reduction.median_combine_frames( flat_list_filepath, ddir_flat, 'mflat.fits', frame_type='flat', n_exts=N_EXTS )

    # Create the list of HgAr arcs:
    if arc==True:
        framens = [ 407634 ]
        ddir_arc = os.path.join( ddir, 'arc' )
        arc_frames = []
        for i in framens:
            arc_frames += [ '0000{0:.0f}-20130728-OSIRIS-OsirisCalibrationLamp.fits'.format( i ) ]
        arc_list_filename = 'arc_HgAr.lst'
        arc_list_filepath = os.path.join( adir, arc_list_filename )
        np.savetxt( arc_list_filepath, np.array( arc_frames, dtype=str ), fmt='%s' )
        # Generate the master HgAr arc:
        ddir_arc = os.path.join( ddir, 'arc' )
        reduction.median_combine_frames( arc_list_filepath, ddir_arc, 'marc_HgAr.fits', frame_type='arc', n_exts=N_EXTS )

    # Create the list of Ne arcs:
    if arc==True:
        framens = [ 407636 ]
        ddir_arc = os.path.join( ddir, 'arc' )
        arc_frames = []
        for i in framens:
            arc_frames += [ '0000{0:.0f}-20130728-OSIRIS-OsirisCalibrationLamp.fits'.format( i ) ]
        arc_list_filename = 'arc_Ne.lst'
        arc_list_filepath = os.path.join( adir, arc_list_filename )
        np.savetxt( arc_list_filepath, np.array( arc_frames, dtype=str ), fmt='%s' )
        # Generate the master Ne arc:
        ddir_arc = os.path.join( ddir, 'arc' )
        reduction.median_combine_frames( arc_list_filepath, ddir_arc, 'marc_Ne.fits', frame_type='arc', n_exts=N_EXTS )

    return None
Example #5
0
def make_master_cals(night=''):
    """
    This is a fairly bloated routine for LIRIS, mainly because there are dim and
    bright frames, and two different arc lamps (Ar and Xe), both taken at start
    and end of the night.
    """

    adir_full = os.path.join(ADIR, night)
    raw_ddir_full = os.path.join(RAW_DDIR, '{0}/raw'.format(night))
    cal_ddir_full = os.path.join(CAL_DDIR, night)
    ddir_dark = os.path.join(cal_ddir_full, 'dark')
    ddir_flat = os.path.join(cal_ddir_full, 'flat')

    # Create the list of darks:
    if night == '20130517':

        # Darks:
        dark_framen = range(1907393, 1907432 + 1)  # 45sec
        ndark = len(dark_framen)
        dark_frames = []
        for i in range(ndark):
            dark_frames += ['r{0:.0f}.fit'.format(dark_framen[i])]
        dark_list_filename = 'dark.lst'
        mdark_filename = 'mdark.fit'

        # Flats

        flat_1arcsec_dim_framen = range(1906407, 1906456 + 1)
        flat_1arcsec_dim_list_filename = 'domeflat_1arcsec_dim.lst'
        mflat_1arcsec_dim_filename = 'mdomeflat_1arcsec_dim.fit'
        nflat = len(flat_1arcsec_dim_framen)
        flat_1arcsec_dim_frames = []
        for i in range(nflat):
            flat_1arcsec_dim_frames += [
                'r{0:.0f}.fit'.format(flat_1arcsec_dim_framen[i])
            ]

        flat_1arcsec_bri_framen = range(1906307, 1906406 + 1)
        flat_1arcsec_bri_list_filename = 'domeflat_1arcsec_bri.lst'
        mflat_1arcsec_bri_filename = 'mdomeflat_1arcsec_bri.fit'
        nflat = len(flat_1arcsec_bri_framen)
        flat_1arcsec_bri_frames = []
        for i in range(nflat):
            flat_1arcsec_bri_frames += [
                'r{0:.0f}.fit'.format(flat_1arcsec_bri_framen[i])
            ]

        flat_10arcsec_dim_framen = range(1906257, 1906306 + 1)
        flat_10arcsec_dim_list_filename = 'domeflat_10arcsec_dim.lst'
        mflat_10arcsec_dim_filename = 'mdomeflat_10arcsec_dim.fit'
        nflat = len(flat_10arcsec_dim_framen)
        flat_10arcsec_dim_frames = []
        for i in range(nflat):
            flat_10arcsec_dim_frames += [
                'r{0:.0f}.fit'.format(flat_10arcsec_dim_framen[i])
            ]

        flat_10arcsec_bri_framen = range(1906207, 1906256 + 1)
        flat_10arcsec_bri_list_filename = 'domeflat_10arcsec_bri.lst'
        mflat_10arcsec_bri_filename = 'mdomeflat_10arcsec_bri.fit'
        nflat = len(flat_10arcsec_bri_framen)
        flat_10arcsec_bri_frames = []
        for i in range(nflat):
            flat_10arcsec_bri_frames += [
                'r{0:.0f}.fit'.format(flat_10arcsec_bri_framen[i])
            ]

        # Argon arcs start of night:
        arc_Ar1_dim_framen = range(1906856, 1906857 + 1)
        arc_Ar1_dim_list_filename = 'arc_Ar1_dim.lst'
        marc_Ar1_dim_filename = 'marc_Ar1_dim.fit'
        narc = len(arc_Ar1_dim_framen)
        arc_Ar1_dim_frames = []
        for i in range(narc):
            arc_Ar1_dim_frames += [
                'r{0:.0f}.fit'.format(arc_Ar1_dim_framen[i])
            ]
        arc_Ar1_bri_framen = range(1906858, 1906859 + 1)
        arc_Ar1_bri_list_filename = 'arc_Ar1_bri.lst'
        marc_Ar1_bri_filename = 'marc_Ar1_bri.fit'
        narc = len(arc_Ar1_bri_framen)
        arc_Ar1_bri_frames = []
        for i in range(narc):
            arc_Ar1_bri_frames += [
                'r{0:.0f}.fit'.format(arc_Ar1_bri_framen[i])
            ]

        # Argon arcs end of night:
        arc_Ar2_dim_framen = range(1907383, 1907384 + 1)
        arc_Ar2_dim_list_filename = 'arc_Ar2_dim.lst'
        marc_Ar2_dim_filename = 'marc_Ar2_dim.fit'
        narc = len(arc_Ar2_dim_framen)
        arc_Ar2_dim_frames = []
        for i in range(narc):
            arc_Ar2_dim_frames += [
                'r{0:.0f}.fit'.format(arc_Ar2_dim_framen[i])
            ]
        arc_Ar2_bri_framen = range(1907385, 1907386 + 1)
        arc_Ar2_bri_list_filename = 'arc_Ar2_bri.lst'
        marc_Ar2_bri_filename = 'marc_Ar2_bri.fit'
        narc = len(arc_Ar2_bri_framen)
        arc_Ar2_bri_frames = []
        for i in range(narc):
            arc_Ar2_bri_frames += [
                'r{0:.0f}.fit'.format(arc_Ar2_bri_framen[i])
            ]

        # Xenon arcs start of night:
        arc_Xe1_dim_framen = range(1906860, 1906861 + 1)
        arc_Xe1_dim_list_filename = 'arc_Xe1_dim.lst'
        marc_Xe1_dim_filename = 'marc_Xe1_dim.fit'
        narc = len(arc_Xe1_dim_framen)
        arc_Xe1_dim_frames = []
        for i in range(narc):
            arc_Xe1_dim_frames += [
                'r{0:.0f}.fit'.format(arc_Xe1_dim_framen[i])
            ]
        arc_Xe1_bri_framen = range(1906862, 1906863 + 1)
        arc_Xe1_bri_list_filename = 'arc_Xe1_bri.lst'
        marc_Xe1_bri_filename = 'marc_Xe1_bri.fit'
        narc = len(arc_Xe1_bri_framen)
        arc_Xe1_bri_frames = []
        for i in range(narc):
            arc_Xe1_bri_frames += [
                'r{0:.0f}.fit'.format(arc_Xe1_bri_framen[i])
            ]

        # Xenon arcs end of night:
        arc_Xe2_dim_framen = range(1907388, 1907389 + 1)
        arc_Xe2_dim_list_filename = 'arc_Xe2_dim.lst'
        marc_Xe2_dim_filename = 'marc_Xe2_dim.fit'
        narc = len(arc_Xe2_dim_framen)
        arc_Xe2_dim_frames = []
        for i in range(narc):
            arc_Xe2_dim_frames += [
                'r{0:.0f}.fit'.format(arc_Xe2_dim_framen[i])
            ]
        arc_Xe2_bri_framen = range(1907390, 1907391 + 1)
        arc_Xe2_bri_list_filename = 'arc_Xe2_bri.lst'
        marc_Xe2_bri_filename = 'marc_Xe2_bri.fit'
        narc = len(arc_Xe2_bri_framen)
        arc_Xe2_bri_frames = []
        for i in range(narc):
            arc_Xe2_bri_frames += [
                'r{0:.0f}.fit'.format(arc_Xe2_bri_framen[i])
            ]

    elif night == '':
        pdb.set_trace()  #todo
    elif night == '':
        pdb.set_trace()  #todo
    else:
        pdb.set_trace()  # not recognised

    # Create master dark:
    dark_list_filepath = os.path.join(adir_full, dark_list_filename)
    np.savetxt(dark_list_filepath, np.array(dark_frames, dtype=str), fmt='%s')
    reduction.median_combine_frames( dark_list_filepath, raw_ddir_full, ddir_dark, \
                                     mdark_filename, frame_type='dark', n_exts=N_EXTS )

    # Create master dim flat with 1 arcsec slit:
    flat_1arcsec_dim_list_filepath = os.path.join(
        adir_full, flat_1arcsec_dim_list_filename)
    np.savetxt(flat_1arcsec_dim_list_filepath,
               np.array(flat_1arcsec_dim_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( flat_1arcsec_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     mflat_1arcsec_dim_filename, frame_type='dflatdim', n_exts=N_EXTS )

    # Create master bright flat with 1 arcsec slit:
    flat_1arcsec_bri_list_filepath = os.path.join(
        adir_full, flat_1arcsec_bri_list_filename)
    np.savetxt(flat_1arcsec_bri_list_filepath,
               np.array(flat_1arcsec_bri_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( flat_1arcsec_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     mflat_1arcsec_bri_filename, frame_type='dflatbri', n_exts=N_EXTS )

    # Create master dim flat with 10 arcsec slit:
    flat_10arcsec_dim_list_filepath = os.path.join(
        adir_full, flat_10arcsec_dim_list_filename)
    np.savetxt(flat_10arcsec_dim_list_filepath,
               np.array(flat_10arcsec_dim_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( flat_10arcsec_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     mflat_10arcsec_dim_filename, frame_type='dflatdim', n_exts=N_EXTS )

    # Create master bright flat with 10 arcsec slit:
    flat_10arcsec_bri_list_filepath = os.path.join(
        adir_full, flat_10arcsec_bri_list_filename)
    np.savetxt(flat_10arcsec_bri_list_filepath,
               np.array(flat_10arcsec_bri_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( flat_10arcsec_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     mflat_10arcsec_bri_filename, frame_type='dflatbri', n_exts=N_EXTS )

    # Create master dim Ar arc from start of night:
    arc_Ar1_dim_list_filepath = os.path.join(adir_full,
                                             arc_Ar1_dim_list_filename)
    np.savetxt(arc_Ar1_dim_list_filepath,
               np.array(arc_Ar1_dim_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( arc_Ar1_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Ar1_dim_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master bright Ar arc from start of night:
    arc_Ar1_bri_list_filepath = os.path.join(adir_full,
                                             arc_Ar1_bri_list_filename)
    np.savetxt(arc_Ar1_bri_list_filepath,
               np.array(arc_Ar1_bri_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( arc_Ar1_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Ar1_bri_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master dim Ar arc from end of night:
    arc_Ar2_dim_list_filepath = os.path.join(adir_full,
                                             arc_Ar2_dim_list_filename)
    np.savetxt(arc_Ar2_dim_list_filepath,
               np.array(arc_Ar2_dim_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( arc_Ar2_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Ar2_dim_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master bright Ar arc from end of night:
    arc_Ar2_bri_list_filepath = os.path.join(adir_full,
                                             arc_Ar2_bri_list_filename)
    np.savetxt(arc_Ar2_bri_list_filepath,
               np.array(arc_Ar2_bri_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( arc_Ar2_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Ar2_bri_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master dim Xe arc from start of night:
    arc_Xe1_dim_list_filepath = os.path.join(adir_full,
                                             arc_Xe1_dim_list_filename)
    np.savetxt(arc_Xe1_dim_list_filepath,
               np.array(arc_Xe1_dim_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( arc_Xe1_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Xe1_dim_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master bright Xe arc from start of night:
    arc_Xe1_bri_list_filepath = os.path.join(adir_full,
                                             arc_Xe1_bri_list_filename)
    np.savetxt(arc_Xe1_bri_list_filepath,
               np.array(arc_Xe1_bri_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( arc_Xe1_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Xe1_bri_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master dim Xe arc from end of night:
    arc_Xe2_dim_list_filepath = os.path.join(adir_full,
                                             arc_Xe2_dim_list_filename)
    np.savetxt(arc_Xe2_dim_list_filepath,
               np.array(arc_Xe2_dim_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( arc_Xe2_dim_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Xe2_dim_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Create master bright Xe arc from end of night:
    arc_Xe2_bri_list_filepath = os.path.join(adir_full,
                                             arc_Xe2_bri_list_filename)
    np.savetxt(arc_Xe2_bri_list_filepath,
               np.array(arc_Xe2_bri_frames, dtype=str),
               fmt='%s')
    reduction.median_combine_frames( arc_Xe2_bri_list_filepath, raw_ddir_full, ddir_flat, \
                                     marc_Xe2_bri_filename, frame_type='arc_ar', n_exts=N_EXTS )

    # Now create the final master files by subtracting the dims from the brights:

    dim_ifilepath = os.path.join(ddir_flat, mflat_10arcsec_dim_filename)
    bri_ifilepath = os.path.join(ddir_flat, mflat_10arcsec_bri_filename)
    ofilepath = os.path.join(ddir_flat, 'mdomeflat_10arcsec_final.fit')
    reduction.subtract_dim_from_bright(dim_ifilepath,
                                       bri_ifilepath,
                                       ofilepath,
                                       frame_type='dflat',
                                       n_exts=N_EXTS)

    dim_ifilepath = os.path.join(ddir_flat, mflat_1arcsec_dim_filename)
    bri_ifilepath = os.path.join(ddir_flat, mflat_1arcsec_bri_filename)
    ofilepath = os.path.join(ddir_flat, 'mdomeflat_1arcsec_final.fit')
    reduction.subtract_dim_from_bright(dim_ifilepath,
                                       bri_ifilepath,
                                       ofilepath,
                                       frame_type='dflat',
                                       n_exts=N_EXTS)

    dim_ifilepath = os.path.join(ddir_flat, marc_Ar1_dim_filename)
    bri_ifilepath = os.path.join(ddir_flat, marc_Ar1_bri_filename)
    ofilepath = os.path.join(ddir_flat, 'marc_Ar1_final.fit')
    reduction.subtract_dim_from_bright(dim_ifilepath,
                                       bri_ifilepath,
                                       ofilepath,
                                       frame_type='arc_ar',
                                       n_exts=N_EXTS)

    dim_ifilepath = os.path.join(ddir_flat, marc_Ar2_dim_filename)
    bri_ifilepath = os.path.join(ddir_flat, marc_Ar2_bri_filename)
    ofilepath = os.path.join(ddir_flat, 'marc_Ar2_final.fit')
    reduction.subtract_dim_from_bright(dim_ifilepath,
                                       bri_ifilepath,
                                       ofilepath,
                                       frame_type='arc_ar',
                                       n_exts=N_EXTS)

    return None
Example #6
0
def make_master_cals():

    # Create the list of biases:
    n_first = 332777
    n_last = 332877
    framen = range(n_first, n_last + 1)
    nframes = len(framen)
    ddir_bias = os.path.join(ddir, 'bias')
    bias_frames = []
    for i in range(nframes):
        bias_frames += [
            '0000{0:.0f}-20130520-OSIRIS-OsirisBias.fits'.format(framen[i])
        ]
    bias_list_filename = 'bias.lst'
    bias_list_filepath = os.path.join(adir, bias_list_filename)
    np.savetxt(bias_list_filepath, np.array(bias_frames, dtype=str), fmt='%s')
    # Generate the master bias:
    ddir_bias = os.path.join(ddir, 'bias')
    reduction.median_combine_frames(bias_list_filepath,
                                    ddir_bias,
                                    'mbias.fits',
                                    frame_type='bias',
                                    n_exts=N_EXTS)

    # Create the list of flats:
    n_first = 333651
    n_last = 333751
    framen = range(n_first, n_last + 1)
    nframes = len(framen)
    ddir_flat = os.path.join(ddir, 'flat')
    flat_frames = []
    for i in range(nframes):
        flat_frames += [
            '0000{0:.0f}-20130520-OSIRIS-OsirisDomeFlat.fits'.format(framen[i])
        ]
    flat_list_filename = 'flat.lst'
    flat_list_filepath = os.path.join(adir, flat_list_filename)
    np.savetxt(flat_list_filepath, np.array(flat_frames, dtype=str), fmt='%s')
    # Generate the master flat:
    ddir_flat = os.path.join(ddir, 'flat')
    reduction.median_combine_frames(flat_list_filepath,
                                    ddir_flat,
                                    'mflat.fits',
                                    frame_type='flat',
                                    n_exts=N_EXTS)

    # Create the list of arcs:
    n_first = 333646
    n_last = 333647
    framen = range(n_first, n_last + 1)
    nframes = len(framen)
    ddir_arc = os.path.join(ddir, 'arc')
    arc_frames = []
    for i in range(nframes):
        arc_frames += [
            '0000{0:.0f}-20130520-OSIRIS-OsirisCalibrationLamp.fits'.format(
                framen[i])
        ]
    arc_list_filename = 'arc.lst'
    arc_list_filepath = os.path.join(adir, arc_list_filename)
    np.savetxt(arc_list_filepath, np.array(arc_frames, dtype=str), fmt='%s')
    # Generate the master arc:
    ddir_arc = os.path.join(ddir, 'arc')
    reduction.median_combine_frames(arc_list_filepath,
                                    ddir_arc,
                                    'marc.fits',
                                    frame_type='arc',
                                    n_exts=N_EXTS)

    return None