pyECHO

Primary beam response measurement tools

View the Project on GitHub dannyjacobs/ECHO

ECHO

The External Calibrator for Hydrogen Observatories (ECHO) is a subset of the Low Frequency Cosmology Group (LoCo) at Arizona State University. ECHO aims to develop a set of tools for measuring the primary beam response of 21cm observatories using drones.

The ECHO Procedure
An antenna is mounted beneath a drone and flown over an antenna under test (ground antenna) in a spiral pattern from horizon to zenith, covering the ground antenna's entire field of view. During flight, the drone antenna broadcasts a constant power radio signal generated by a programmable synthesizer. The radio spectrum from the ground antenna is then combined with GPS data from the drone to create a FITS file that contains the primary beam response of the ground antenna. This process is done using two networked machines which will be referred to as the ground station and the accumulation station. Each station receives a different data stream, being GPS data for the ground station and radio spectrum data for the accumulation station.

pyECHO

pyECHO is a Python package in development with tools for accumulation and plotting of data via networked machines. As outlined in the ECHO procedure, there are two different incoming data streams: GPS data from the drone and radio spectrum data from the antenna. These data streams are handled seperately by the ground and accumulation stations. Prior to using any scripts contained in pyECHO, the user must first install

NOTE : APM Planner, pymavlink, and the Signal Hound bb60a SDK must be installed for the scripts outlined below to function properly.

Ground Station

ECHO_setup.sh
Opens an additional MAVLink UDP connection so that GPS data can be fed simultaneously to APM Planner and ECHO_get_gps.py and then opens APM Planner

ECHO_get_gps.py
Using pymavlink, a Python implementation of the MAVLink protocol, GPS positions of the drone are recorded in real time and written to a text file. Upon calling this script, the following flags can be passed by the user

--gps_file Filename for generated output file with GPS data
--trans Drone antenna polarization. Added to filename passed by
gps_file flag if present upon execution
ECHO_server.py

Accumulation Station
ECHO utilizes a Linux machine for the accumulation station, which is required for use of the Signal Hound bb60a/c spectrum analyzer SDK. Radio spectrum data is received and written to a file get_sh_spectra. The spectrum data can then be passed to ECHO_accumulate.py which can be done in realtime, by specifying the --realtime flag. An accumulated text file containing GPS and radio spectrum data is then generated, which can then be passed to ECHO_plot.py with the --realtime flag for real time visualization, or to