RadioAstronomySoftwareGroup / pyuvsim

A ultra-high precision package for simulating radio interferometers in python on compute clusters.
https://pyuvsim.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
43 stars 7 forks source link

Use pyuvdata Analytic Beams and the new BeamInterface class #487

Open bhazelton opened 3 weeks ago

bhazelton commented 3 weeks ago

Description

Use the newly refactored Analytic Beams in pyuvdata and the new BeamInterface object that unifies the interface for interpolation of UVBeams & evaluation of Analytic Beams.

Note: This is a significant change for "unpolarized" Analytic beams, including uniform, gaussian and Airy beams. The previous implementation in pyuvsim actually implemented these as polarized beams, with one polarization sensitive only to the zenith angle oriented emission and the other sensitive only to azimuthally oriented emission. The new implementation in pyuvdata makes these actually unpolarized so that the two instrumental polarizations are equally sensitive to both zenith angle and azimuthally oriented polarization and are identical to each other. This last point leads to the biggest change -- the instrumental cross pol ("xy" and "yx") visibilities for these unpolarized beams are equal to the same pol ("xx" and "yy") visibilities, whereas with the previous implementations they were zero for unpolarized sources. In particular, this will lead to differences in reference simulations that use these kinds of beams.

Related changes:

Motivation and Context

closes #443

Types of changes

Checklist:

For all pull requests:

New feature checklist:

bhazelton commented 3 weeks ago

Two parallelized tests are currently timing out. I'm worried that's related to how I'm handling the shared memory stuff, would love someone who's more familiar with MPI to take a look. Maybe @mkolopanis ?

codecov[bot] commented 3 weeks ago

Codecov Report

Attention: Patch coverage is 79.60199% with 41 lines in your changes missing coverage. Please review.

Project coverage is 75.04%. Comparing base (685ee72) to head (d5d88c2).

Files Patch % Lines
src/pyuvsim/telescope.py 76.59% 22 Missing :warning:
src/pyuvsim/uvsim.py 38.09% 13 Missing :warning:
src/pyuvsim/antenna.py 76.92% 3 Missing :warning:
src/pyuvsim/simsetup.py 95.89% 3 Missing :warning:

:exclamation: There is a different number of reports uploaded between BASE (685ee72) and HEAD (d5d88c2). Click for more details.

HEAD has 9 uploads less than BASE | Flag | BASE (685ee72) | HEAD (d5d88c2) | |------|------|------| ||11|2|
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #487 +/- ## ============================================ - Coverage 100.00% 75.04% -24.96% ============================================ Files 11 10 -1 Lines 2159 2024 -135 ============================================ - Hits 2159 1519 -640 - Misses 0 505 +505 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.