# Load visibility data
vis_data.shape = (n_times, n_channels, n_baselines)
u_grid = np.linspace(-35, 35, 701)
v_grid = np.linspace(-35, 35, 701)
uv_data = np.zeros((len(u_grid), len(v_grid), nBl), dtype=np.complex128)
for bl_index in range(nBl):
for t in range(nWin):
# Calculate baseline vector
B = calculate_baseline_vector(t*1.024, bl_meters[bl_index])
# auto-correlation of two antennas
auto_a = vars()[ant_comb[bl_index][0]]
auto_b = vars()[ant_comb[bl_index][1]]
for freq_index in range(nChan):
# Calculate U, V
frequency = freqs[freq_index] * 1e6
u = B[0] / (c / frequency)
v = B[1] / (c / frequency)
# Find the closest indices in the UV grid
u_index = np.argmin(np.abs(u_grid - u))
v_index = np.argmin(np.abs(v_grid - v))
# Bin visibility data onto UV grid for each frequency
uv_data[u_index, v_index, bl_index] += (vis_data[t, freq_index, bl_index] / np.sqrt(auto_a[t, freq_index]**2 + auto_b[t,freq_index]**2) / (c/frequency)**2)
# Find the closest indices in the UV grid for (-u, -v)
u_index_neg = np.argmin(np.abs(u_grid + u))
v_index_neg = np.argmin(np.abs(v_grid + v))
# Bin visibility data onto UV grid at (-u, -v) and take complex conjugate
uv_data[u_index_neg, v_index_neg, bl_index] += (np.conj(vis_data[t, freq_index, bl_index]) / np.sqrt(auto_a[t, freq_index]**2 + auto_b[t,freq_index]**2) / (c/frequency)**2)
# Fourier Transform to obtain image in (l, m) space
tmp = np.sum(uv_data, axis=2) # V(u, v) for all baselines
lm_data = np.fft.fftshift(np.fft.ifft2(np.fft.ifftshift(tmp)))
u_min = (u_grid[1]-u_grid[0]).round(3) # 0.2
l_max = 1/(2*u_min) # 2.5
l_grid = np.linspace(-l_max, l_max, len(u_grid))
m_grid = l_grid.copy()
plt.pcolormesh(l_grid, m_grid, lm_data.T, shading='nearest')
Visibility phase in frequency (MHz) and local time domain. Note that antenna 16 indicates antenna 15 — the longest baseline is 15 meters.
Location of bright radio sources in (RA, cos(Dec)) space. On December 8th, Sun’s (RA, Dec) = (16h56m48.68s, -22d38’29.88”). The local sidereal time at noon is 17h 12m 58.344s.
Cyg A | 3C405 | 11:00 - 19:00 (15:00) | 3500 Jy |
---|---|---|---|
Cas A | 3C461 | 15:00 - 22:00 (18:20) | ~4000 Jy |
Tau A | 3C144 | 21:00 - 04:00 (00:30) | ~1000 Jy |
Vir A | 3C274 | 04:00 - 11:00 (07:20) | ~600 Jy |
Moon | 50-150 Jy | ||
3C48 | 16:30 - 00:30 | 35 Jy | |
3C147 | 20:00 - 05:00 | 45 Jy |
Visibility in UV space. Real, imaginary, and absolute value from left to right.