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

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 visstat.xml ################### 

2##################### c86ed6b951fe8f7d2801da8c7294893f ############################## 

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_visstat import visstat as _visstat_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 _visstat: 

15 """ 

16 visstat ---- Calculates statistical information from a MeasurementSet 

17 

18 --------- parameter descriptions --------------------------------------------- 

19 

20 vis Name of MeasurementSet or Multi-MS 

21 axis Values on which to compute statistics 

22 datacolumn Which data column to use (data, corrected, model, float_data) 

23 useflags Take flagging into account? 

24 spw spectral-window/frequency/channel 

25 field Field names or field index numbers: \'\'==>all, field=\'0~2,3C286\' 

26 selectdata More data selection parameters (antenna, timerange etc) 

27 antenna antenna/baselines: \'\'==>all, antenna = \'3,VA04\' 

28 uvrange uv range: \'\'==>all; uvrange = \'0~100klambda\', default units=meters 

29 timerange time range: \'\'==>all, timerange=\'09:14:0~09:54:0\' 

30 correlation Select data based on correlation 

31 scan scan numbers: \'\'==>all 

32 array (sub)array numbers: \'\'==>all 

33 observation observation ID number(s): \'\' = all 

34 timeaverage Average data in time. 

35 timebin Bin width for time averaging. 

36 timespan Span the timebin across scan, state or both. 

37 maxuvwdistance Maximum separation of start-to-end baselines that can be included in an average. (meters) 

38 disableparallel Hidden parameter for internal use only. Do not change it! 

39 ddistart Hidden parameter for internal use only. Do not change it! 

40 taql Table query for nested selections 

41 monolithic_processing Hidden parameter for internal use only. Do not change it! 

42 intent Select data by scan intent. 

43 reportingaxes Which reporting axis to use (ddid, field, integration) 

44 doquantiles If False, quantile-like statistics are not computed. These include the first and third quartiles, the median, and the median of the absolute deviation from the median. 

45 RETURNS record 

46 

47 --------- examples ----------------------------------------------------------- 

48 

49  

50  

51 This task returns statistical information about data in a MeasurementSet 

52 or Multi-MS. 

53  

54 The following statistics are computed: mean value, sum of values, sum of 

55 squared values, median, median absolute deviation, first and third 

56 quartiles, minimum, maximum, variance, standard deviation, and root mean 

57 square. 

58  

59 Statistics may be computed on any of the following values: flag, antenna1, 

60 antenna2, feed1, feed2, field_id, array_id, data_desc_id, flag_row, 

61 interval, scan_number, time, weight_spectrum, amplitude, phase, real, 

62 imaginary, and uvrange (for the 'axis' parameter value, 'amp' is treated 

63 as an alias for amplitude, as are 'imag' for imaginary, and 'scan' for 

64 scan_number.) 

65  

66 The 'reportingaxes' argument is used to partition the sample set along an 

67 axis. For example, setting its value to 'ddid' will result in the 

68 statistics of the chosen sample values partitioned by unique values of the 

69 data description id. Thus setting 'axis' to 'amp' and 'reportingaxes' to 

70 'ddid' will report statistics of visibility amplitudes for each unique 

71 value of data description id in the MeasurementSet. 

72  

73 Optionally, the statistical information can be computed based only 

74 on a given subset of the MeasurementSet. 

75  

76 Note: If the MS consists of inhomogeneous data, for example several 

77 spectral windows each having a different number of channels, it may be 

78 necessary to use selection parameters to select a homogeneous subset of 

79 the MS, e.g. spw='2'. 

80  

81 Keyword arguments: 

82  

83 vis --- Name of input MeasurementSet or Multi-MS 

84 default: '', example: vis='my.ms' 

85  

86 axis -- Which data to analyze. 

87  

88 default: 'amplitude' 

89 axis='phase' 

90 axis='imag' 

91 axis='scan_number' 

92 axis='flag' 

93  

94 The phase of a complex number is in radians in the range [-pi; pi]. 

95  

96  

97 datacolumn -- Which data column to use for complex data. 

98 default: 'data' 

99 datacolumn='data' 

100 datacolumn='corrected' 

101 datacolumn='model' 

102 datacolumn='float_data' 

103  

104 useflags -- Take MS flags into account? 

105 default: True 

106 useflags=False 

107 useflags=True 

108 If useflags=False, flagged values are included in the statistics. 

109 If useflags=True, any flagged values are not used in the statistics. 

110  

111 spw -- Select data based on spectral window and channels 

112 default: '' (all); example: spw='1' 

113 spw='<2' #spectral windows less than 2 

114 spw='>1' #spectral windows greater than 1 

115 spw='0:0~10' # first 10 channels from spw 0 

116 spw='0:0~5;56~60' # multiple separated channel chunks. 

117  

118 field -- Select data based on field id(s) or name(s) 

119 default: '' (all); example: field='1' 

120 field='0~2' # field ids inclusive from 0 to 2 

121 field='3C*' # all field names starting with 3C 

122  

123 selectdata -- Other data selection parameters 

124 default: True 

125 antenna -- Select data based on baseline 

126 default: '' (all); example: antenna='5&6' baseline 5-6 

127 antenna='5&6;7&8' #baseline 5-6 and 7-8 

128 antenna='5' # all baselines with antenna 5 

129 antenna='5,6' # all baselines with antennas 5 and 6 

130 correlation -- Correlation types 

131 default: '' (all); 

132 example: correlation='RR LL' 

133 uvrange -- Select data within uvrange (default units meters) 

134 default: '' (all); example: 

135 uvrange='0~1000klambda'; uvrange from 0-1000 kilo-lambda 

136 uvrange='>4klambda';uvranges greater than 4 kilo-lambda 

137 uvrange='0~1000km'; uvrange in kilometers 

138 timerange -- Select data based on time range: 

139 default = '' (all); example, 

140 timerange = 'YYYY/MM/DD/hh:mm:ss~YYYY/MM/DD/hh:mm:ss' 

141 Note: YYYY/MM/DD can be dropped as needed: 

142 timerange='09:14:0~09:54:0' # this time range 

143 timerange='09:44:00' # data within one integration of time 

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

145 timerange='09:44:00+00:13:00' #data 13 minutes after time 

146 scan -- Select data based on scan number 

147 default: '' (all); example: scan='>3' 

148 array -- Selection based on the antenna array 

149 observation -- Selection by observation ID(s). 

150 default: '' (all); example: observation='1~3' 

151  

152  

153  

154  

155 --- Time averaging parameters --- 

156 timeaverage -- Average data in time. Flagged data will be included in the 

157 average calculation, unless the parameter useflags is set to True. In this 

158 case only partially flagged rows will be used in the average. 

159 default: False 

160  

161 timebin -- Bin width for time averaging. 

162 default: '0s' 

163  

164 timespan -- Let the timebin span across scan, state or both. 

165 State is equivalent to sub-scans. One scan may have several 

166 state ids. For ALMA MSs, the sub-scans are limited to about 

167 30s duration each. In these cases, the task will automatically 

168 add state to the timespan parameter. To see the number of states 

169 in an MS, use the msmd tool. See help msmd. 

170  

171 default: '' (separate time bins by both of the above) 

172 options: 'scan', 'state', 'state,scan' 

173  

174 examples: 

175 timespan = 'scan'; can be useful when the scan number 

176 goes up with each integration as in many WSRT MSs. 

177 timespan = ['scan', 'state']: disregard scan and state 

178 numbers when time averaging. 

179 timespan = 'state,scan'; same as above. 

180  

181 maxuvwdistance -- Provide a maximum separation of start-to-end baselines 

182 that can be included in an average. (int) 

183 default: 0.0 (given in meters) 

184  

185  

186  

187  

188  

189  

190  

191  

192 

193 

194 """ 

