Exemple #1
0
        aar.grid_convolve(pol='P1',
                          method='NN',
                          distNN=0.5 * FCNST.c / f0,
                          tol=1.0e-6,
                          maxmatch=1,
                          identical_antennas=True,
                          cal_loop=False,
                          gridfunc_freq='scale',
                          mapping='weighted',
                          wts_change=False,
                          parallel=True,
                          pp_method='pool')

        # fp1 = [ad['flags']['P1'] for ad in update_info['antennas']]
        # p1f = [a.antpol.flag['P1'] for a in aar.antennas.itervalues()]
        imgobj = AA.NewImage(antenna_array=aar, pol='P1')
        imgobj.imagr(weighting='natural', pol='P1')
        img = imgobj.img['P1']

        # for chan in xrange(imgobj.holograph_P1.shape[2]):
        #     imval = NP.abs(imgobj.holograph_P1[imgobj.mf_P1.shape[0]/2,:,chan])**2 # a horizontal slice
        #     imval = imval[NP.logical_not(NP.isnan(imval))]
        #     immax2[it,chan,:] = NP.sort(imval)[-2:]

        if it == 0:
            avg_img = NP.copy(img)
        else:
            avg_img += NP.copy(img)
        if NP.any(NP.isnan(avg_img)):
            PDB.set_trace()
Exemple #2
0
    tempdata = calarr_full['P1'].apply_cal(tempdata,meas=True) # doesn't matter which calarr we use cause it's a measurement
    tempdata += NP.sqrt(rxr_noise) / NP.sqrt(2) * (NP.random.normal(loc=0.0, scale=1, size=tempdata.shape) + 1j * NP.random.normal(loc=0.0, scale=1, size=tempdata.shape))
    aar.caldata['P1']['E-fields'][0,:,:]=calarr_full['P1'].apply_cal(tempdata)
    if i < Nmeas_eff:
        for anti in xrange(n_antennas):
            visdata[anti,:,:] += tempdata[anti,:].reshape(1,nchan) * NP.conj(tempdata)/Nmeas_eff


    if grid_map_method == 'regular':
        aar.grid_convolve_new(pol='P1', method='NN',distNN=0.5*FCNST.c/f0, tol=1.0e-6,maxmatch=1,identical_antennas=True,gridfunc_freq='scale',mapping='weighted',wts_change=False,parallel=False, pp_method='queue',nproc=16, cal_loop=True,verbose=False)
    else:
        if i == 0:
            aar.genMappingMatrix(pol='P1',method='NN',distNN=0.5*NP.sqrt(ant_sizex**2+ant_sizey**2)/NP.sqrt(2),identical_antennas=True,gridfunc_freq='scale',wts_change=False,parallel=False)

    if i == 0:
        imgobj = AA.NewImage(antenna_array=aar,pol='P1',verbose=False)
        imgobj.imagr(weighting='natural',pol='P1',pad=0,verbose=False,grid_map_method=grid_map_method,cal_loop=True,stack=False)
    else:
        #imgobj.update(antenna_array=aar,reset=True,verbose=False)
        #imgobj.holimg['P1'][64,64,:] = NP.mean(tempdata,axis=0)
        imgobj.holimg['P1'][64,64,:] = NP.mean(calarr_full['P1'].apply_cal(tempdata),axis=0)

    #imgobj.imagr(weighting='natural',pol='P1',pad=0,verbose=False,grid_map_method=grid_map_method,cal_loop=True,stack=False)

    # update calibration
    calarr_full['P1'].update_cal(tempdata,imgobj)
    imgobj.holimg['P1'][64,64,:] = NP.mean(calarr_one['P1'].apply_cal(tempdata),axis=0)
    calarr_one['P1'].update_cal(tempdata,imgobj)

    if True in NP.isnan(calarr_full['P1'].cal_corr):
        print 'NAN in calibration gains! exiting!'
               do_correlate='FX',
               parallel=True,
               verbose=True)
    iar.grid_convolve(pol='P11',
                      method='NN',
                      distNN=0.5 * FCNST.c / f0,
                      tol=1.0e-6,
                      maxmatch=1,
                      identical_interferometers=True,
                      gridfunc_freq='scale',
                      mapping='weighted',
                      wts_change=False,
                      parallel=True,
                      pp_method='queue')

    imgobj = AA.NewImage(interferometer_array=iar, pol='P11')
    imgobj.imagr(weighting='natural', pol='P11')

    if i == 0:
        avg_img = imgobj.img['P11']
    else:
        avg_img += imgobj.img['P11']

avg_img /= max_n_timestamps

fig = PLT.figure()
ax = fig.add_subplot(111)
imgplot = ax.imshow(NP.mean(avg_img, axis=2),
                    aspect='equal',
                    origin='lower',
                    extent=(imgobj.gridl.min(), imgobj.gridl.max(),
                adict['flags'][pol] = False
                adict['Et'][pol] = E_timeseries_dict['Et'][:,ind]
                # adict['wtsinfo'][pol] = [{'orientation':0.0, 'lookup':'/data3/t_nithyanandan/project_MOFF/simulated/MWA/data/lookup/E_illumination_lookup_zenith.txt'}]
                adict['wtsinfo'][pol] = [{'orientation':0.0, 'lookup':'/data3/t_nithyanandan/project_MOFF/simulated/LWA/data/lookup/E_illumination_isotropic_radiators_lookup_zenith.txt'}]
            update_info['antennas'] += [adict]

            progress.update(antnum+1)
            antnum += 1
        progress.finish()
        
        aar.update(update_info, parallel=True, verbose=True)
        aar.grid_convolve(pol=None, method='NN', distNN=0.5*FCNST.c/f0, tol=1.0e-6, maxmatch=1, identical_antennas=True, cal_loop=False, gridfunc_freq='scale', mapping='weighted', wts_change=False, parallel=True, pp_method='pool')    
        aar.make_grid_cube()
        aar_psf_info = aar.quick_beam_synthesis(pol='P1', keep_zero_spacing=False)
        
        efimgobj = AA.NewImage(antenna_array=aar, pol='P1')
        efimgobj.imagr(pol='P1', weighting='uniform', pad='on')
        efimg = efimgobj.img['P1']
        efimgmax += [efimg[tuple(NP.array(efimg.shape)/2)]]
        if i == 0:
            avg_efimg = NP.copy(efimg)
        else:
            avg_efimg += NP.copy(efimg)
        if NP.any(NP.isnan(avg_efimg)):
            PDB.set_trace()

    # Begin interferometry FX processing 

    iar = AA.InterferometerArray(antenna_array=aar)
    iar.refresh_antenna_pairs()
    iar.stack(on_flags=True, on_data=True, parallel=False, nproc=None)