Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/concat.py: 89%
27 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-11-01 07:19 +0000
« prev ^ index » next coverage.py v7.6.4, created at 2024-11-01 07:19 +0000
1##################### generated by xml-casa (v2) from concat.xml ####################
2##################### cb03f5d962db38b1742a644543cef968 ##############################
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_concat import concat as _concat_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
14class _concat:
15 """
16 concat ---- Concatenate several visibility data sets.
19 The list of data sets given in the vis argument are chronologically
20 concatenated into an output data set in concatvis, i.e. the data sets
21 in vis are first ordered by the time of their earliest integration and
22 then concatenated. If concatvis already exists (e.g., it is the same
23 as the first input data set), then the other input data sets will be
24 appended to the concatvis data set.There is no limit to the number of
25 input data sets.
27 If there are fields whose direction agrees within the direction will
28 be the one from the chronologically first input MS. Spectral windows
29 for each data set with the same chanelization, and within a specified
30 frequency tolerance of another data set will be combined into one
31 spectral window.
33 If none of the input data sets have any scratch columns (model and
34 corrected columns), none are created in the concatvis. Otherwise
35 these columns are created on output and initialized to their default
36 value (1 in model column, data in corrected column) for those data
37 with no input columns.
39 Each appended dataset is assigned a new observation id (provided the
40 entries in the observation table are indeed different).
42 --------- parameter descriptions ---------------------------------------------
44 vis Name of input visibility file
45 default: none
47 Example:
48 vis='['src2.ms','ngc5921.ms','ngc315.ms']
49 concatvis Name of visibility file that will contain the
50 concatenated data
51 default: none
53 Example: concatvis='outvis.ms'
55 Note: if this file exits on disk then the input
56 files are added to this file. Otherwise the new
57 file contains the concatenated data. Be careful
58 here when concatenating to an existing file.
59 freqtol Frequency shift tolerance for considering data as the
60 same spwid. The number of channels must also be the same.
61 Default: '' == 1 Hz
63 Example: freqtol='10MHz' will not combine spwid
64 unless they are within 10 MHz.
66 Note: This option is useful to combine spectral
67 windows with very slight frequency differences
68 caused by Doppler tracking, for example.
69 dirtol Direction shift tolerance for considering data as the
70 same field
71 Default: '' == 1 mas (milliarcsec)
73 Example: dirtol='1arcsec' will not combine
74 data for a field unless their phase center
75 differ by less than 1 arcsec.
77 Note: If the field names are different in the
78 input data sets, the name in the output data set
79 will be the first relevant data set in the list.
80 respectname If true, fields with a different name are not merged even
81 if their direction agrees (within dirtol)
82 Default: False
83 timesort If true, sort by TIME in ascending order
84 Default: False (data in order as read in)
86 Example: timesort=True
88 Note: There is no constraint on data that is
89 simultaneously observed for more than one field;
90 for example multi-source correlation of VLBA
91 data.
92 copypointing Make a proper copy of the POINTING subtable
93 Default:True (can be time consuming!)
95 If False, the result is an empty POINTING table.
96 visweightscale List of the weight scaling factors to be applied to the
97 individual MSs
98 Default: [] (empty list) - no scaling
100 The weights of the individual MSs will be scaled
101 in the concatenated output MS by the factors in
102 this list. SIGMA will be scaled by
103 1/sqrt(factor). Useful for handling heterogeneous
104 arrays. Use plotms to inspect the "Wt" column as
105 a reference for determining the scaling factors.
107 Example: [1.,3.,3.] - scale the weights of the
108 second and third MS by a factor 3 and the
109 SIGMA column of these MS by a factor
110 1/sqrt(3).
111 forcesingleephemfield Make sure that there is only one joint ephemeris for every field in this list
112 Default: '' (standard treatment of all ephemeris
113 fields)
115 By default, concat will only merge two ephemeris
116 fields if the first ephemeris covers the time
117 range of the second. Otherwise, two separate
118 fields with separate ephemerides are placed in
119 the output MS.
120 In order to override this behaviour and make
121 concat merge the non-overlapping or only
122 partially overlapping input ephemerides, the name
123 or id of the field in question needs to be placed
124 into the list in parameter
125 'forcesingleephemfield'.
127 Example: ['Neptune'] - will make sure that there
128 is only one joint ephemeris for field Neptune in
129 the output MS
131 --------- examples -----------------------------------------------------------
135 For more information, see the task pages of concat in CASA Docs:
137 https://casa.nrao.edu/casadocs/
140 """
142 _info_group_ = """manipulation"""
143 _info_desc_ = """Concatenate several visibility data sets."""
145 def __call__( self, vis=[ ], concatvis='', freqtol='', dirtol='', respectname=False, timesort=False, copypointing=True, visweightscale=[ ], forcesingleephemfield='' ):
146 schema = {'vis': {'type': 'cReqPathVec', 'coerce': [_coerce.to_list,_coerce.expand_pathvec]}, 'concatvis': {'type': 'cStr', 'coerce': _coerce.to_str}, 'freqtol': {'type': 'cVariant', 'coerce': [_coerce.to_variant]}, 'dirtol': {'type': 'cVariant', 'coerce': [_coerce.to_variant]}, 'respectname': {'type': 'cBool'}, 'timesort': {'type': 'cBool'}, 'copypointing': {'type': 'cBool'}, 'visweightscale': {'type': 'cFloatVec', 'coerce': [_coerce.to_list,_coerce.to_floatvec]}, 'forcesingleephemfield': {'type': 'cVariant', 'coerce': [_coerce.to_variant]}}
147 doc = {'vis': vis, 'concatvis': concatvis, 'freqtol': freqtol, 'dirtol': dirtol, 'respectname': respectname, 'timesort': timesort, 'copypointing': copypointing, 'visweightscale': visweightscale, 'forcesingleephemfield': forcesingleephemfield}
148 assert _pc.validate(doc,schema), create_error_string(_pc.errors)
149 _logging_state_ = _start_log( 'concat', [ 'vis=' + repr(_pc.document['vis']), 'concatvis=' + repr(_pc.document['concatvis']), 'freqtol=' + repr(_pc.document['freqtol']), 'dirtol=' + repr(_pc.document['dirtol']), 'respectname=' + repr(_pc.document['respectname']), 'timesort=' + repr(_pc.document['timesort']), 'copypointing=' + repr(_pc.document['copypointing']), 'visweightscale=' + repr(_pc.document['visweightscale']), 'forcesingleephemfield=' + repr(_pc.document['forcesingleephemfield']) ] )
150 task_result = None
151 try:
152 task_result = _concat_t( _pc.document['vis'], _pc.document['concatvis'], _pc.document['freqtol'], _pc.document['dirtol'], _pc.document['respectname'], _pc.document['timesort'], _pc.document['copypointing'], _pc.document['visweightscale'], _pc.document['forcesingleephemfield'] )
153 except Exception as exc:
154 _except_log('concat', exc)
155 raise
156 finally:
157 task_result = _end_log( _logging_state_, 'concat', task_result )
158 return task_result
160concat = _concat( )