=============================================================================== Mike Schuster mschuster@cfa.harvard.edu 27 Apr 2007 processing with IRACproc v4.2 software package =============================================================================== BKGFIX_NOTES IRAC Mosaics These notes describe one method for calculating and subtracting a dark frame from an IRAC mosaic data set. There is also a method for fixing erroneous offset corrections from MOPEX's overlap correction module around extremely bright stars. =============================================================================== GLIMPSE data Mosaic is 252x2 total frames (2 AORs) Final IRACproc mosiac pixel scale: 1.22/sqrt(2) "/pix, ~362x362 pix per frame chs 1 + 3 overlap, chs 2 + 4 overlap 63 frames in y direction, with 192 pixel overlap between sucessive frames and ~22 pixel overlap between any 3 consecutive frames 4 frames/AOR in x direction, with ~22 pixel overlap Overlap is ~24 pixels between AORs The 1st AOR is the left side of the mosaic, the 2nd AOR is the right Each AOR strip begins at the upper left of its side of the mosaic progresses downward, and at the end of each column shifts left to begin the next column in the opposite direction =============================================================================== correct ch.3 background problem (this could also be done for ch.4) pwd ./reduce/ #### make image list for data set, and make backup copy perldl> mkmopex_bcd('../Lists/list.par',{CH=>3}) cp ../Lists/bcd_I3.lis ../Lists/bcd_I3_all.lis #### make image list for each AOR perldl> mkmopex_bcd('../Lists/list.par',{CH=>3,AOR=>XXXXXXX}) cp ../Lists/bcd_I3.lis ../Lists/bcd_I3_XXXXXXX.lis perldl> mkmopex_bcd('../Lists/list.par',{CH=>3,AOR=>YYYYYYY}) cp ../Lists/bcd_I3.lis ../Lists/bcd_I3_YYYYYYY.lis cp ../Lists/bcd_I3_all.lis ../Lists/bcd_I3.lis touch blank.lis #### make temporary dark frame for each AOR (this could also be done with off-field frames) perldl> coadd_fits('../Lists/bcd_I3_XXXXXXX.lis',{METHOD=>'median', IMAGE_FILE=>'../I3_XXXXXXX_0_3_bdrk.fits'}) perldl> coadd_fits('../Lists/bcd_I3_YYYYYYY.lis',{METHOD=>'median', IMAGE_FILE=>'../I3_YYYYYYY_0_3_bdrk.fits'}) #### determine average background pedestal for each AOR dark frame perldl> $a = rfits('../I3_XXXXXXX_0_3_bdrk.fits') perldl> $peda = backgrnd2D($a,{BKG_METHOD=>'avg'}) Mean = 13.1930147923455, RMS = 0.789435213854228, Median = 13.1823387145996 Min = 7.85530805587769, Max = 26.7308597564697 Mean = 13.1672026866981, RMS = 0.646081383134287, Median = 13.179615020752 Min = 10.6755599975586, Max = 15.6397838592529 background calculation method: avg background rms/sqrt(Npix): 0.00252394797216308 background pedestal: 13.1672026866981 perldl> $b = rfits('../I3_YYYYYYY_0_3_bdrk.fits') perldl> $pedb = backgrnd2D($b,{BKG_METHOD=>'avg'}) Mean = 11.5434256238538, RMS = 0.853275628085311, Median = 11.5220069885254 Min = 6.41276931762695, Max = 25.7276134490967 Mean = 11.5160907694795, RMS = 0.713075043107206, Median = 11.5187110900879 Min = 8.70351409912109, Max = 14.3574209213257 background calculation method: avg background rms/sqrt(Npix): 0.002785661924384 background pedestal: 11.5160907694795 #### calculate the average background pedestal for all AORs perldl> $ped = ($peda+$pedb)/2 perldl> p $ped 12.3416467280888 #### make new dark frame for each AOR, subtracting average background pedestal perldl> cropout_bcd('../I3_XXXXXXX_0_3_bdrk.fits', '../I3_XXXXXXX_0_3_pedsub_bdrk.fits',{BACKGRND=>12.3416467280888}) perldl> cropout_bcd('../I3_YYYYYYY_0_3_bdrk.fits', '../I3_YYYYYYY_0_3_pedsub_bdrk.fits',{BACKGRND=>12.3416467280888}) #### backup BCD files mkdir ../bcd_I3_orig/ cp I3*bcd.fits ../bcd_I3_orig/ #### subtract dark frame from BCDs perldl> pedsub_fits('../Lists/bcd_I3_XXXXXXX.lis','../Lists/bcd_I3_XXXXXXX.lis', {PED_IMG_FILE=>'../I3_XXXXXXX_0_3_pedsub_bdrk.fits'}) perldl> pedsub_fits('../Lists/bcd_I3_YYYYYYY.lis','../Lists/bcd_I3_YYYYYYY.lis', {PED_IMG_FILE=>'../I3_YYYYYYY_0_3_pedsub_bdrk.fits'}) #### make initial ch.3 mosaic perldl> mkmosaic_bcd({NAME=>'IRACproc_MFIF_drksub',CH=>3,MASTER_FIF=>1, FIF_FILE=>'../Lists/FIF.tbl',STEPS=>[1,1,1,1,1,1]}) =============================================================================== correct ch.3 pedestal problem near very bright, saturated star trial and error repeat these steps until final mosaic looks good #### manually subtract background pedestal from affected frames look at overlap_I3/Overlap_Corr/offsets.tbl for current values need to match MOPEX image number to AOR frame number pwd ./reduce/ perldl> cropout_bcd('I3_XXXXXXX_0038_0_3_bcd.fits', 'bkgfix_I3_XXXXXXX_0038_0_3_bcd.fits',{BACKGRND=>0.8}) perldl> cropout_bcd('I3_XXXXXXX_0039_0_3_bcd.fits', 'bkgfix_I3_XXXXXXX_0039_0_3_bcd.fits',{BACKGRND=>1.0}) perldl> cropout_bcd('I3_XXXXXXX_0040_0_3_bcd.fits', 'bkgfix_I3_XXXXXXX_0040_0_3_bcd.fits',{BACKGRND=>2.0}) perldl> cropout_bcd('I3_XXXXXXX_0041_0_3_bcd.fits', 'bkgfix_I3_XXXXXXX_0041_0_3_bcd.fits',{BACKGRND=>2.0}) perldl> cropout_bcd('I3_XXXXXXX_0042_0_3_bcd.fits', 'bkgfix_I3_XXXXXXX_0042_0_3_bcd.fits',{BACKGRND=>1.0}) perldl> cropout_bcd('I3_YYYYYYY_0204_0_3_bcd.fits', 'bkgfix_I3_YYYYYYY_0204_0_3_bcd.fits',{BACKGRND=>2.1}) perldl> cropout_bcd('I3_YYYYYYY_0205_0_3_bcd.fits', 'bkgfix_I3_YYYYYYY_0205_0_3_bcd.fits',{BACKGRND=>4.0}) perldl> cropout_bcd('I3_YYYYYYY_0206_0_3_bcd.fits', 'bkgfix_I3_YYYYYYY_0206_0_3_bcd.fits',{BACKGRND=>5.0}) perldl> cropout_bcd('I3_YYYYYYY_0207_0_3_bcd.fits', 'bkgfix_I3_YYYYYYY_0207_0_3_bcd.fits',{BACKGRND=>4.0}) perldl> cropout_bcd('I3_YYYYYYY_0208_0_3_bcd.fits', 'bkgfix_I3_YYYYYYY_0208_0_3_bcd.fits',{BACKGRND=>4.0}) perldl> cropout_bcd('I3_YYYYYYY_0209_0_3_bcd.fits', 'bkgfix_I3_YYYYYYY_0209_0_3_bcd.fits',{BACKGRND=>3.3}) #### backup overlap corrected image list in overlap_I3/ directory modify overlap corrected image list in overlap_I3/ directory copy image list to ./Lists/ pwd ./ cd ./overlap_I3/Overlap_Corr/ cp correct_bcd_I3.lis correct_bcd_I3_orig.lis pico correct_bcd_I3.lis diff correct_bcd_I3.lis correct_bcd_I3_orig.lis 39,43c39,43 < ./bkgfix_I3_XXXXXXX_0038_0_3_bcd.fits < ./bkgfix_I3_XXXXXXX_0039_0_3_bcd.fits < ./bkgfix_I3_XXXXXXX_0040_0_3_bcd.fits < ./bkgfix_I3_XXXXXXX_0041_0_3_bcd.fits < ./bkgfix_I3_XXXXXXX_0042_0_3_bcd.fits --- > ./../overlap_I3/Overlap_Corr/correct_I3_XXXXXXX_0038_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_XXXXXXX_0039_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_XXXXXXX_0040_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_XXXXXXX_0041_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_XXXXXXX_0042_0_3_bcd.fits 457,462c457,462 < ./bkgfix_I3_YYYYYYY_0204_0_3_bcd.fits < ./bkgfix_I3_YYYYYYY_0205_0_3_bcd.fits < ./bkgfix_I3_YYYYYYY_0206_0_3_bcd.fits < ./bkgfix_I3_YYYYYYY_0207_0_3_bcd.fits < ./bkgfix_I3_YYYYYYY_0208_0_3_bcd.fits < ./bkgfix_I3_YYYYYYY_0209_0_3_bcd.fits --- > ./../overlap_I3/Overlap_Corr/correct_I3_YYYYYYY_0204_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_YYYYYYY_0205_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_YYYYYYY_0206_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_YYYYYYY_0207_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_YYYYYYY_0208_0_3_bcd.fits > ./../overlap_I3/Overlap_Corr/correct_I3_YYYYYYY_0209_0_3_bcd.fits cp correct_bcd_I3.lis correct_bcd_I3_new.lis cd ../../ cp overlap_I3/Overlap_Corr/correct_bcd_I3.lis Lists/correct_bcd_I3.lis #### re-run mkmosaic from STEP 5 to make intermediary mosaics do NOT re-run overlap correction (for speed, set STEPS=>[0,0,0,0,1,1] when testing to determine pedestal values) pwd ./reduce/ perldl> mkmosaic_bcd({NAME=>'IRACproc_MFIF_bkgfix_init',CH=>3,MASTER_FIF=>1, FIF_FILE=>'../Lists/FIF.tbl',STEPS=>[0,0,0,0,1,1]}) #### make final mosaic with best pedestal values re-run mkmosaic from STEP 2 do NOT re-run overlap correction pwd ./reduce/ perldl> mkmosaic_bcd({NAME=>'IRACproc_MFIF_bkgfix',CH=>3,MASTER_FIF=>1, FIF_FILE=>'../Lists/FIF.tbl',STEPS=>[0,1,1,1,1,1]})