195 

196 _info_group_ = """information""" 

197 _info_desc_ = """Calculates statistical information from a MeasurementSet""" 

198 

199 def __call__( self, vis='', axis='amplitude', datacolumn='data', useflags=True, spw='', field='', selectdata=True, antenna='', uvrange='', timerange='', correlation='', scan='', array='', observation='', timeaverage=False, timebin='0s', timespan='', maxuvwdistance=float(0.0), disableparallel=False, ddistart=int(-1), taql='', monolithic_processing=False, intent='', reportingaxes='ddid', doquantiles=True ): 

200 schema = {'vis': {'type': 'cReqPath', 'coerce': _coerce.expand_path}, 'axis': {'type': 'cStr', 'coerce': _coerce.to_str, 'allowed': [ 'data_desc_id', 'field_id', 'flag', 'imaginary', 'feed1', 'flag_row', 'interval', 'imag', 'phase', 'array_id', 'amp', 'real', 'antenna2', 'weight_spectrum', 'scan_number', 'amplitude', 'uvrange', 'antenna1', 'feed2', 'time', 'scan' ]}, 'datacolumn': {'type': 'cStr', 'coerce': _coerce.to_str, 'allowed': [ 'data', 'corrected', 'model', 'float_data' ]}, 'useflags': {'type': 'cBool'}, 'spw': {'type': 'cStr', 'coerce': _coerce.to_str}, 'field': {'type': 'cStr', 'coerce': _coerce.to_str}, 'selectdata': {'type': 'cBool'}, 'antenna': {'type': 'cStr', 'coerce': _coerce.to_str}, 'uvrange': {'type': 'cStr', 'coerce': _coerce.to_str}, 'timerange': {'type': 'cStr', 'coerce': _coerce.to_str}, 'correlation': {'type': 'cStr', 'coerce': _coerce.to_str}, 'scan': {'type': 'cStr', 'coerce': _coerce.to_str}, 'array': {'type': 'cStr', 'coerce': _coerce.to_str}, 'observation': {'anyof': [{'type': 'cStr', 'coerce': _coerce.to_str}, {'type': 'cInt'}]}, 'timeaverage': {'type': 'cBool'}, 'timebin': {'type': 'cStr', 'coerce': _coerce.to_str}, 'timespan': {'anyof': [{'type': 'cStr', 'coerce': _coerce.to_str}, {'type': 'cStrVec', 'coerce': [_coerce.to_list,_coerce.to_strvec]}]}, 'maxuvwdistance': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'disableparallel': {'type': 'cBool'}, 'ddistart': {'type': 'cInt'}, 'taql': {'type': 'cStr', 'coerce': _coerce.to_str}, 'monolithic_processing': {'type': 'cBool'}, 'intent': {'anyof': [{'type': 'cStr', 'coerce': _coerce.to_str}, {'type': 'cStrVec', 'coerce': [_coerce.to_list,_coerce.to_strvec]}, {'type': 'cInt'}, {'type': 'cIntVec', 'coerce': [_coerce.to_list,_coerce.to_intvec]}]}, 'reportingaxes': {'type': 'cStr', 'coerce': _coerce.to_str, 'allowed': [ 'ddid', 'field', 'integration' ]}, 'doquantiles': {'type': 'cBool'}} 

