Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/applycal.py: 89%

27 statements  

« prev     ^ index     » next       coverage.py v7.6.4, created at 2024-11-01 07:19 +0000

1##################### generated by xml-casa (v2) from applycal.xml ################## 

2##################### ee4997fc71a7d759055cb0074229e58f ############################## 

3from __future__ import absolute_import 

4import numpy 

5from casatools.typecheck import CasaValidator as _val_ctor 

6_pc = _val_ctor( ) 

7from casatools.coercetype import coerce as _coerce 

8from casatools.errors import create_error_string 

9from .private.task_applycal import applycal as _applycal_t 

10from casatasks.private.task_logging import start_log as _start_log 

11from casatasks.private.task_logging import end_log as _end_log 

12from casatasks.private.task_logging import except_log as _except_log 

13 

14class _applycal: 

15 """ 

16 applycal ---- Apply calibrations solutions(s) to data 

17 

18  

19 Applycal reads the specified gain calibration tables or cal library, 

20 applies them to the (raw) data column (with the specified selection), 

21 and writes the calibrated results into the corrected column. This is 

22 done in one step, so all available calibration tables must be 

23 specified. 

24  

25 Applycal will overwrite existing corrected data, and will flag data 

26 for which there is no calibration available. 

27  

28 Standard data selection is supported. See help par.selectdata for 

29 more information. 

30 

31 --------- parameter descriptions --------------------------------------------- 

32 

33 vis Name of input visibility file 

34 default: non 

35  

36 Example: vis='ngc5921.ms' 

37 field Select field using field id(s) or field name(s) 

38 default: '' --> all fields 

39  

40 Use 'go listobs' to obtain the list id's or 

41 names. If field string is a non-negative integer, 

42 it is assumed a field index, otherwise, it is 

43 assumed a field name. 

44  

45 Examples: 

46 field='0~2'; field ids 0,1,2 

47 field='0,4,5~7'; field ids 0,4,5,6,7 

48 field='3C286,3C295'; field named 3C286 and 

49 3C295 

50 field = '3,4C\*'; field id 3, all names 

51 starting with 4C 

52 spw Select spectral window/channels 

53  

54 Examples: 

55 spw='0~2,4'; spectral windows 0,1,2,4 (all 

56 channels) 

57 spw='<2'; spectral windows less than 2 

58 (i.e. 0,1) 

59 spw='0:5~61'; spw 0, channels 5 to 61, 

60 INCLUSIVE 

61 spw='\*:5~61'; all spw with channels 5 to 61 

62 spw='0,10,3:3~45'; spw 0,10 all channels, spw 

63 3, channels 3 to 45. 

64 spw='0~2:2~6'; spw 0,1,2 with channels 2 

65 through 6 in each. 

66 spw='0:0~10;15~60'; spectral window 0 with 

67 channels 0-10,15-60. (NOTE ';' to separate 

68 channel selections) 

69 spw='0:0~10^2,1:20~30^5'; spw 0, channels 

70 0,2,4,6,8,10, spw 1, channels 20,25,30  

71 type 'help par.selection' for more examples. 

72 intent Select observing intent 

73 default: '' (no selection by intent) 

74  

75 Example: intent='\*BANDPASS\*' (selects data 

76 labelled with BANDPASS intent) 

77 selectdata Other data selection parameters 

78 default: True 

79 timerange Select data based on time range 

80 Subparameter of selectdata=True 

81 default = '' (all) 

82  

83 Examples: 

84 timerange = 

85 'YYYY/MM/DD/hh:mm:ss~YYYY/MM/DD/hh:mm:ss' 

86 (Note: if YYYY/MM/DD is missing date defaults 

87 to first day in data set.) 

88 timerange='09:14:0~09:54:0' picks 40 min on 

89 first day  

90 timerange= '25:00:00~27:30:00' picks 1 hr to 3 

91 hr 30min on NEXT day 

92 timerange='09:44:00' pick data within one 

93 integration of time 

94 timerange='>10:24:00' data after this time 

95 uvrange Select data within uvrange (default units meters) 

96 Subparameter of selectdata=True 

97 default: '' (all) 

98  

99 Examples: 

100 uvrange='0~1000klambda'; uvrange from 0-1000 

101 kilo-lambda 

102 uvrange='>4klambda';uvranges greater than 4 

103 kilolambda 

104 antenna Select data based on antenna/baseline 

105 Subparameter of selectdata=True 

106 default: '' (all) 

107  

108 If antenna string is a non-negative integer, it 

109 is assumed an antenna index, otherwise, it is 

110 assumed as an antenna name 

111  

112 Examples:  

113 antenna='5&6'; baseline between antenna 

114 index 5 and index 6. 

115 antenna='VA05&VA06'; baseline between VLA 

116 antenna 5 and 6. 

117 antenna='5&6;7&8'; baselines with 

118 indices 5-6 and 7-8 

119 antenna='5'; all baselines with antenna index 

120 5 

121 antenna='05'; all baselines with antenna 

122 number 05 (VLA old name) 

123 antenna='5,6,10'; all baselines with antennas 

124 5,6,10 index numbers 

125 scan Scan number range 

126 Subparameter of selectdata=True 

127 default: '' = all 

128 observation Select by observation ID(s) 

129 Subparameter of selectdata=True 

130 default: '' = all 

131  

132 Example: observation='0~2,4' 

133 msselect Optional complex data selection (ignore for now) 

134 docallib Control means of specifying the caltables 

135 default: False --> Use gaintable, gainfield, 

136 interp, spwmap, calwt.  

137  

138 If True, specify a file containing cal library in 

139 callib 

140 callib Cal Library filename 

141 Subparameter of callib=True 

142  

143 If docallib=True, specify a file containing cal 

144 library directives 

145 gaintable Gain calibration table(s) to apply on the fly 

146 Subparameter of callib=False 

147 default: '' (none) 

148  

149 All gain table types: 'G', GSPLINE, 'T', 'B', 

150 'BPOLY', 'D's' can be applied. 

151  

152 Examples: gaintable='ngc5921.gcal' 

153 gaintable=['ngc5921.ampcal','ngc5921.phcal'] 

154 gainfield Select a subset of calibrators from gaintable(s) 

155 Subparameter of callib=False 

156 default:'' --> all sources in table 

157  

158 gaintable='nearest' --> nearest (on sky) 

159 available field in table. Otherwise, same syntax 

160 as field 

161  

162 Examples:  

163 gainfield='0~2,5' means use fields 0,1,2,5 

164 from gaintable 

165 gainfield=['0~3','4~6'] (for multiple 

166 gaintables) 

167 interp Interpolation parmameters (in time[,freq]) for each gaintable, as a list of strings. 

168 Default: '' --> 'linear,linear' for all gaintable(s) 

169 Options: Time: 'nearest', 'linear' 

170 Freq: 'nearest', 'linear', 'cubic', 

171 'spline' 

172 Specify a list of strings, aligned with the list of caltable specified 

173 in gaintable, that contain the required interpolation parameters 

174 for each caltable. 

175  

176 - When frequency interpolation is relevant (B, Df, 

177 Xf), separate time-dependent and freq-dependent 

178 interp types with a comma (freq after the 

179 comma).  

180 - Specifications for frequency are ignored when the 

181 calibration table has no channel-dependence.  

182 - Time-dependent interp options ending in 'PD' 

183 enable a "phase delay" correction per spw for 

184 non-channel-dependent calibration types. 

185 - For multi-obsId datasets, 'perobs' can be 

186 appended to the time-dependent interpolation 

187 specification to enforce obsId boundaries when 

188 interpolating in time.  

189 - For multi-scan datasets, 'perscan' can be 

190 appended to the time-dependent interpolation 

191 specification to enforce scan boundaries when 

192 interpolating in time.  

193 - Freq-dependent interp options can have 'flag' appended 

194 to enforce channel-dependent flagging, and/or 'rel'  

195 appended to invoke relative frequency interpolation 

196  

197 Examples:  

198 interp='nearest' (in time, freq-dep will be 

199 linear, if relevant) 

200 interp='linear,cubic' (linear in time, cubic 

201 in freq) 

202 interp='linearperobs,splineflag' (linear in 

203 time per obsId, spline in freq with 

204 channelized flagging) 

205 interp='nearest,linearflagrel' (nearest in 

206 time, linear in freq with with channelized  

207 flagging and relative-frequency interpolation) 

208 interp=',spline' (spline in freq; linear in 

209 time by default) 

210 interp=['nearest,spline','linear'] (for 

211 multiple gaintables) 

212 spwmap Spectral windows combinations to form for gaintables(s) 

213 Subparameter of callib=False 

214 default: [] (apply solutions from each spw to 

215 that spw only) 

216  

217 Examples: 

218 spwmap=[0,0,1,1] means apply the caltable 

219 solutions from spw = 0 to the spw 0,1 and spw 

220 1 to spw 2,3. 

221 spwmap=[[0,0,1,1],[0,1,0,1]] (for multiple 

222 gaintables) 

223 calwt Calibrate data weights per gaintable. 

224 default: True (for all specified gaintables) 

225  

226 Examples: 

227 calwt=False (for all specified gaintables) 

228 calwt=[True,False,True] (specified per 

229 gaintable) 

230 parang Apply parallactic angle correction 

231 default: False 

232  

233 If True, apply the parallactic angle 

234 correction. FOR ANY POLARIZATION CALIBRATION AND 

235 IMAGING, parang = True 

236 applymode Calibration apply mode 

237 default: 'calflag'  

238 Options: "calflag", "calflagstrict", "trial", 

239 "flagonly", "flagonlystrict", "calonly" 

240  

241 -- applymode='calflag': calibrate data and apply 

242 flags from solutions 

243 -- applymode='trial': report on flags from 

244 solutions, dataset entirely unchanged 

245 -- applymode='flagonly': apply flags from 

246 solutions only, data not calibrated 

247 -- applymode='calonly' calibrate data only, flags 

248 from solutions NOT applied (use with extreme 

249 caution!) 

250 -- applymode='calflagstrict' or 'flagonlystrict' 

251 same as above except flag spws for which 

252 calibration is unavailable in one or more tables 

253 (instead of allowing them to pass uncalibrated 

254 and unflagged) 

255 flagbackup Automatically back up the state of flags before the run? 

256 default: True 

257 

258 --------- examples ----------------------------------------------------------- 

259 

260  

261  

262 For more information, see the task pages of applycal in CASA Docs: 

263  

264 https://casa.nrao.edu/casadocs/ 

265 

266 

267 """ 

