Beispiel #1
0
def make_sky():

    util.mkdir(sky_dir)

    ## CREATING A SKY

    ## IVBR pos 2
    sky_num = np.arange(43, 49 + 1)
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_IVBR.fits')

    ## BRIV pos 4
    sky_num = np.arange(37, 42 + 1)
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_BRIV.fits')

    return
Beispiel #2
0
def make_sky():

    util.mkdir(sky_dir)

    sky_num = np.arange(208, 217 + 1)
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky_60.fits')

    sky_num = np.arange(218, 220 + 1)
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky_150.fits')

    return
Beispiel #3
0
def make_sky():

    util.mkdir(sky_dir)

    ## COPY A SKY => use a dark
    # shutil.copyfile(root_dir + '../../20210724/sta/dark/dark_044_scan.fits', sky_dir + 'fld2_sky_tmp.fits')

    ## CREATING A SKY

    ## IVBR pos 2
    sky_num = np.arange(41, 47)
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_IVBR.fits')

    ## VBRI pos 3
    sky_num = np.arange(69, 74 + 1)
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_VBRI.fits')

    return
Beispiel #4
0
def make_dark():

    util.mkdir(sky_dir)

    ## COPY A SKY => use a dark
    # shutil.copyfile(root_dir + '../../20210724/sta/dark/dark_044_scan.fits', sky_dir + 'fld2_sky_tmp.fits')
    
    ## CREATING A SKY
    print("I quad flat (60)")
    dark_num = np.arange(81, 85+1)
    dark_frames = ['{0:s}dark_{1:03d}.fits'.format(dark_dir, ss) for ss in dark_num]
    scan_dark_frames = ['{0:s}dark_{1:03d}_scan.fits'.format(dark_dir, ss) for ss in dark_num]
    
    reduce_STA.treat_overscan(dark_frames)
    calib.makedark(scan_dark_frames, calib_dir + 'fld2_dark60_VBRI.fits')
    
    print("BVR quad flat (20)")
    dark_num = np.arange(76,80+1)
    dark_frames = ['{0:s}dark_{1:03d}.fits'.format(dark_dir, ss) for ss in dark_num]
    scan_dark_frames = ['{0:s}dark_{1:03d}_scan.fits'.format(dark_dir, ss) for ss in dark_num]
    
    reduce_STA.treat_overscan(dark_frames)
    calib.makedark(scan_dark_frames, calib_dir + 'fld2_dark20_VBRI.fits')
    
    return
Beispiel #5
0
def make_darks():
    root_dir = '/Users/jlu/GoogleDrive/Instruments/imaka/imaka/Commissioning/'
    root_dir += '2016-11 Observing/20161115/Focal_plane_images/obs_11152016/darks/'

    darks = glob.glob(root_dir + 'dark0*.fits')

    calib.makedark(darks[0:6], 'dark.fits')

    return
Beispiel #6
0
def make_sky():
    sky_dir = '/Users/jlu/data/imaka/2016_11_19/20161118/skies/binned/'
    sky_frames = [133, 145, 146, 163, 172, 179, 188]

    for ss in range(len(sky_frames)):
        sky_frames[ss] = '{0:s}sky_{1:03d}.fits'.format(
            sky_dir, sky_frames[ss])

    calib.makedark(sky_frames, 'pleiades_sky.fits')
