Commits
28 28 | |
29 29 | rempol=False |
30 30 | if ((type(tablein)==str) & (os.path.exists(tablein))): |
31 31 | if type(caltable)==str and len(caltable)>0: |
32 32 | |
33 33 | if os.path.exists(caltable): |
34 34 | raise Exception, 'Output caltable='+caltable+' exists. Choose another name or delete it.' |
35 35 | |
36 36 | casalog.post("New caltable, "+caltable+", corrected for linear polarization, will be generated.") |
37 37 | mytb.open(tablein) |
38 - | mytb.copy(newtablename=caltable,deep=True) |
38 + | myout=mytb.copy(newtablename=caltable,deep=True) |
39 39 | mytb.close() |
40 + | myout.close() |
40 41 | rempol=True |
41 42 | else: |
42 43 | casalog.post("No new caltable will be generated") |
43 44 | caltable=tablein |
44 45 | else: |
45 46 | raise Exception, 'input calibration table not found - please verify the name' |
46 47 | |
47 48 | |
48 49 | if paoffset!=0.0: |
49 50 | casalog.post("NB: default band position angle will be offset by "+str(paoffset)+"deg.") |
79 80 | decr=dirs[1,ifld] |
80 81 | IQUV[fldnames[ifld]]={} |
81 82 | for ispw in uspws: |
82 83 | |
83 84 | r=mypl.zeros(nant) |
84 85 | q=mypl.zeros(nant) |
85 86 | u=mypl.zeros(nant) |
86 87 | antok=mypl.zeros(nant,dtype=bool) |
87 88 | |
88 89 | for iant in range(nant): |
89 - | st=mytb.query('FIELD_ID=='+str(ifld)+' && SPECTRAL_WINDOW_ID=='+str(ispw)+' && ANTENNA1=='+str(iant)) |
90 + | qstring='FIELD_ID=='+str(ifld)+' && SPECTRAL_WINDOW_ID=='+str(ispw)+' && ANTENNA1=='+str(iant) |
91 + | st=mytb.query(query=qstring) |
90 92 | nrows=st.nrows() |
91 93 | if nrows > 0: |
92 94 | |
93 95 | times=st.getcol('TIME') |
94 96 | gains=st.getcol('CPARAM') |
95 97 | flags=st.getcol('FLAG') |
96 98 | flags=mypl.logical_or(flags[0,0,:],flags[1,0,:]) # 1D |
97 99 | |
98 100 | # Escape if insufficient data |
99 101 | if (nrows-mypl.sum(flags))<3: |
150 152 | |
151 153 | if rempol: |
152 154 | if p<1.0: |
153 155 | Qpsi=q[iant]*mypl.cos(2*parang) + u[iant]*mypl.sin(2*parang) |
154 156 | gains[0,0,:]/=mypl.sqrt(1.0+Qpsi) |
155 157 | gains[1,0,:]/=mypl.sqrt(1.0-Qpsi) |
156 158 | st.putcol('CPARAM',gains) |
157 159 | else: |
158 160 | st.close() |
159 161 | raise Exception, 'Spurious fractional polarization!' |
160 - | |
162 + | |
161 163 | st.close() |
162 164 | |
163 165 | nantok=mypl.sum(antok) |
164 166 | if nantok>0: |
165 167 | Q[ispw,ifld]=mypl.sum(q)/nantok |
166 168 | U[ispw,ifld]=mypl.sum(u)/nantok |
167 169 | R[ispw,ifld]=mypl.sum(r)/nantok |
168 170 | mask[ispw,ifld]=True |
169 171 | |
170 172 | P=sqrt(Q[ispw,ifld]**2+U[ispw,ifld]**2) |