Esempio n. 1
0
 def setUp(self):
     fun_quad = lambda k, sf: sf.I_0 * (sf.angle_k(k) / 180.0)**2
     self.beam_u = antenna.BeamPattern(lambda k, sf: sf.I_0,
                                       az0=0.0,
                                       el0=90.0,
                                       I_0=1.0,
                                       f=1.0,
                                       beam_name='Test')
     self.beam_quad = antenna.BeamPattern(fun_quad,
                                          az0=0.0,
                                          el0=90.0,
                                          I_0=1.0,
                                          f=1.0,
                                          beam_name='Test')
Esempio n. 2
0
 def setUp(self):
     self.beam_u = antenna.BeamPattern(lambda k, sf: sf.I_0,
                                       az0=0.0,
                                       el0=90.0,
                                       I_0=1.0,
                                       f=1.0,
                                       beam_name='Test')
Esempio n. 3
0
def tsr_beam(el0, f=224.0e6):
    a = 120  # Panel width, metres (30 = 1 panel, 120 = all panels)
    b = 40  # Panel height, metres
    c = 299792458  # Speed of light, m/s
    wavelength = c / f  # Wavelength, metres

    ar = a / wavelength  # Antenna size in wavelengths
    br = b / wavelength  # ditto

    # Make an equirectangular projection mesh (2000 points per axis)
    x = np.linspace(-np.pi / 2, np.pi / 2, 4000)
    y = np.linspace(-np.pi / 2, np.pi / 2, 4000)
    xx, yy = np.meshgrid(x, y)

    # Calclate the beam pattern
    z = unidirectional_broadside_rectangular_array(ar, br, xx, yy)

    # Normalise (4pi steradian * num.pixels / integrated gain / pi^2)
    scale = 4 * np.pi * z.size / np.sum(z)  # Normalise over sphere
    sincint = np.pi * np.pi  # Integral of the sinc^2()s: -inf:inf

    beam = antenna.BeamPattern(TSR_gain,
                               az0=0.0,
                               el0=el0,
                               I_0=scale / sincint,
                               f=f,
                               beam_name='Tromso Space Radar Beam')
    beam.ar = ar
    beam.br = br

    return beam
Esempio n. 4
0
def airy_beam(az0, el0, I_0, f, a):
    '''# TODO: Description.

    '''
    beam = antenna.BeamPattern(airy, az0, el0, I_0, f, beam_name='Airy')
    beam.a = a
    return beam
Esempio n. 5
0
def array_beam(az0, el0, I_0, f, antennas):
    '''# TODO: Description.

    '''
    beam = antenna.BeamPattern(array, az0, el0, I_0, f, beam_name='Array')
    beam.antennas = antennas
    beam.I_scale = I_0 / (antennas.shape[0]**2.0)
    return beam
Esempio n. 6
0
def planar_beam(az0, el0, I_0, f, a0, az1, el1):
    '''# TODO: Description.

    '''
    beam = antenna.BeamPattern(planar, az0, el0, I_0, f, beam_name='Planar')
    beam.a0 = a0
    beam.plane_normal = coord.azel_to_cart(az1, el1, 1.0)
    beam.lam = c.c / f
    beam.point(az0, el0)
    return beam
Esempio n. 7
0
    def setUp(self):
        self.beam_u = antenna.BeamPattern(lambda k, sf: sf.I_0,
                                          az0=0.0,
                                          el0=90.0,
                                          I_0=1.0,
                                          f=1.0,
                                          beam_name='Test')

        self.tx_lst = []

        self.tx_lst.append(
            antenna.AntennaTX(
                name='a tx',
                lat=2.43,
                lon=11.0,
                alt=0.0,
                el_thresh=30.0,
                freq=1e4,
                rx_noise=10e3,
                beam=self.beam_u,
                scan=None,
                tx_power=1.0,
                tx_bandwidth=1.0,
                duty_cycle=1.0,
            ))
        self.tx_lst.append(
            antenna.AntennaTX(
                name='a tx',
                lat=2.43,
                lon=12.0,
                alt=0.0,
                el_thresh=30.0,
                freq=1e4,
                rx_noise=10e3,
                beam=self.beam_u,
                scan=None,
                tx_power=1.0,
                tx_bandwidth=1.0,
                duty_cycle=1.0,
            ))

        self.rx_lst = []
        for of in range(10):
            self.tx_lst.append(
                antenna.AntennaRX(name='a rx',
                                  lat=2.43 + of,
                                  lon=11.0,
                                  alt=0.0,
                                  el_thresh=30.0,
                                  freq=1e4,
                                  rx_noise=10e3,
                                  beam=self.beam_u))
Esempio n. 8
0
def uhf_beam(az0, el0, I_0, f, beam_name='UHF Measured beam'):
    '''# TODO: Description.

    '''
    beam = antenna.BeamPattern(uhf_meas, az0, el0, I_0, f, beam_name=beam_name)

    bmod = np.genfromtxt("data/bp.txt")
    angle = bmod[:, 0]
    gain = 10**(bmod[:, 1] / 10.0)
    gf = sio.interp1d(np.abs(angle), gain)

    beam.gf = gf
    return beam
Esempio n. 9
0
def cassegrain_beam(az0, el0, I_0, f, a0, a1, beam_name="Cassegrain"):
    '''# TODO: Description.

    az and el of on-axis
    lat and lon of location
    I_0 gain on-axis
    a0 diameter of main reflector
    a1 diameter of the subreflector
    '''
    beam = antenna.BeamPattern(cassegrain,
                               az0,
                               el0,
                               I_0,
                               f,
                               beam_name=beam_name)
    beam.a0 = a0
    beam.a1 = a1
    return beam
Esempio n. 10
0
def e3d_array_beam_interp(az0=0,
                          el0=90.0,
                          I_0=10**4.2,
                          fname='data/inerp_e3d.npy',
                          res=400):
    if not os.path.isfile(fname):
        _beam = e3d_array_beam(az0=0, el0=90.0, I_0=1.0)
        _generate_interpolation_beam_data(fname, _beam, res=res)
        del _beam

    f_obj = np.load(fname)
    f = f_obj.item()

    beam = antenna.BeamPattern(interpolated_beam,
                               az0,
                               el0,
                               I_0,
                               f,
                               beam_name='E3D stage 2 -interpolated-')
    beam.interp_f = f

    return beam