268 

269 _info_group_ = """calibration""" 

270 _info_desc_ = """Apply calibrations solutions(s) to data""" 

271 

272 def __call__( self, vis='', field='', spw='', intent='', selectdata=True, timerange='', uvrange='', antenna='', scan='', observation='', msselect='', docallib=False, callib='', gaintable=[ ], gainfield=[ ], interp=[ ], spwmap=[ ], calwt=[ bool(True) ], parang=False, applymode='', flagbackup=True ): 

273 schema = {'vis': {'type': 'cReqPath', 'coerce': _coerce.expand_path}, 'field': {'type': 'cStr', 'coerce': _coerce.to_str}, 'spw': {'type': 'cStr', 'coerce': _coerce.to_str}, 'intent': {'type': 'cStr', 'coerce': _coerce.to_str}, 'selectdata': {'type': 'cBool'}, 'timerange': {'type': 'cStr', 'coerce': _coerce.to_str}, 'uvrange': {'type': 'cVariant', 'coerce': [_coerce.to_variant]}, 'antenna': {'type': 'cStr', 'coerce': _coerce.to_str}, 'scan': {'type': 'cStr', 'coerce': _coerce.to_str}, 'observation': {'anyof': [{'type': 'cStr', 'coerce': _coerce.to_str}, {'type': 'cInt'}]}, 'msselect': {'type': 'cStr', 'coerce': _coerce.to_str}, 'docallib': {'type': 'cBool'}, 'callib': {'type': 'cStr', 'coerce': _coerce.to_str}, 'gaintable': {'type': 'cPathVec', 'coerce': [_coerce.to_list,_coerce.expand_pathvec]}, 'gainfield': {'type': 'cStrVec', 'coerce': [_coerce.to_list,_coerce.to_strvec]}, 'interp': {'type': 'cStrVec', 'coerce': [_coerce.to_list,_coerce.to_strvec]}, 'spwmap': {'type': 'cVariant', 'coerce': [_coerce.to_variant]}, 'calwt': {'type': 'cBoolVec', 'coerce': [_coerce.to_list,_coerce.to_boolvec]}, 'parang': {'type': 'cBool'}, 'applymode': {'type': 'cStr', 'coerce': _coerce.to_str, 'allowed': [ 'calonly', 'flagonlystrict', 'calflag', 'flagonly', 'trial', '', 'calflagstrict' ]}, 'flagbackup': {'type': 'cBool'}} 

