<casaxml xsi:schemaLocation="http://casa.nrao.edu/schema/casa.xsd file:///opt/casa/code/xmlcasa/xml/casa.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://casa.nrao.edu/schema/psetTypes.html">
<task category="manipulation" name="split" type="function">
<shortdescription>Create a visibility subset from an existing visibility set</shortdescription>
Split is the general purpose program to make a new data set that is a
subset or averaged form of an existing data set. General selection
parameters are included, and one or all of the various data columns
(DATA, LAG_DATA and/or FLOAT_DATA, MODEL_DATA and/or CORRECTED_DATA)
Split is often used after the initial calibration of the data to make
a smaller Measurement Set with only the data that will be used in
further flagging, imaging and/or self-calibration. Split can average
over frequency (channels) and time (integrations).
The split task uses the MSTransform framework underneath. Split also
supports the Multi-MS (MMS) format as input.
<param mustexist="true" name="vis" type="path">
<shortdescription>Name of input visibility file</shortdescription>
<description>Name of input visibility file
Example: vis='ngc5921.ms'
<param mustexist="false" name="outputvis" type="path">
<shortdescription>Name of output visibility file</shortdescription>
<description>Name of output visibility file
Default: '' (same as vis)
Example: outputvis='ngc5921_out.ms'
IMPORTANT: if a .flagversions file with the name
of the output MS exist, this task will exit with
an error. The user needs to rename or remove the
existing flagbackup or choose a different output
<param name="keepmms" type="bool">
<shortdescription>If the input is a Multi-MS the output will also be a Multi-MS.</shortdescription>
<description>Create a Multi-MS as the output if the input is a
By default it will create a Multi-MS when the
input is a Multi-MS. The output Multi-MS will
have the same partition axis of the input
MMS. See CASA Docs for more information on
NOTE: It is not possible to do time average with
combine='scan' if the input MMS was partitioned
with separationaxis='scan' or 'auto'. In this
case, the task will abort with an error.
<param name="field" type="any">
<shortdescription>Select field using field id(s) or field name(s)</shortdescription>
<description>Select field using field id(s) or field name(s)
Use 'go listobs' to obtain the list id's or
names. If field string is a non-negative integer,
it is assumed a field index, otherwise, it is
field='0~2'; field ids 0,1,2
field='0,4,5~7'; field ids 0,4,5,6,7
field='3C286,3C295'; field named 3C286 and
field = '3,4C\*'; field id 3, all names
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="spw" type="any">
<shortdescription>Select spectral window/channels</shortdescription>
<description>Select spectral window/channels
Default: ''=all spectral windows and channels
spw='0~2,4'; spectral windows 0,1,2,4 (all channels)
spw='<2'; spectral windows less than 2 (i.e. 0,1)
spw='0:5~61'; spw 0, channels 5 to 61
spw='0,10,3:3~45'; spw 0,10 all channels, spw
spw='0~2:2~6'; spw 0,1,2 with channels 2
spw = '\*:3~64' channels 3 through 64 for all sp id's
spw = ' :3~64' will NOT work.
NOTE: mstransform does not support multiple
channel ranges per spectral window (';').
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="scan" type="any">
<shortdescription>Scan number range</shortdescription>
<description>Scan number range
Subparameter of selectdata=True
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="antenna" type="any">
<shortdescription>Select data based on antenna/baseline</shortdescription>
<description>Select data based on antenna/baseline
Subparameter of selectdata=True
If antenna string is a non-negative integer, it
is assumed an antenna index, otherwise, it is
assumed as an antenna name
antenna='5&6'; baseline between antenna
antenna='VA05&VA06'; baseline between VLA
antenna='5&6;7&8'; baselines with
antenna='5'; all baselines with antenna index
antenna='05'; all baselines with antenna
antenna='5,6,10'; all baselines with antennas
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="correlation" type="any">
<shortdescription>Select data based on correlation</shortdescription>
<description>Select data based on correlation
Example: correlation="XX,YY".
<type>string</type><type>stringVec</type>
<param name="timerange" type="any">
<shortdescription>Select data based on time range</shortdescription>
<description>Select data based on time range
Subparameter of selectdata=True
'YYYY/MM/DD/hh:mm:ss~YYYY/MM/DD/hh:mm:ss'
(Note: if YYYY/MM/DD is missing date defaults
to first day in data set.)
timerange='09:14:0~09:54:0' picks 40 min on
timerange= '25:00:00~27:30:00' picks 1 hr to 3
timerange='09:44:00' pick data within one
timerange='>10:24:00' data after this time
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="intent" type="any">
<shortdescription>Select observing intent</shortdescription>
<description>Select observing intent
Default: '' (no selection by intent)
Example: intent='*BANDPASS*' (selects data
labelled with BANDPASS intent)
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="array" type="any">
<shortdescription>Select (sub)array(s) by array ID number.</shortdescription>
<description>(Sub)array number range
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="uvrange" type="any">
<shortdescription>Select data by baseline length.</shortdescription>
<description>Select data by baseline length.
uvrange='0~1000klambda'; uvrange from 0-1000 kilo-lambda
uvrange='>4klambda';uvranges greater than 4 kilo-lambda
uvrange='0~1000km'; uvrange in kilometers
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="observation" type="any">
<shortdescription>Select by observation ID(s)</shortdescription>
<description>Select by observation ID(s)
Subparameter of selectdata=True
Example: observation='0~2,4'
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param name="feed" type="any">
<shortdescription>Multi-feed numbers: Not yet implemented.</shortdescription>
<description>Selection based on the feed
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<param ignorecase="True" name="datacolumn" type="string">
<shortdescription>Which data column(s) to process.</shortdescription>
<description>Which data column(s) to use for processing
Options: 'data', 'model', 'corrected',
'all','float_data', 'lag_data',
'float_data,data', 'lag_data,data'
Example: datacolumn='data'
NOTE: 'all' = whichever of the above that are
present. If the requested column does not exist,
the task will exit with an error.
<allowed ignorecase="True" kind="enum">
<value>data,model,corrected</value>
<value>float_data</value>
<value>float_data,data</value>
<value>lag_data,data</value>
<param name="keepflags" type="bool">
<description>Keep *completely flagged rows* instead of dropping them.
Default: True (keep completely flagged rows in
Keepflags has no effect on partially flagged
rows. All of the channels and correlations of a
row must be flagged for it to be droppable, and a
row must be well defined to be keepable.
IMPORTANT: Regardless of this parameter, flagged
data is never included in channel averaging. On
the other hand, partially flagged rows will
always be included in time averaging. The average
value of the flagged data for averages containing
ONLY flagged data in the relevant output channel
will be written to the output with the
corresponding flag set to True, while only
unflagged data is used on averages where there is
some unflagged data with the flag set to False.
<param name="width" type="any">
<shortdescription>Number of channels to average to form one output channel</shortdescription>
<description>Number of channels to average to form one output channel
If a list is given, each bin will apply to one
Default: 1 (no channel average)
Example: chanbin=[2,3] => average 2 channels
of 1st selected spectral window and 3 in the
<type>string</type><type>stringVec</type><type>int</type><type>intVec</type>
<value type="int">1</value>
<param name="timebin" type="string">
<shortdescription>Bin width for time averaging</shortdescription>
<description>Bin width for time averaging
Bin width for time averaging. When timebin is
greater than 0s, the task will average data in
time. Flagged data will be included in the
average calculation, unless the parameter
keepflags is set to False. In this case only
partially flagged rows will be used in the
<value type="string">0s</value>
<param subparam="true" name="combine" type="any">
<shortdescription>Span the timebin across scan, state or both</shortdescription>
<description>Let the timebin span across scan, state or both.
Default: '' (separate time bins by both of the
Options: 'scan', 'state', 'state,scan'
State is equivalent to sub-scans. One scan may
have several state ids. For ALMA MSs, the
sub-scans are limited to about 30s duration
each. In these cases, the task will automatically
add state to the combine parameter. To see the
number of states in an MS, use the msmd tool. See
- combine = 'scan'; can be useful when the scan
number goes up with each integration as in
- combine = ['scan', 'state']: disregard scan
and state numbers when time averaging.
- combine = 'state,scan'; same as above.
NOTE: It is not possible to do time average with
combine='scan' if the input MMS was partitioned
with separationaxis='scan' or 'auto'. In this
case, the task will abort with an error.
<type>string</type><type>stringVec</type>
<notequals value="0s" type="string">
<default param="combine"><value type="string"/></default>
For more information, see the task pages of split in CASA Docs:
https://casa.nrao.edu/casadocs/
<returns>void</returns></task>