columns A1_PhiSector and A2_PhiSector are required
Return values
phi_masks
see the schema of the example output below
Parameters:
Input: required columns are the \(\phi\)-sectors of the antenna pairs, A1_PhiSector and A2_PhiSector.
Output schema: one column (masks) will be attached to the input dataframe,
$ A1_PhiSector <u8>
$ A2_PhiSector <u8>
$ masks <array[bool, (1, 360)]>
Explanation:
\(\phi\)-sector 1 is centered around 0 degrees azimuth, \(\phi\)-sector 2 around 15 degrees, and so on and so forth; the last \(\phi\) sector (24) is centered around 345 degrees.
Based on the antenna's field of view, the values outside a certain range are dropped.
In the figure below, we show what this would look like for antennas from the first three and the last \(\phi\)-sectors (white means masked).
Example masks of a few phi-sectors
The chosen masking behavior for now is that only the data within the overlapping unmasked range would be kept.
For instance, suppose an antenna from \(\phi\)-sector 1 is paired with an antenna from \(\phi\)-sector 2, then:
Example superimposed masks
Warning
Thus, if the antenna pair's fields of view do not overlap, then everything will be masked.
Parameters: columns correlation and correlation maps will be added to the input, so the output schema looks like
$ A1_AntNum <enum>
$ A2_AntNum <enum>
$ Pol <enum>
$ A1_waveforms (volts) <array[f64, 3072]>
$ A2_waveforms (volts) <array[f64, 3072]>
$ time delays [samples] <array[i64, (180, 360)]>
$ masks <array[bool, (1, 360)]>
$ correlation <array[f64, 6143]>
$ correlation maps <array[f64, (180, 360)]>
correlation maps contain correlation skymaps. These are matrices with the same dimensions as the time delay maps of time delays [samples], as the former are made based on the latter via "fancy-indexing"
Each matrix element of a correlation skymap is the correlation score between two waveforms, given some particular time delay, ie. phase shift.
masks can be used to mask the correlation maps, as shown in the bottom subplot in the Figure above. The masks are defined by supply_azimuthal_angle_masks.
Explanation:
Consider two waveforms,
Each row in the correlation column is an array of correlation scores.
By shifting the waveforms we may be able to get them to align perfectly, at which point maximum correlation is achieved.
The correlation score tells us how "aligned" the two waveforms are after we phase shift A1_waveforms (volts) against A2_waveforms (volts) by a certain amount of time.
The waveforms are zero-centered and normalized such that the cross-correlation is bounded between [-1,1]. Zero means the waveforms are not aligned at all.