visname='J2157-694.ms' # target J2157-694 # time on source 90sec # N antennas 25 # Band 3 ~ 90GHz # thermal noise 0.12 mJy # peak of the target ~1 Jy os.system("rm -rf noselfcal_PKS*") clean(vis = visname, imagename = 'noselfcal_PKS', mode = 'mfs', interactive = T, imsize = [1024, 1024], cell = '0.2arcsec', weighting = 'natural', niter = 10000, threshold='0.5mJy') # clean con una box generica che includa tutta l'emissione che compare dopo aver # cleanato il picco # Ho misurato un rms dell'ordine di 0.8 mJy. # Clean iniziale con weighting uniform, per identificare per bene # le sorgenti puntiformi os.system("rm -rf firstclean_PKS*") clean(vis = visname, imagename = 'firstclean_PKS', mode = 'mfs', interactive = T, imsize = [1024, 1024], cell = '0.2arcsec', weighting = 'uniform', niter = 10000, threshold='0.5mJy') ### Fermarsi dopo aver cleanato le prime tre sorgenti ptformi brillanti ### che appaiono una alla volta!!! ### Cercare soluzioni in fase in un intervallo di soluzioni di 15 sec (meta' scan) os.system("rm -rf p_halfscan.cal") gaincal(vis=visname, caltable="p_halfscan.cal", solint='15s', calmode="p", refant="DV04", minblperant=4, gaintype="G") plotcal(caltable="p_halfscan.cal", xaxis="time", yaxis="phase", subplot=331, iteration="antenna", timerange='', spw='', plotrange=[0,0,-50,50], markersize=5, fontsize=10.0) # L'ordine di grandezza delle soluzioni e' di ~10 deg (20 deg per qualche antenna) # Applicare le soluzioni applycal(vis=visname, gaintable=["p_halfscan.cal"], interp="linear") # Creare un nuovo modello os.system("rm -rf selfcal_phalfscan_PKS*") clean(vis = visname, imagename = 'selfcal_phalfscan_PKS', mode = 'mfs', interactive = T, imsize = [1024, 1024], cell = '0.2arcsec', weighting = 'natural', niter = 10000, threshold='0.5mJy') ### Fermarsi dopo aver cleanato le due sorgenti ptformi brillanti ### e aggiungendo qualche componente brillante di cui ci si fida abbastanza # Ricalcolare soluzioni in fase riducendo il tempo di soluzione os.system("rm -rf p_int.cal") gaincal(vis=visname, caltable="p_int.cal", solint='int', calmode="p", refant="DV04", minblperant=4, gaintype="G") plotcal(caltable="p_int.cal", xaxis="time", yaxis="phase", subplot=331, iteration="antenna", timerange='', spw='', plotrange=[0,0,-20,20], markersize=5, fontsize=10.0) # di nuovo lo stesso ordine di grandezza nelle correzioni # applicare le soluzioni applycal(vis=visname, gaintable=["p_int.cal"], interp="linear") # Rifare immagine os.system("rm -rf selfcal_p_int_PKS*") clean(vis = visname, imagename = 'selfcal_p_int_PKS', mode = 'mfs', interactive = T, imsize = [1024, 1024], cell = '0.2arcsec', weighting = 'natural', robust = 0.5, niter = 10000, threshold='0.5mJy') # Calcolare ultime correzioni in fase e ampiezza # in questo caso e' importante applicare le soluzioni in fase migliori che si sono ottenute os.system("rm -rf ap_int.cal") gaincal(vis=visname, caltable="ap_int.cal", solint='int', calmode="ap", gaintable ='p_int.cal', refant="DV04", minblperant=4, gaintype="G") plotcal(caltable="ap_int.cal", xaxis="time", yaxis="phase", subplot=331, iteration="antenna", timerange='', spw='', plotrange=[0,0,-180,180], markersize=5, fontsize=10.0) # I plot delle soluzioni in fase questa volta mostrano le fasi molto vicine a zero. # Perche' abbiamo applicato la correzione in fase calcolata nell'iterazione precedente # E' necessario ora applicare entrambe le tabelle ap e p ai dati. applycal(vis=visname, gaintable=["ap_int.cal","p_int.cal" ], interp="linear") # Rifare l'immagine. # Questa volta e' quella finale, possiamo cleanare piu' a lungo! os.system("rm -rf selfcal_ap_int__PKS*") clean(vis = visname, imagename = 'selfcal_ap_int__PKS', mode = 'mfs', interactive = T, imsize = [1024, 1024], cell = '0.2arcsec', weighting = 'natural', niter = 10000, threshold='0.4mJy') # Una rms dell'ordine di 0.2 mJy.