Skip to content
Gijs Molenaar edited this page Feb 13, 2014 · 5 revisions

A MeqSink node is associated with one interferometer. It is connected to an input visibility stream. The node has one child. For each matching tile in the stream, it generates a Request object with a Cells that matches the time/frequency gridding of the tile. Optionally, the Result of the request is then put back into the tile, and the tile is sent to the output stream.

Note: usually, a matching MeqSpigot node somewhere up the tree will read visibility data from the same tile. However, in some cases, such as predict-only (i.e. simulation) trees, input visibilities are ignored, and only the time-frequency grids are used.

A MeqSink is controlled by the following fields of its init-record: [[!table header="no" class="mointable" data=""" field | default | description WARNING: rowspan not implemented station_1_index | | interferometer pair station_2_index |
output_col | "" | tile column to store Result in, empty for none corr_index | [] | correlation map (see below) WARNING: rowspan not implemented flag_mask | 0 | see FlagManagement flag_bit | 0


A MeqSink does not necessarily have to deal in visibility data. For example, a sink that writes weights can be created by specifying "WEIGHT" for the output column. In case of visibility columns, however, MeqSink can gracefully handle tensor results (see [[TensorMath|TensorMath]]), and match their components to correlations in the tile. This is controlled by the `corr_index` field: 

* If empty: a one-to-one mapping is used, and an error will be thrown if the number of [[VellSets|VellSets]] in the [[Result]] does not match the number of correlations. 
* If non-empty: must be a vector of indices. Tensor element `i` is then mapped to correlation `corr_index[i]` of the tile. If `corr_index[i]<0` (or `<=0` in Glish), the element is ignored. 
Note that, as usual, tensor elements are decomposed in row-major order. I.e., the elements of a 2x2 tensor are numbered as follows: 
[[!table header="no" class="mointable" data="""
0 | 1
2 | 3

See MeqSpigot for more information on dealing with correlations and tensors. Example 1 : The tiles contain four correlations: XX XY YX YY. The MeqSink is attached to a full-polarization tree, and its child's Result is a 2x2 coherency matrix. The right correlation map in this case is [0,1,2,3] (or [1,2,3,4] in Glish). This happens to be equivalent to leaving corr_index empty.

Example 2 : The tiles contain two correlations: XX YY. The child will return a 2x2 coherency matrix, and the off-diagonal terms have to be ignored. The right correlation map in this case is [0,-1,-1,1] (or [1,0,0,2] in Glish).

Example 3 : The tiles contain four correlations: XX XY YX YY. The child returns a 2-vector of XX and YY coherencies. The right correlation map in this case is [0,3] (or [1,4] in Glish).

Clone this wiki locally