RadioAstronomySoftwareGroup / RadioAstronomySoftwareGroup/pyuvdata

Support moving near-field phase centers

Open
#1,710 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Summary

Near-field phasing currently supports only a focal point fixed at scalar cat_lon, cat_lat and cat_dist. I'd like to allow cat_times on near_field catalog entries so that the focus can move during an observation.

Motivation

We want to be able to represent a moving source, like a satellite whose path is known from telemetry, in our data. There's no way to do that in a single UVData object today: generate_phase_center_cat_entry rejects cat_times for anything but ephem, and all other types coerce the coordinates to scalars. You have to split the observation into per-integration objects, phase each one separately, and concatenate.

Proposed approach

Extend the existing near_field type rather than adding a new one. With cat_times absent, behavior is unchanged. With cat_times present, equal-length cat_lon, cat_lat and cat_dist arrays describe a moving focus interpolated onto the integration times, reusing the existing ephemeris interpolator. The near-field geometry itself (w = r1 - r2) doesn't change.

Plan

Two PRs, following CONTRIBUTING's one-feature-per-PR guidance:

  1. Make the private near-field correction selection-aware, adding select_mask and update_vis to _apply_near_field_corrections(). No behavior change apart from one bug fix that falls out of it.
  2. The timed near-field feature on top.

Does extending near_field sound like the direction you'd want before I open the first one?

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 with CONTRIBUTING's one-feature-per-PR guidance and inspect generate_phase_center_cat_entry plus _apply_near_field_corrections(). Trace how near_field entries currently handle scalar cat_lon, cat_lat, and cat_dist, and how the existing ephemeris interpolator handles cat_times. Done means the selection-aware correction work and timed near-field behavior are covered without changing untimed behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.