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
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
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
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
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
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')
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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