Skip to content

Commit 471c96d

Browse files
authored
Add files via upload
1 parent e1ba84b commit 471c96d

File tree

2 files changed

+53
-45
lines changed

2 files changed

+53
-45
lines changed

casacommands.py

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77
"""
88

99
import numpy as np
10-
from astropy.io import fits #for python only
1110
import matplotlib.pyplot as plt
12-
import glob
13-
import os
11+
import glob,os
1412

13+
from astropy.io import fits #for python only
1514
from fitsconverter import * #for python only
1615

1716
#Convert from .uvfits to .uvfitsMS
@@ -23,21 +22,21 @@
2322
#*******************************************************************
2423

2524

26-
def reorder(msname):
25+
def reorrder(msname):
2726
import casac
2827
ms=casac.casac.table()
2928
ms.open(msname,nomodify=False)
3029
a1 , a2 , data = [ms.getcol(x) for x in [ "ANTENNA1" , "ANTENNA2" , "DATA" ]]
3130
m = a1 > a2
32-
data[:, :, m]= data[:, :, m].conj()
33-
x = a2[m]
34-
a2[m] = a1[m]
35-
a1[m] = x
36-
ms.putcol("ANTENNA1", a1)
37-
ms.putcol("ANTENNA2", a2)
38-
ms.putcol("DATA", data)
39-
ms.flush()
40-
ms.close()
31+
data [: ,: ,m]= data [: ,: , m ]. conj ()
32+
x = a2 [ m ]
33+
a2 [ m ]= a1 [ m ]
34+
a1 [ m ]= x
35+
ms.putcol("ANTENNA1",a1)
36+
ms.putcol("ANTENNA2",a2)
37+
ms.putcol("DATA",data)
38+
ms.flush ()
39+
ms.close ()
4140

4241
def flag(msname): #You might have to update this
4342
flagdata(msname, flagbackup=True, mode='manual',antenna="22" )
@@ -46,24 +45,24 @@ def flag(msname): #You might have to update this
4645
flagdata(msname, flagbackup=True, mode='manual',antenna="81" )
4746

4847
def gen_image(msname,imagename): # Makes image
49-
clean(msname,imagename=imagename, niter=500, weighting='briggs', robust=0, imsize=[512,512], cell=['500 arcsec'], mode='mfs', nterms=1, spw='0:150~900', stokes='IQUV')
48+
clean(msname,imagename=imagename,niter =500,weighting = 'briggs',robust =0,imsize =[512 ,512] ,cell=['500 arcsec'] ,mode='mfs',nterms =1,spw='0:150~900',stokes='IQUV')
5049

5150
def mkinitmodel(msname,ext): #Model you give casa
52-
cl.addcomponent(flux=1.0, fluxunit='Jy', shape='point', dir='J2000 17h45m40.0409s -29d0m28.118s')
51+
cl.addcomponent(flux =1.0 ,fluxunit='Jy', shape = 'point' ,dir='J2000 17h45m40.0409s -29d0m28.118s')
5352
cl.rename('GC'+ext+'.cl')
5453
cl.close()
55-
ft(msname, complist='GC'+ext+'.cl', usescratch=True)
54+
ft(msname , complist = 'GC'+ext+'.cl' , usescratch = True )
5655

5756
def clear_cal(msname):
5857
clearcal(msname)
5958

6059
def phscal(msname):
6160
import os,sys
62-
kc = os.path.basename(msname) + "K.cal"
63-
bc = os.path.basename(msname) + "B.cal"
64-
gaincal(msname,caltable=kc, gaintype='K', solint='inf', refant='10')
61+
kc = os.path.basename(msname) + "K.cal"
62+
bc = os.path.basename(msname) + "B.cal"
63+
gaincal(msname,caltable=kc,gaintype = 'K' , solint='inf',refant='10')
6564
applycal(msname,gaintable=[kc])
66-
bandpass(msname,caltable=bc, solint='inf', combine='scan', refant='10')
65+
bandpass(msname,caltable=bc,solint='inf',combine='scan',refant='10')
6766
applycal(msname,gaintable=[bc])
6867

6968

@@ -79,7 +78,7 @@ def phscal(msname):
7978
nwms.append(msf+'.R')
8079

8180
i=0
82-
for i in np.arange(len(MSfilelist)):
81+
for i in np.arange(len(MSfilelist)): #This is the longest part
8382
reorrder(msname=name[i])# Reorder antenna 1 & 2 in each correlation so 2 is greater than 1
8483
flag(msname=name[i])# Flagging bad frequency channels or antennas and autoccorelations in CASA
8584
gen_image(msname=name[i],imagename=imgnam1+nwms[i])# Imaging
@@ -92,9 +91,8 @@ def phscal(msname):
9291
#%% CREATE .NPZ FILE IN CASA
9392
MSBCALlist=glob.glob('*MSB.cal')
9493

95-
i=0
96-
for i in np.arange(len(MSBCALlist)):
97-
tb.open(MSBCALlist[i])
94+
for msblist in MSBCALlist:
95+
tb.open(msblist)
9896
gain = tb.getcol('CPARAM') # use 'FPARAM' when using K.cal files
9997
np.savez(nwms[i]+'.npz',gains=gain)
10098

@@ -115,15 +113,10 @@ def phscal(msname):
115113
exportfits(imagename,fitsimagename+ext)
116114
fitsimage = glob.glob(clean2*.fits)
117115

116+
118117
# This section is to be done in python
119118
test=fits.open('new_name.fits')
120119
test.info()
121120
test[0].header
122121

123-
gen_image(msname=name[0],imagename=imgnam2+nwms[0])
124-
gen_image(name[1],imgnam1+nwms[1])
125-
gen_image(msname=name[1],imagename=imgnam2+nwms[1])
126-
gen_image(name[2],imgnam1+nwms[2])
127-
gen_image(msname=name[2],imagename=imgnam2+nwms[2])
128-
gen_image(name[3],imgnam1+nwms[3])
129-
gen_image(msname=name[3],imagename=imgnam2+nwms[3])
122+

fitsconverter.py

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,43 @@
77
#printf "\e[?2004l"
88
import numpy as np
99
from pyuvdata import UVData
10-
import glob
11-
import os
10+
import glob, os
1211

12+
#-------------------------------------------------------------------------------------------------------
13+
#IF YOU HAVE ONE POLARIZATION USE THIS
14+
#-------------------------------------------------------------------------------------------------------
1315
pollist = glob.glob('zen.2457548.46619.*.HH.uvcR')
14-
for i in np.arange(len(pollist)):
15-
os.system('python add_uvws.py '+ pollist[i]+' -C hsa7458_v001')
16-
os.system('python miriad2uvfits.py ' + pollist[i]+'U')
17-
#Now make a single miriad file
18-
files = glob.glob('*U')
16+
for pol in pollist:
17+
os.system('python add_uvws.py '+ pol+' -C hsa7458_v001')
18+
os.system('python miriad2uvfits.py ' + pol+'U')
19+
#-------------------------------------------------------------------------------------------------------
20+
#IF YOU HAVE ONE GROUP OF POLARIZATIONS (4 polarizations) USE THIS
21+
#-------------------------------------------------------------------------------------------------------
22+
pollist = glob.glob('zen.2457548.46619.*.HH.uvcR')
23+
for pol in pollist:
24+
os.system('python add_uvws.py '+ pol+' -C hsa7458_v001')
1925

26+
files = ['zen.2457548.46619.xx.HH.uvcR','zen.2457548.46619.yy.HH.uvcR','zen.2457548.46619.xy.HH.uvcR','zen.2457548.46619.yx.HH.uvcR'] #['zen.2457548.*.{xx,yy,xy,yx}.HH.uvcRU'] you can't use glob.glob because it will mess up the order of the polarizations
2027
uv = UVData()
2128
uv.read_miriad(files)
2229
uv.write_miriad('zen.2457548.46619.HH.uvcU')
23-
#OR IF YOU HAVE MORE THAN ONE GROUP OF POLARIZATIONS USE THIS
30+
#-------------------------------------------------------------------------------------------------------
31+
#IF YOU HAVE MORE THAN ONE GROUP OF POLARIZATIONS USE THIS
32+
#-------------------------------------------------------------------------------------------------------
33+
34+
pollist = glob.glob('zen.2457548.46619.*.HH.uvcR')
35+
for pol in pollist:
36+
os.system('python add_uvws.py '+ pol+' -C hsa7458_v001')
37+
2438
#You have to make list and lst.
25-
#list1= glob.glob('zen.2457548.*.{xx,yy,xy,yx}.HH.uvcRU')
26-
# lst=[list1,list2,list3,....] these contain your list of grouped miriad files which will always have length 4 since there are only 4 polarizations.
27-
i=0
28-
for i in np.arange(len(lst)):
29-
mf = lst[i][0].strip('xx.HH.uvcRU')
30-
files=lst[i]
39+
#list1= ['zen.2457548.*.{xx,yy,xy,yx}.HH.uvcRU'] you can't use glob.glob because it will mess up the order of the polarizations
40+
# lists=[list1,list2,list3,....] these contain your list of grouped miriad files which will always have length 4 since there are only 4 polarizations.
41+
42+
for lst in lists:
43+
mf = lst[0].strip('xx.HH.uvcRU')
44+
files=lst
3145
uv = UVData()
3246
uv.read_miriad(files)
3347
uv.write_miriad(mf+'.HH.uvcRU')
3448
os.system('python miriad2uvfits.py ' + mf+'.HH.uvcRU')
49+

0 commit comments

Comments
 (0)