def phot(exposures, filter, type, LENGTH1, LENGTH2): import utilities info = {'B':{'filter':'g','color1':'gmr','color2':'umg','EXTCOEFF':-0.2104,'COLCOEFF':0.0},\ 'W-J-B':{'filter':'g','color1':'gmr','color2':'umg','EXTCOEFF':-0.2104,'COLCOEFF':0.0},\ 'W-J-V':{'filter':'g','color1':'gmr','color2':'rmi','EXTCOEFF':-0.1202,'COLCOEFF':0.0},\ 'W-C-RC':{'filter':'r','color1':'rmi','color2':'gmr','EXTCOEFF':-0.0925,'COLCOEFF':0.0},\ 'W-C-IC':{'filter':'i','color1':'imz','color2':'rmi','EXTCOEFF':-0.02728,'COLCOEFF':0.0},\ 'W-S-Z+':{'filter':'z','color1':'imz','color2':'rmi','EXTCOEFF':0.0,'COLCOEFF':0.0}} #filters = ['W-J-V','W-C-RC','W-C-IC','W-S-Z+'] #cluster = 'MACS2243-09' #filters = ['W-S-Z+'] # ['W-J-B','W-J-V','W-C-RC','W-C-IC','W-S-Z+'] base = '/nfs/slac/g/ki/ki05/anja/SUBARU/' + cluster + '/PHOTOMETRY/cat/' base = '' #file='all_merg.cat' #file='matched_SUPA0055758.cat' #file = exposures[exposures.keys()[0]]['matched_cat'] if type == 'galaxy': mag = 'MAG_AUTO' magerr = 'MAGERR_AUTO' if type == 'star': mag = 'MAG_APER2' magerr = 'MAGERR_APER2' import mk_saturation_plot, os, re os.environ['BONN_TARGET'] = cluster os.environ['INSTRUMENT'] = 'SUBARU' stars_0 = [] stars_90 = [] for exposure in exposures.keys(): file = exposures[exposure]['matched_cat'] ROTATION = exposures[exposure]['keywords']['ROTATION'] print ROTATION #raw_input() import os ppid = str(os.getppid()) from glob import glob if 1: #len(glob(file)): for filter in [filter]: print 'filter', filter os.environ['BONN_FILTER'] = filter dict = info[filter] #run('ldacfilter -i ' + base + file + ' -o /tmp/good.stars -t PSSC\ # -c "(Flag=0) AND (SEx_CLASS_STAR_' + filter + '>0.90);"',['/tmp/good.stars']) #command = 'ldacfilter -i ' + base + file + ' -o /tmp/good.stars' + ppid + ' -t PSSC -c "(((SEx_IMAFLAGS_ISO=0 AND SEx_CLASS_STAR>0.0) AND (SEx_Flag=0)) AND Flag=0);"' #print command #raw_input() #utilities.run(command,['/tmp/good.stars' + ppid]) #run('ldacfilter -i ' + base + file + ' -o /tmp/good.stars -t PSSC\ # -c "(SEx_CLASS_STAR>0.00);"',['/tmp/good.stars']) utilities.run( 'ldacfilter -i ' + base + file + ' -o /tmp/good.colors' + ppid + ' -t PSSC\ -c "(' + dict['color1'] + '>-900) AND (' + dict['color2'] + '>-900);"', ['/tmp/good.colors']) #utilities.run('ldacfilter -i /tmp/good.stars' + ppid + ' -o /tmp/good.colors' + ppid + ' -t PSSC\ # -c "(' + dict['color1'] + '>-900) AND (' + dict['color2'] + '>-900);"',['/tmp/good.colors' + ppid]) utilities.run( 'ldaccalc -i /tmp/good.colors' + ppid + ' -t PSSC -c "(' + dict['filter'] + 'mag - SEx_' + mag + ');" -k FLOAT -n magdiff "" -o /tmp/all.diff.cat' + ppid, ['/tmp/all.diff.cat' + ppid]) utilities.run( 'ldactoasc -b -q -i /tmp/all.diff.cat' + ppid + ' -t PSSC -k SEx_' + mag + ' ' + dict['filter'] + 'mag SEx_FLUX_RADIUS SEx_CLASS_STAR ' + dict['filter'] + 'err ' + dict['color1'] + ' > /tmp/mk_sat' + ppid, ['/tmp/mk_sat' + ppid]) # run('ldactoasc -b -q -i ' + base + file + ' -t PSSC -k SEx_' + mag + '_' + filter + ' ' + dict['filter'] + 'mag SEx_FLUX_RADIUS SEx_CLASS_STAR ' + dict['filter'] + 'err ' + dict['color1'] + ' > /tmp/mk_sat',['/tmp/mk_sat'] ) val = [] val = raw_input("Look at the saturation plot?") if len(val) > 0: if val[0] == 'y' or val[0] == 'Y': mk_saturation_plot.mk_saturation( '/tmp/mk_sat' + ppid, filter) # make stellar saturation plot lower_mag, upper_mag, lower_diff, upper_diff = re.split( '\s+', open('box' + filter, 'r').readlines()[0]) utilities.run( 'ldacfilter -i /tmp/all.diff.cat' + ppid + ' -t PSSC\ -c "(((SEx_' + mag + '>' + lower_mag + ') AND (SEx_' + mag + '<' + upper_mag + ')) AND (magdiff>' + lower_diff + ')) AND (magdiff<' + upper_diff + ');"\ -o /tmp/filt.mag.cat' + ppid, ['/tmp/filt.mag.cat' + ppid]) #utilities.run('ldacfilter -i /tmp/all.diff.cat' + ppid + ' -t PSSC\ # -c "(((' + dict['filter'] + 'mag>' + lower_mag + ') AND (' + dict['filter'] + 'mag<' + upper_mag + ')) AND (magdiff>' + lower_diff + ')) AND (magdiff<' + upper_diff + ');"\ # -o /tmp/filt.mag.cat' + ppid ,['/tmp/filt.mag.cat' + ppid]) utilities.run( 'ldactoasc -b -q -i /tmp/filt.mag.cat' + ppid + ' -t PSSC -k SEx_Xpos_ABS SEx_Ypos_ABS > /tmp/positions' + ppid, ['/tmp/positions' + ppid]) utilities.run( 'ldacaddkey -i /tmp/filt.mag.cat' + ppid + ' -o /tmp/filt.airmass.cat' + ppid + ' -t PSSC -k AIRMASS 0.0 FLOAT "" ', ['/tmp/filt.airmass.cat' + ppid]) utilities.run( 'ldactoasc -b -q -i /tmp/filt.airmass.cat' + ppid + ' -t PSSC -k SEx_' + mag + ' ' + dict['filter'] + 'mag ' + dict['color1'] + ' ' + dict['color2'] + ' AIRMASS SEx_' + magerr + ' ' + dict['filter'] + 'err SEx_Xpos_ABS SEx_Ypos_ABS > /tmp/input.asc' + ppid, ['/tmp/input.asc' + ppid]) #utilities.run('ldactoasc -b -q -i /tmp/filt.airmass.cat -t PSSC -k SEx_' + mag + ' ' + dict['filter'] + 'mag ' + dict['color1'] + ' ' + dict['color2'] + ' AIRMASS SEx_' + magerr + ' ' + dict['filter'] + 'err SEx_Ra SEx_Dec > /tmp/input.asc',['/tmp/input.asc'] ) # fit photometry #utilities.run("./photo_abs_new.py --input=/tmp/input.asc \ # --output=/tmp/photo_res --extinction="+str(dict['EXTCOEFF'])+" \ # --color="+str(dict['COLCOEFF'])+" --night=-1 --label="+dict['color1']+" --sigmareject=3\ # --step=STEP_1 --bandcomp="+dict['filter']+" --color1="+dict['color1']+" --color2="+dict['color2']) import photo_abs_new good_stars = photo_abs_new.run_through( 'illumination', infile='/tmp/input.asc' + ppid, output='/tmp/photo_res', extcoeff=dict['color1'], sigmareject=3, step='STEP_1', bandcomp=dict['filter'], color1which=dict['color1'], color2which=dict['color2']) if int(ROTATION) == 0: stars_0.append(good_stars) if int(ROTATION) == 1: stars_90.append(good_stars) from copy import copy if len(stars_0) > 0: dict = copy(stars_0[0]) blank_0 = {} for key in dict.keys(): blank_0[key] = [] for i in range(len(stars_0)): for j in range(len(stars_0[i][key])): blank_0[key].append(stars_0[i][key][j]) #print key, blank[key] photo_abs_new.calcDataIllum('illumination', LENGTH1, LENGTH2, 1000, blank_0['corr_data'], blank_0['airmass_good'], blank_0['color1_good'], blank_0['color2_good'], blank_0['magErr_good'], blank_0['X_good'], blank_0['Y_good'], rot=0) if len(stars_90) > 0: dict = copy(stars_90[0]) blank_90 = {} for key in dict.keys(): blank_90[key] = [] for i in range(len(stars_90)): for j in range(len(stars_90[i][key])): blank_90[key].append(stars_90[i][key][j]) #print key, blank[key] photo_abs_new.calcDataIllum('illumination', LENGTH1, LENGTH2, 1000, blank_90['corr_data'], blank_90['airmass_good'], blank_90['color1_good'], blank_90['color2_good'], blank_90['magErr_good'], blank_90['X_good'], blank_90['Y_good'], rot=0)
#mk_saturation_plot.mk_saturation('/tmp/mk_sat_all',filter) #lower_mag,upper_mag,lower_diff,upper_diff = re.split('\s+',open('box' + filter,'r').readlines()[0]) #name = raw_input('name?') #cutout(lower_mag,upper_mag,lower_diff,upper_diff,'/tmp/ff.cat','lower.pos','green') #cutout(18,21,0.5,1,'/tmp/all.diff.cat','upper.pos','blue') # run('ldactoasc -b -q -i ' + base + file + ' -t PSSC -k SEx_' + mag + '_' + filter + ' ' + dict['filter'] + 'mag SEx_FLUX_RADIUS SEx_CLASS_STAR ' + dict['filter'] + 'err ' + dict['color1'] + ' > /tmp/mk_sat',['/tmp/mk_sat'] ) print filter, filters val = raw_input("Look at the saturation plot?") if len(val) > 0: if val[0] == 'y' or val[0] == 'Y': mk_saturation_plot.mk_saturation('/tmp/mk_sat', filter) val = raw_input("Make a box?") if len(val) > 0: if val[0] == 'y' or val[0] == 'Y': mk_saturation_plot.use_box(filter) lower_mag, upper_mag, lower_diff, upper_diff = re.split( '\s+', open('box' + filter, 'r').readlines()[0]) print lower_mag, upper_mag, lower_diff, upper_diff run( 'ldacfilter -i /tmp/all.diff.cat -t PSSC\ -c "(((SEx_' + mag + '_' + filter + '>' + lower_mag + ') AND (SEx_' + mag + '_' + filter + '<' + upper_mag + ')) AND (magdiff>' + lower_diff + ')) AND (magdiff<' + upper_diff + ');"\