274 doc = {'vis': vis, 'field': field, 'spw': spw, 'intent': intent, 'selectdata': selectdata, 'timerange': timerange, 'uvrange': uvrange, 'antenna': antenna, 'scan': scan, 'observation': observation, 'msselect': msselect, 'docallib': docallib, 'callib': callib, 'gaintable': gaintable, 'gainfield': gainfield, 'interp': interp, 'spwmap': spwmap, 'calwt': calwt, 'parang': parang, 'applymode': applymode, 'flagbackup': flagbackup} 

275 assert _pc.validate(doc,schema), create_error_string(_pc.errors) 

276 _logging_state_ = _start_log( 'applycal', [ 'vis=' + repr(_pc.document['vis']), 'field=' + repr(_pc.document['field']), 'spw=' + repr(_pc.document['spw']), 'intent=' + repr(_pc.document['intent']), 'selectdata=' + repr(_pc.document['selectdata']), 'timerange=' + repr(_pc.document['timerange']), 'uvrange=' + repr(_pc.document['uvrange']), 'antenna=' + repr(_pc.document['antenna']), 'scan=' + repr(_pc.document['scan']), 'observation=' + repr(_pc.document['observation']), 'msselect=' + repr(_pc.document['msselect']), 'docallib=' + repr(_pc.document['docallib']), 'callib=' + repr(_pc.document['callib']), 'gaintable=' + repr(_pc.document['gaintable']), 'gainfield=' + repr(_pc.document['gainfield']), 'interp=' + repr(_pc.document['interp']), 'spwmap=' + repr(_pc.document['spwmap']), 'calwt=' + repr(_pc.document['calwt']), 'parang=' + repr(_pc.document['parang']), 'applymode=' + repr(_pc.document['applymode']), 'flagbackup=' + repr(_pc.document['flagbackup']) ] ) 

277 task_result = None 

278 try: 

279 task_result = _applycal_t( _pc.document['vis'], _pc.document['field'], _pc.document['spw'], _pc.document['intent'], _pc.document['selectdata'], _pc.document['timerange'], _pc.document['uvrange'], _pc.document['antenna'], _pc.document['scan'], _pc.document['observation'], _pc.document['msselect'], _pc.document['docallib'], _pc.document['callib'], _pc.document['gaintable'], _pc.document['gainfield'], _pc.document['interp'], _pc.document['spwmap'], _pc.document['calwt'], _pc.document['parang'], _pc.document['applymode'], _pc.document['flagbackup'] ) 

280 except Exception as exc: 

281 _except_log('applycal', exc) 

282 raise 

283 finally: 

284 task_result = _end_log( _logging_state_, 'applycal', task_result ) 

285 return task_result 

286 

287applycal = _applycal( ) 

288