RadioAstronomySoftwareGroup / RadioAstronomySoftwareGroup/pyuvdata
Support moving near-field phase centers
Nobody has claimed this yet.
- 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:
- Make the private near-field correction selection-aware, adding
select_maskandupdate_visto_apply_near_field_corrections(). No behavior change apart from one bug fix that falls out of it. - 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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