Beispiel #7
0
def make_sky():
    util.mkdir(sky_dir)

    sky_num = np.arange(73, 82 + 1)
    sky_frames = [
        '{0:s}sky_{1:04d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(sky_frames, sky_dir + 'FLD2_30_sky.fits')

    return
Beispiel #8
0
def make_sky():

    util.mkdir(sky_dir)

    sky_num = np.arange(51, 60+1)
    sky_frames = ['{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num]
    reduce_STA.treat_overscan(sky_frames)
    scan_sky_frames = ['{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num]
    calib.makedark(scan_sky_frames, sky_dir+'orion_sky.fits')
    
    return
Beispiel #9
0
def make_sky():
    util.mkdir(sky_dir)

    sky_num = np.arange(154, 163+1)
    sky_frames = ['{0:s}sky_{1:04d}_o.fits'.format(data_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, sky_dir+'FLD2_sky.fits')

    sky_num = np.arange(189, 198+1)
    sky_frames = ['{0:s}sky_{1:04d}_o.fits'.format(data_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, sky_dir+'FLD2_2filt_sky.fits')
    
    return
Beispiel #10
0
def make_sky():

    sky_dir = '/Volumes/g/lu/data/imaka/2017_01_12/fli/Pleiades/'
    out_dir = '/Volumes/g/lu/data/imaka/2017_01_12/fli/reduce/sky/'

    sky_num = [
        41, 42, 43, 71, 72, 73, 116, 117, 118, 119, 147, 148, 149, 177, 178,
        179, 207, 208, 209, 243, 244, 245, 273, 274, 275, 303, 304, 305
    ]
    sky_frames = ['{0:s}sky{1:03d}.fits'.format(sky_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, 'pleiades_sky.fits')

    return
Beispiel #11
0
def make_sky():
    data_dir = root_dir + 'FLD2_2/'
    sky_dir = root_dir + 'reduce/sky/'

    util.mkdir(sky_dir)

    sky_num = np.arange(94, 106)
    sky_frames = [
        '{0:s}sky_{1:04d}.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(sky_frames, sky_dir + 'FLD2_2_sky.fits')

    return
Beispiel #12
0
def make_sky():
    data_dir = root_dir + 'Pleiades/'
    sky_dir = root_dir + 'reduce/sky/'

    #util.mkdir(out_dir)

    sky_num = [93, 94, 95, 96, 97, 154, 155, 156, 157, 158]
    sky_num += [242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252]
    sky_frames = [
        '{0:s}sky_{1:04d}.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(sky_frames, sky_dir + 'pleiades_sky.fits')

    return
Beispiel #13
0
def make_flat():

    util.mkdir(flat_dir)

    flat_num = np.arange(171, 182 + 1)
    flat_frames = [
        '{0:s}twi_{1:03d}.fits'.format(twi_dir, ss) for ss in flat_num
    ]
    reduce_STA.treat_overscan(flat_frames)
    scan_flat_frames = [
        '{0:s}twi_{1:03d}_scan.fits'.format(twi_dir, ss) for ss in flat_num
    ]
    calib.makedark(scan_flat_frames, flat_dir + 'flat.fits')

    return
Beispiel #14
0
def make_sky():

    util.mkdir(sky_dir)

    sky_num = np.arange(38, 44 + 1)  #sky set 1 middle of the night
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky.fits')

    return
Beispiel #15
0
def make_sky():

    util.mkdir(sky_dir)

    #sky_num = np.arange(97, 103+1) #sky set 1
    sky_num = np.arange(141, 146 + 1)  #sky set 2
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)

    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky2.fits')

    return
Beispiel #16
0
def make_sky():

    util.mkdir(sky_dir)

    #sky_num = np.arange(173, 179+1) #sky set 1 middle of the night
    sky_num = np.arange(217, 223+1) #sky set 2 end of the night
    sky_frames = ['{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num]
    reduce_STA.treat_overscan(sky_frames)
    scan_sky_frames =  ['{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num]
    calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky2.fits')
    
    # ALl skies
    sky_num = np.append(np.arange(173, 179+1), np.arange(217, 223+1)) # fill skyset
    scan_sky_frames =  ['{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num]
    calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky.fits')
    
    return
Beispiel #17
0
def make_sky():

    util.mkdir(sky_dir)

    #sky_num = np.arange(39, 45+1) #sky set 1 middle of the night
    #sky_num = np.arange(77, 83+1) #sky set 2 end of the night
    sky_num = [39, 40, 41, 42, 43, 44, 45, 77, 78, 79, 80, 81, 82, 83]
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)

    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky.fits')

    return
Beispiel #18
0
def make_sky():

    util.mkdir(sky_dir)

    ## COPY A SKY => use a dark
    # shutil.copyfile(root_dir + '../../20210724/sta/dark/dark_044_scan.fits', sky_dir + 'fld2_sky_tmp.fits')

    ## CREATING A SKY
    sky_num = [161, 162, 163, 166, 167]
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky.fits')

    return
Beispiel #19
0
def make_sky():

    sky_raw_dir = root_dir + 'Pleiades/'
    sky_out_dir = root_dir + 'reduce/sky/'

    util.mkdir(sky_out_dir)

    # 30 second integration time
    sky_num = [20, 21, 30, 31, 46, 47, 56, 57, 70, 71, 84, 85, 98, 99, 112, 113, \
               126, 127, 140, 141, 154, 155, 168, 169, 186, 187]
    sky_frames = ['{0:s}sky{1:03d}.fits'.format(sky_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, 'pleiades_sky_30s.fits')

    # 45 second integration time
    sky_num = [204, 205, 222, 240, 241]
    sky_frames = ['{0:s}sky{1:03d}.fits'.format(sky_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, 'pleiades_sky_45s.fits')

    return
Beispiel #20
0
def make_sky():

    util.mkdir(sky_dir)

    #sky_num = np.arange(63, 69+1) #sky set 1 middle of the night
    #sky_num = np.arange(110, 116+1) #sky set 2 end of the night
    #sky_frames = ['{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num]
    #reduce_STA.treat_overscan(sky_frames)
    #scan_sky_frames =  ['{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num]
    #calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky2.fits')

    # ALl skies
    sky_num = np.append(np.arange(63, 69 + 1),
                        [110, 111, 113, 114, 115, 116])  # fill skyset
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(scan_sky_frames, sky_dir + 'beehive_sky_no112.fits')

    return
Beispiel #21
0
def make_sky():
    sky_raw_dir = root_dir + 'Pleiades/'
    sky_out_dir = root_dir + 'reduce/sky/'

    util.mkdir(sky_out_dir)

    sky_num = [46, 47, 48, 72, 73, 74, 99, 100, 101]
    sky_frames = [
        '{0:s}sky{1:03d}.fits'.format(sky_raw_dir, ss) for ss in sky_num
    ]
    calib.makedark(sky_frames, sky_out_dir + 'pleiades_sky_46.fits')

    sky_num = [598, 599, 600, 626, 627, 1038, 1039, 1040, 1077, 1078, 1079, \
              1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117]
    sky_frames = [
        '{0:s}sky{1:03d}.fits'.format(sky_raw_dir, ss) for ss in sky_num
    ]
    calib.makedark(sky_frames, sky_out_dir + 'pleiades_sky_598.fits')

    return
Beispiel #22
0
def make_sky():
    data_dir = root_dir + 'Pleiades/'
    sky_dir = root_dir + 'reduce/sky/'

    util.mkdir(sky_dir)

    # 15 sec integration time
    sky_num = np.arange(73, 83)
    sky_frames = [
        '{0:s}sky_{1:04d}.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(sky_frames, sky_dir + 'pleiades_sky_r_15s.fits')

    # 15 sec integration time
    sky_num = np.arange(130, 146)
    sky_frames = [
        '{0:s}sky_{1:04d}.fits'.format(data_dir, ss) for ss in sky_num
    ]
    calib.makedark(sky_frames, sky_dir + 'pleiades_sky_i_15s.fits')

    return
Beispiel #23
0
def make_dark():

    util.mkdir(calib_dir)

    ## COPY A SKY => use a dark
    # shutil.copyfile(root_dir + '../../20210724/sta/dark/dark_044_scan.fits', sky_dir + 'fld2_sky_tmp.fits')

    ## CREATING A DARK
    print("I dark (120)")
    dark_num = np.arange(110, 114 + 1)
    dark_frames = [
        '{0:s}dark_{1:03d}.fits'.format(dark_dir, ss) for ss in dark_num
    ]
    scan_dark_frames = [
        '{0:s}dark_{1:03d}_scan.fits'.format(dark_dir, ss) for ss in dark_num
    ]

    reduce_STA.treat_overscan(dark_frames)
    calib.makedark(scan_dark_frames, calib_dir + 'fld2_dark120.fits')

    return
Beispiel #24
0
def make_sky():

    util.mkdir(sky_dir)

    ## COPY A SKY => use a dark
    # shutil.copyfile(root_dir + '../../20210724/sta/dark/dark_044_scan.fits', sky_dir + 'fld2_sky_tmp.fits')
    
    ## CREATING A SKY
    ## BRIV pos 4
    sky_num = np.arange(34, 40+1)
    sky_frames = ['{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num]
    scan_sky_frames =  ['{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num]
    reduce_STA.treat_overscan(sky_frames)
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_BRIV.fits')
    
    ## RIVB pos 1
    #sky_num = np.arange(68, 74+1)
    #sky_frames = ['{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num]
    #scan_sky_frames =  ['{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num]
    #reduce_STA.treat_overscan(sky_frames)
    #calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_RIVB.fits')
    
    return
Beispiel #25
0
def make_sky():

    util.mkdir(sky_dir)

    # bin1 skys were taken 0430
    sky_num_180_bin1 = np.arange(96, 103 + 1)
    sky_frames_180 = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss)
        for ss in sky_num_180_bin1
    ]
    reduce_STA.treat_overscan(sky_frames_180, remake=True)
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss)
        for ss in sky_num_180_bin1
    ]
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_180_bin1.fits')

    # bin2 skys were taken 0429, copy files
    shutil.copyfile(sky_dir_bin2 + 'fld2_sky_180.fits',
                    sky_dir + 'fld2_sky_180_bin2.fits')
    shutil.copyfile(sky_dir_bin2 + 'fld2_sky_180.list',
                    sky_dir + 'fld2_sky_180_bin2.list')

    return
Beispiel #26
0
def make_sky():
    sky_dir = '/Volumes/g/lu/data/imaka/2017_01_11/fli/Pleiades/'

    sky_num = [23, 42, 60]  #45 sec integration time
    sky_frames = ['{0:s}sky{1:03d}.fits'.format(sky_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, 'pleiades_sky_023.fits')

    sky_num = [25, 43, 61, 78, 79]  #30 sec integration time
    sky_frames = ['{0:s}sky{1:03d}.fits'.format(sky_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, 'pleiades_sky_025.fits')

    sky_num = [78, 79, 114, 115, 132, 133]  #30 sec integration time
    sky_frames = ['{0:s}sky{1:03d}.fits'.format(sky_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, 'pleiades_sky_078.fits')

    sky_num = [195, 196, 197]  #30 sec integration time
    sky_frames = ['{0:s}sky{1:03d}.fits'.format(sky_dir, ss) for ss in sky_num]
    calib.makedark(sky_frames, 'pleiades_sky_195.fits')

    return
Beispiel #27
0
def make_sky():

    util.mkdir(sky_dir)

    ## I Band
    ## NO SKY TAKEN => use a 180 dark
    dark_num = np.arange(103, 111 + 1)
    dark_frames = [
        '{0:s}dark_{1:03d}.fits'.format(dark_dir, ss) for ss in dark_num
    ]
    scan_dark_frames = [
        '{0:s}dark_{1:03d}_scan.fits'.format(dark_dir, ss) for ss in dark_num
    ]
    reduce_STA.treat_overscan(dark_frames)
    calib.makedark(scan_dark_frames, sky_dir + 'fld2_sky_I.fits')

    ## VBRI pos 3
    sky_num = np.arange(48, 54)
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_VBRI.fits')

    ## RIVB pos 1
    sky_num = np.arange(71, 77 + 1)
    sky_frames = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num
    ]
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss) for ss in sky_num
    ]
    reduce_STA.treat_overscan(sky_frames)
    calib.makedark(scan_sky_frames, sky_dir + 'fld2_sky_RIVB.fits')

    return
Beispiel #28
0
def make_sky():

    util.mkdir(sky_dir)

    sky_num_180 = np.arange(106, 108 + 1)
    sky_frames_180 = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num_180
    ]
    reduce_STA.treat_overscan(sky_frames_180)

    sky_num_30 = np.arange(109, 111 + 1)
    sky_frames_30 = [
        '{0:s}sky_{1:03d}_o.fits'.format(data_dir, ss) for ss in sky_num_30
    ]
    reduce_STA.treat_overscan(sky_frames_30)

    # Put all the 30 sec and 180 sec together. We have no choice since we had so few.
    scan_sky_frames = [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss)
        for ss in sky_num_30
    ]
    scan_sky_frames += [
        '{0:s}sky_{1:03d}_o_scan.fits'.format(data_dir, ss)
        for ss in sky_num_180
    ]

    rescale_to_180 = [6 for ss in sky_num_30]
    rescale_to_180 += [1 for ss in sky_num_180]
    rescale_to_30 = [1 for ss in sky_num_30]
    rescale_to_30 += [(1. / 6.) for ss in sky_num_180]

    # We also need to account for the increasing sky brightness.
    for ff in range(len(scan_sky_frames)):
        img = fits.getdata(scan_sky_frames[ff])

        # Fix 180 scales
        img_180 = img * rescale_to_180[ff]
        mean_180, median_180, stddev_180 = sigma_clipped_stats(img_180,
                                                               sigma_lower=4,
                                                               sigma_upper=2,
                                                               maxiters=10)
        if ff == 0:
            mean0_180 = mean_180
        rescale_to_180[ff] *= mean0_180 / mean_180

        # Fix 30 scales
        img_30 = img * rescale_to_30[ff]
        mean_30, median_30, stddev_30 = sigma_clipped_stats(img_30,
                                                            sigma_lower=4,
                                                            sigma_upper=2,
                                                            maxiters=10)
        if ff == 0:
            mean0_30 = mean_30
        rescale_to_30[ff] *= mean0_30 / mean_30

    calib.makedark(scan_sky_frames,
                   sky_dir + 'fld2_sky_180.fits',
                   rescale=rescale_to_180)
    calib.makedark(scan_sky_frames,
                   sky_dir + 'fld2_sky_30.fits',
                   rescale=rescale_to_30)

    return