Skip to content

Commit 0ceca73

Browse files
committed
Add better zero handling
1 parent 53fe714 commit 0ceca73

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/pyuvdata/uvbeam/uvbeam.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1505,7 +1505,9 @@ def efield_to_feed_iresponse(
15051505
# pol across incident polarizations. Then normalize by the abs to remove
15061506
# the magnitude which we have accounted for in f_mag.
15071507
f_delay = np.sum(flip_array, axis=0)
1508-
f_delay = f_delay / np.abs(f_delay)
1508+
# take care not to divide by zero (generates NaNs)
1509+
wh_nonzero = np.nonzero(np.abs(f_delay) > 0)
1510+
f_delay[wh_nonzero] = f_delay[wh_nonzero] / np.abs(f_delay[wh_nonzero])
15091511

15101512
beam_object.data_array = f_mag * f_delay
15111513
beam_object.data_array = beam_object.data_array[np.newaxis]
@@ -1591,7 +1593,11 @@ def efield_to_feed_projection(
15911593

15921594
for va_i in range(beam_object.Naxes_vec):
15931595
for f_i in range(beam_object.Nfeeds):
1594-
beam_object.data_array[va_i, f_i] /= feed_resp.data_array[0, f_i]
1596+
# take care not to divide by zero (generates NaNs)
1597+
wh_nonzero = np.nonzero(np.abs(feed_resp.data_array[0, f_i]) > 0)
1598+
beam_object.data_array[va_i, f_i, *wh_nonzero] /= feed_resp.data_array[
1599+
0, f_i, *wh_nonzero
1600+
]
15951601

15961602
history_update_string = (
15971603
" Converted from efield to feed projection using pyuvdata."

0 commit comments

Comments
 (0)