RadioAstronomySoftwareGroup / RadioAstronomySoftwareGroup/pyuvdata

A more flexible polarization option for UVH5

Open
#927 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement needs research UVData
Dominant language
Python
Stars
102
Forks
35
Avg merge
1d 20h
Merged PRs (30d)
14

Description

UVH5 requires that all cross-polarizations for each pair of antennas are grouped together in the visdata dataset. In fact, Npols is a dimension of visdata. This is fine for radio telescope arrays where both polarizations of all antennas are connected to the correlator in an orderly manner, but it's a bit inflexible when it comes to less orthodox antenna-polarization to correlator input mappings. One such alternate mapping is the swapping of inputs that is often done for diagnostic purposes. Another alternate mapping is when the array has more antennas than correlator inputs, but some antennas have a faulty polarization (e.g. a broken LNA). In this case, some cross-polarizations are not present at all and some of the Npols visibilities for a given pair of "dual pol" (but not really) inputs might actually not be two different polarizations from each of two antennas, but arbitrary polarizations from each of two to four antennas! Clearly the Npols sized polarization_array dataset will not capture this information.

I think the current approach works great for "well behaved" arrays/correlators and is too entrenched (and intertwined with UVData) to change now, so I propose that an optional, more flexible approach to dual polarization data be developed. One idea would be to eliminate the Npols dimension of visdata (et al.) and effectively include that factor in Nblts instead. This would basically quadruple the size of Header datasets dimensioned by Nblts, but it would not significantly increase the size of the overall file since it is so largely dominated by visdata whose size would remain the same (or even shrink slightly since the redundant cross-pol autocorrelation products could be omitted). In this mode, the polarization_array would have length Nblts, one entry for each cross-product. To indicate that the dataset was written using this optional mode, Npols could be set to some "special" value (e.g. 0, which is not a specified cross-polarization value in AIPS memo 117). This is just an idea at this point, but I do think it would be good to specify such an optional approach so as to discourage the proliferation of incompatible methods for dealing with data from such "avant-guade" instruments.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the UVH5 handling around the visdata, Npols, polarization_array, and Header datasets, then examine how the representation is intertwined with UVData. Compare the proposed optional mode with AIPS memo 117 and determine the compatibility requirements. Done means the optional approach is specified clearly enough to avoid incompatible implementations.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.