def plotJones_fromFEKOfiles(p_chan_file, q_chan_file, freq): (tvf_p, tvf_q) = (TVecFields(), TVecFields()) tvf_p.load_ffe(p_chan_file) tvf_q.load_ffe(q_chan_file) (ant_p, ant_q) = (RadFarField(tvf_p), RadFarField(tvf_q)) (p_chan_name, q_chan_name) = (os.path.basename(p_chan_file), os.path.basename(q_chan_file)) (ant_p.name, ant_q.name) = (p_chan_name, q_chan_name) dualpolAnt = DualPolElem(ant_p, ant_q) dualpolAnt.plotJonesPat3D(freq, vcoord='circ', projection='azimuthal-equidistant', cmplx_rep='ReIm')
def dualpolelem_2FF(): """Test plot of a dual-polarized antenna where one channel is given by Psi and the other is a rotated copy it.""" T, P = pntsonsphere.sphericalGrid() dipX = numpy.array(vsh.Psi(1, 1, T, P))+numpy.array(vsh.Psi(1, -1, T, P)) dipXT = numpy.squeeze(dipX[0,:,:]) dipXP = numpy.squeeze(dipX[1,:,:]) freq = 1.0 vfdipX = tvecfun.TVecFields(T, P, dipXT, dipXP, freq) antp = RadFarField(vfdipX) antq = antp.rotate90() dualpolAnt = DualPolElem(antp, antq) rotmat = pntsonsphere.rotzmat(0*math.pi/4) dualpolAnt.rotateframe(rotmat) dualpolAnt.plotJonesPat3D(freq, projection='azimuthal-equidistant', cmplx_rep='ReIm', )
def dualpolelem_2FF(): """Test plot of a dual-polarized antenna where one channel is given by Psi and the other is a rotated copy it.""" T, P = pntsonsphere.sphericalGrid() dipX = numpy.array(vsh.Psi(1, 1, T, P)) + numpy.array(vsh.Psi(1, -1, T, P)) dipXT = numpy.squeeze(dipX[0, :, :]) dipXP = numpy.squeeze(dipX[1, :, :]) freq = 1.0 vfdipX = tvecfun.TVecFields(T, P, dipXT, dipXP, freq) antp = RadFarField(vfdipX) antq = antp.rotate90() dualpolAnt = DualPolElem(antp, antq) rotmat = pntsonsphere.rotzmat(0 * math.pi / 4) dualpolAnt.rotateframe(rotmat) dualpolAnt.plotJonesPat3D( freq, projection='azimuthal-equidistant', cmplx_rep='ReIm', )