201 doc = {'vis': vis, 'axis': axis, 'datacolumn': datacolumn, 'useflags': useflags, 'spw': spw, 'field': field, 'selectdata': selectdata, 'antenna': antenna, 'uvrange': uvrange, 'timerange': timerange, 'correlation': correlation, 'scan': scan, 'array': array, 'observation': observation, 'timeaverage': timeaverage, 'timebin': timebin, 'timespan': timespan, 'maxuvwdistance': maxuvwdistance, 'disableparallel': disableparallel, 'ddistart': ddistart, 'taql': taql, 'monolithic_processing': monolithic_processing, 'intent': intent, 'reportingaxes': reportingaxes, 'doquantiles': doquantiles} 

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

203 _logging_state_ = _start_log( 'visstat', [ 'vis=' + repr(_pc.document['vis']), 'axis=' + repr(_pc.document['axis']), 'datacolumn=' + repr(_pc.document['datacolumn']), 'useflags=' + repr(_pc.document['useflags']), 'spw=' + repr(_pc.document['spw']), 'field=' + repr(_pc.document['field']), 'selectdata=' + repr(_pc.document['selectdata']), 'antenna=' + repr(_pc.document['antenna']), 'uvrange=' + repr(_pc.document['uvrange']), 'timerange=' + repr(_pc.document['timerange']), 'correlation=' + repr(_pc.document['correlation']), 'scan=' + repr(_pc.document['scan']), 'array=' + repr(_pc.document['array']), 'observation=' + repr(_pc.document['observation']), 'timeaverage=' + repr(_pc.document['timeaverage']), 'timebin=' + repr(_pc.document['timebin']), 'timespan=' + repr(_pc.document['timespan']), 'maxuvwdistance=' + repr(_pc.document['maxuvwdistance']), 'disableparallel=' + repr(_pc.document['disableparallel']), 'ddistart=' + repr(_pc.document['ddistart']), 'taql=' + repr(_pc.document['taql']), 'monolithic_processing=' + repr(_pc.document['monolithic_processing']), 'intent=' + repr(_pc.document['intent']), 'reportingaxes=' + repr(_pc.document['reportingaxes']), 'doquantiles=' + repr(_pc.document['doquantiles']) ] ) 

204 task_result = None 

205 try: 

206 task_result = _visstat_t( _pc.document['vis'], _pc.document['axis'], _pc.document['datacolumn'], _pc.document['useflags'], _pc.document['spw'], _pc.document['field'], _pc.document['selectdata'], _pc.document['antenna'], _pc.document['uvrange'], _pc.document['timerange'], _pc.document['correlation'], _pc.document['scan'], _pc.document['array'], _pc.document['observation'], _pc.document['timeaverage'], _pc.document['timebin'], _pc.document['timespan'], _pc.document['maxuvwdistance'], _pc.document['disableparallel'], _pc.document['ddistart'], _pc.document['taql'], _pc.document['monolithic_processing'], _pc.document['intent'], _pc.document['reportingaxes'], _pc.document['doquantiles'] ) 

207 except Exception as exc: 

208 _except_log('visstat', exc) 

209 raise 

210 finally: 

211 task_result = _end_log( _logging_state_, 'visstat', task_result ) 

212 return task_result 

213 

214visstat = _visstat( ) 

215