import sys
import time
import numpy as np
import mwa_hyperbeam
if len(sys.argv) > 1:
beam = mwa_hyperbeam.FEEBeam(sys.argv[1])
else:
beam = mwa_hyperbeam.FEEBeam()
n = 100000
az = np.linspace(0, 0.9 * np.pi, n)
za = np.linspace(0.1, 0.9 * np.pi / 2, n)
freq = 167000000
delays = [0] * 16
amps = [1.0] * 16
norm_to_zenith = True
latitude_rad = None
iau_order = False
start_time = time.time()
jones = beam.calc_jones_array(
az, za, freq, delays, amps, norm_to_zenith, latitude_rad, iau_order
)
duration = time.time() - start_time
print("Time to calculate {} directions: {:.3}s".format(n, duration))
print("First Jones matrix:")
print(jones[0])
amps = np.ones(32)
amps[-1] = 0
jones = beam.calc_jones_array(
az[:1], za[:1], freq, delays, amps, norm_to_zenith, latitude_rad, iau_order
)
print("First Jones matrix with altered Y amps:")
print(jones[0])
latitude_rad = -0.4660608448386394
iau_order = True
jones = beam.calc_jones(
az[0], za[0], freq, delays, amps, norm_to_zenith, latitude_rad, iau_order
)
print("Parallactic-angle corrected, IAU-ordered beam response:")
print(jones)
jones = beam.calc_jones(az[0], za[0], freq, delays, amps, norm_to_zenith)