示例#1
0
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)
示例#2
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 + ');"\