Post-Acquisition Beam Forming

New in version 0.3.

Module to allow for post-acquisition delay-and-sum beamforming with integer sample delays for time series data (int_delay_and_sum) and phase-and-sum beamforming for frequency domain data (delayAndSum).

lsl.misc.beamformer.calc_delay(antennas, freq=49000000.0, azimuth=0.0, altitude=90.0)

Calculate the time delays for delay-and-sum beam forming a collection of stands looking in at a particular azimuth and altitude (both in degrees). A numpy array of the geometric + cable delays in seconds is returned.

Changed in version 4.0.0: Allow freq to also be a 1D array

Changed in version 0.5.0: Changed the computed array center to exclude stands #257 through #260

lsl.misc.beamformer.circularize(x, y, iau=True)

Given a 1-D Numpy array of X polarization timeseries data and Y polarization timeseries data, generate the two circular polarization. Returns a two-element tuple of L and R.

Changed in version 1.0.1: Added the ‘iau’ keyword to help define the convention of positive Stokes V. V = RCP - LCP.

New in version 1.0.0.

lsl.misc.beamformer.phase_and_sum(antennas, data, central_freq=49000000.0, azimuth=0.0, altitude=90.0)

Given a list of antennas and a data stream of the form stands x times, delay and sum the data stream into one beam. Return a 1-D numpy array of the time series data associated with the formed beam.

Changed in version 4.0.0: Dropped the sample_rate keyword since it is not used.

lsl.misc.beamformer.phase_beam_shape(antennas, sample_rate=196000000.0, central_freq=49000000.0, azimuth=0.0, altitude=90.0, progress=False)

Given a list of antennas, compute the on-sky response of the delay-and-sum scheme implemented in int_delay_and_sum. A 360x90 numpy array spanning azimuth and altitude is returned.

Changed in version 1.2.1: Removed the ‘disable_pool’ keyword since recent optimztions to the function have caused the multiprocessing.Pool feature to actually be slower than the single-threaded version.

Changed in version 0.4.0: Switched over to passing in Antenna instances generated by the lsl.common.stations module instead of a list of stand ID numbers.