GNURadio@theATA: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
No edit summary
(8 intermediate revisions by one other user not shown)
Line 1: Line 1:
The Allen Telescope Array (ATA) is a 42-element radio telescope array located in Hat Creek, California, operated jointly by SETI Institute and UC Berkeley SETI Research Center. In an effort to increase accessibility to the array among potential users outside the astronomy community, we are working to integrate the array into GNU Radio software. We plan to start out by connecting USRPs to two ATA antennas and developing control, backend, and beamformer software. In addition to this, we are using a discone antenna connected to a USRP and OmniSig software to analyze radio frequency interference (RFI) at the ATA site.  
The Allen Telescope Array (ATA) is a 42-element radio telescope array located in Hat Creek, California, operated by SETI Institute. In an effort to increase accessibility to the array among potential users outside the astronomy community, we are working to integrate the array into GNU Radio software. We plan to start out by connecting USRPs to two ATA antennas and developing control, backend, and beamformer software. In addition to this, we are using a discone antenna connected to a USRP and OmniSig software to analyze radio frequency interference (RFI) at the ATA site.  




Line 6: Line 6:
== General Info ==
== General Info ==


Useful info about the ATA and friends:
=== GNU Radio Testbed ===
 
'''[[GR-ATA Testbed]]'''
 
=== Resources on the ATA and friends ===


* [https://www.seti.org/ata The Allen Telescope Array, SETI Institute]   
* [https://www.seti.org/ata The Allen Telescope Array, SETI Institute]   
Line 19: Line 23:


* [https://arxiv.org/abs/1906.07391 Lebofsky et al, 2019 - Breakthrough Listen public data]
* [https://arxiv.org/abs/1906.07391 Lebofsky et al, 2019 - Breakthrough Listen public data]
=== Useful Radio Astronomy Tools ===
* [http://neutronstar.joataman.net/technical/radial_vel_calc.html Radial Velocity / VLSR Calculator] -- good for determining the V_LSR of spectral lines in your data
* [https://www.astro.uni-bonn.de/hisurvey/profile/index.php LAB Survey HI Profile Search] -- here you can search for HI data given a source's RA, Dec or galactic coordinates. Good if you want to compare the velocity of the HI line that you measure with some preexisting accurate data to ensure your system is working properly.




== GNU Radio / SETI Hackathon ==   
== GNU Radio / SETI Hackathon ==   


In May 2019, the first step toward collaboration between the GNU Radio community, the ATA, SETI Institute, Breakthrough Listen, and Berkeley SETI communities consisted of a hackathon hosted at the Hat Creek Radio Observatory (home of the ATA). This culminated in, among other things, the development of a GNU Radio module called gr-ata.   
In May 2019, the first step toward collaboration between the GNU Radio community, the ATA, SETI Institute, Breakthrough Listen, and Berkeley SETI communities consisted of a hackathon hosted at the Hat Creek Radio Observatory (home of the ATA). This culminated in, among other things, the beginnings of a GNU Radio module called gr-ata.   
    
    
* Here's a link to material from the hackathon: https://github.com/SETIatHCRO/grhack/wiki   
* Here's a link to material from the hackathon: https://github.com/SETIatHCRO/grhack/wiki   
Line 48: Line 57:
== Setting up the software ==
== Setting up the software ==


The first step in implementing GNU Radio with the ATA is ensuring that we can effectively play back previously-recorded [http://setiquest.info/sigmf/ SigMF files] taken by the ATA in a GNU Radio flowgraph. We can do this using example code from the [https://github.com/SETIatHCRO/gr-ata gr-ata] module discussed above. To get the flowgraphs included in the "examples" folder of gr-ata working, here's a recipe of what you'll need (along with some installation tips discovered through trial-and-error). Note that the instructions below are written for Ubuntu users:
The first step in implementing GNU Radio with the ATA is ensuring that we can effectively play back previously-recorded [http://setiquest.info/sigmf/ SigMF files] taken by the ATA in a GNU Radio flowgraph. We can do this using example code from the [https://github.com/SETIatHCRO/gr-ata gr-ata] module discussed above. To get the flowgraphs included in the "examples/original-examples" folder of gr-ata working, here's a recipe of what you'll need (along with some installation tips discovered through trial-and-error). Note that the instructions below are written for Ubuntu users:


* GNU Radio version 3.8 (ppa for "releases" -- install instructions [[InstallingGR#From_Binaries|here]]).
* GNU Radio version 3.8 (ppa for "releases" -- install instructions [[InstallingGR#From_Binaries|here]]).
Line 55: Line 64:




Below is a list of external GNU Radio modules that you should install following the instructions on the linked GitHub pages. One thing to keep in mind -- for the cmake step, in some cases cmake automatically installs the modules to the wrong location, resulting in a ModuleNotFound error. To prevent this, instead of running just '''cmake ..''' run the following command: '''$ cmake -DCMAKE_INSTALL_PREFIX:PATH={prefix} ..''' where the {prefix} can be found using the command '''$ gnuradio-config-info --prefix'''.  
Below is a list of external GNU Radio modules that you can install following the instructions on the linked GitHub pages. One thing to keep in mind -- for the cmake step, in some cases cmake automatically installs the modules to the wrong location, resulting in a ModuleNotFound error. To prevent this, instead of running just '''cmake ..''' run the following command: '''$ cmake -DCMAKE_INSTALL_PREFIX:PATH={prefix} ..''' where the {prefix} can be found using the command '''$ gnuradio-config-info --prefix'''.  


* [https://github.com/SETIatHCRO/gr-ata gr-ata] (of course!)
* [https://github.com/SETIatHCRO/gr-ata gr-ata] (of course!)
Line 81: Line 90:




== Plotting data in GNU Radio ==
== Observing with the ATA -- Tutorials linked here ==  


Using a very simple GNU Radio flowgraph, we can plot spectrum data from archival ATA data; below are some examples:
The gr-ata module consists of four blocks:


[[File:-home-ellie-Pictures-w3oh-maser.png|800px]] 
* Control Block
 
* Track Scan Block
Figure 1: GNU Radio waterfall and frequency plots of a 6.7 GHz methanol maser, W3OH, from 2010 archival ATA data 
* On-Off Block
 
* IF Switch Block
[[File:Hi-line.png|800px]] 
 
Figure 2: GNU Radio waterfall and frequency plots of the neutral hydrogen (HI) line in the direction of the pulsar psrb0329+54, also from 2010 ATA data.
 
 
== Controlling the ATA ==
 
By running commands from the ATA Python library [https://github.com/SETIatHCRO/ATA-Utils/blob/master/pythonLibs/ATATools/ata_control.py ata_control] (which was installed when ATA-Utils was installed, as described in "Setting up the Software"), you can point and track one or more antennas in the Allen Array.


Here's an example of how an observing session might go:
which can be combined to conduct observations with the ATA. Refer to the '''[[GR-ATA Tutorial]]''' page for detailed tips on how to use the gr-ata blocks to conduct an ATA observation, and how to collect data with the USRPs onsite.


* Log in to a vnc session on gnuradio1 and open up a terminal.
== Public Data ==
* Keep one tab logged into gnuradio1, and in another tab, run the command '''ssh -Y obs@tumulus''' to enter the observing computer
* In the obs@tumulus tab, run the command '''atastatus''' to view status windows
* After checking with Wael that no other observations are ongoing, run the command '''atasetalarm -u {username} -m '{description of your observation}' -c on''' in the tumulus tab
* To ensure your target object is above the horizon, run '''atacheck {target}''' in tumulus (there is a source catalog on tumulus if you need to look up your target object's identifier)
* Back in the gnuradio1 tab, you will now want to run your observing script following the syntax: '''python3 scriptname.py''' (example observing script [https://github.com/ewhite42/bl-seti-tutorials/blob/master/ata-test-obs-script.py here]).
* After the script is finished running and your observation is complete, run the command: '''atasetalarm -u {username} -m '{ending message}' -c off'''


Note that if your script crashes before it gets to the release_antennas function call, you will need to open a python3 command prompt and run the command as follows:
At this link, you can find data from a sample observing run conducted with the USRPs at the ATA: http://blpd0.ssl.berkeley.edu/gnu_ata_workshop/


* '''python3'''
Some notes on the data:  
* Inside python3 shell: '''from ATATools import ata_control as ac'''
* '''ac.release_antennas(antennas-list, True)'''
*'''exit()'''


This unlocks and stows the antennas.
'''12aug2020-sourcename2350+646-1420MHz.dat'''
* The target source was quasar 2350+646
* RA = 23.848588 (decimal hours) and Dec. = 64.671619 (decimal degrees)
* RA = 23 50 54 (hhmmss), Dec. = 64 40 17 (ddmmss)
* Recorded as spectral -- not raw -- data (float32)
* The center frequency was 1420 MHz
* The bandwidth = 50 MHz (complex) / 2 = 25 MHz
* It was integrated over every 1k samples
* The FFT size was 16384
* Antenna = 2h


== GR-ATA Module ==  
'''goes-16_2020-09-15_22_03_37.725663.dat'''
* Target = GOES-16, a geosynchronous satellite
* Az. = 121.956, El. = 23.605
* Spectral data (float32)
* Center frequency = 1691.4 MHz
* Bandwidth = 50 MHz (complex) / 2 = 25 MHz
* Integration = 10,000
* FFT size = 4096
* Total recording time = 1 minute
* Antenna = 2h


The gr-ata module consists of four blocks:
'''goes-16_raw_2020-09-15_220116.481975.dat'''
* Target = GOES-16, a geosynchronous satellite
* Az. = 121.956, El. = 23.605
* Raw (complex32) data
* Center frequency = 1691.4 MHz
* Bandwidth = 50 MHz (complex) / 2 = 25 MHz
* Total recording time = 1 minute
* Antenna = 2h


* Control Block
Sag A -- spectral
* Track Scan Block
* Target source = Sagittarius A (galactic center region)
* On-Off Block
* RA = 17.7611 (decimal hours) and Dec. = -29.0028 (decimal degrees)
* IF Switch Block
* RA = 17 45 40 (hhmmss), Dec. = -29 00 28 (ddmmss)
* Recorded as spectral -- not raw -- data (float32)
* Center Freq = 1420 MHz
* Bandwidth = 50 MHz (complex) / 2 = 25 MHz
* Integration = 5000
* FFT size = 16384
* Total recording time = ~5 minutes
* Antenna = 2h


These blocks can be combined to conduct observations with the ATA. Refer to this [[GR-ATA-Tutorial|tutorial]] for detailed tips on how to use the gr-ata blocks and conduct an ATA observation.
Sag A -- raw
* Target source = Sagittarius A (galactic center region)
* RA = 17.7611 (decimal hours) and Dec. = -29.0028 (decimal degrees)
* RA = 17 45 40 (hhmmss), Dec. = -29 00 28 (ddmmss)
* Raw (complex32) data
* Center Freq = 1420 MHz
* Bandwidth = 50 MHz (complex) / 2 = 25 MHz
* Total recording time = 1 minute
* Antenna = 2h

Revision as of 08:32, 12 December 2020

The Allen Telescope Array (ATA) is a 42-element radio telescope array located in Hat Creek, California, operated by SETI Institute. In an effort to increase accessibility to the array among potential users outside the astronomy community, we are working to integrate the array into GNU Radio software. We plan to start out by connecting USRPs to two ATA antennas and developing control, backend, and beamformer software. In addition to this, we are using a discone antenna connected to a USRP and OmniSig software to analyze radio frequency interference (RFI) at the ATA site.


General Info

GNU Radio Testbed

GR-ATA Testbed

Resources on the ATA and friends

Useful Radio Astronomy Tools

  • Radial Velocity / VLSR Calculator -- good for determining the V_LSR of spectral lines in your data
  • LAB Survey HI Profile Search -- here you can search for HI data given a source's RA, Dec or galactic coordinates. Good if you want to compare the velocity of the HI line that you measure with some preexisting accurate data to ensure your system is working properly.


GNU Radio / SETI Hackathon

In May 2019, the first step toward collaboration between the GNU Radio community, the ATA, SETI Institute, Breakthrough Listen, and Berkeley SETI communities consisted of a hackathon hosted at the Hat Creek Radio Observatory (home of the ATA). This culminated in, among other things, the beginnings of a GNU Radio module called gr-ata.


Connecting to VNC on ATA gnuradio machines

Below are instructions for connecting to the ATA machines' VNC servers on Windows (note that gnuradio0 machine is connected to the discone, gnuradio1 will be connected to the ATA antennas).

Assuming you are connected to the ATA gnuradio vpn server, you can use PUTTY to connect to gnuradio1 or gnuradio0 machine:

  • Hostname (IP address): 10.1.50.10 for gnuradio0, or 10.1.50.11 for gnuradio1.
  • SSH -> Enable compression
  • SSH -> Tunnels -> Source port: 590x, Destination: localhost:590x

VNC Viewer:

  • Remote Host: localhost:590x
  • Enter password


Setting up the software

The first step in implementing GNU Radio with the ATA is ensuring that we can effectively play back previously-recorded SigMF files taken by the ATA in a GNU Radio flowgraph. We can do this using example code from the gr-ata module discussed above. To get the flowgraphs included in the "examples/original-examples" folder of gr-ata working, here's a recipe of what you'll need (along with some installation tips discovered through trial-and-error). Note that the instructions below are written for Ubuntu users:

  • GNU Radio version 3.8 (ppa for "releases" -- install instructions here).
  • Install liborc-0.4-dev (sudo apt install liborc-0.4-dev)
  • cmake version >= 3.13 (will have to remove the standard cmake version using $ sudo apt remove --autoremove cmake, then follow the instructions here: https://apt.kitware.com/ to install a more recent version. This is necessary for installing gr-osmosdr)


Below is a list of external GNU Radio modules that you can install following the instructions on the linked GitHub pages. One thing to keep in mind -- for the cmake step, in some cases cmake automatically installs the modules to the wrong location, resulting in a ModuleNotFound error. To prevent this, instead of running just cmake .. run the following command: $ cmake -DCMAKE_INSTALL_PREFIX:PATH={prefix} .. where the {prefix} can be found using the command $ gnuradio-config-info --prefix.

  • gr-ata (of course!)
  • gr-osmosdr
  • gr-correctiq -- make sure to clone the branch maint-3.8
  • gr-lfast -- make sure to clone the branch maint-3.8
  • gr-grnet -- branch maint-3.8. Before attempting to install gr-grnet, make sure you've run $ sudo apt-get install zlib1g-dev libpcap-dev
  • gr-filerepeater -- branch maint-3.8
  • gr-gpredict-doppler
  • gr-mesa -- branch maint-3.8
  • gr-fosphor -- before attempting to install gr-fosphor, run the command: $ sudo apt install libglu1-mesa-dev freeglut3-dev mesa-common-dev ocl-icd-opencl-dev freetype2-demos libfreetype6 libfreetype6-dev swig qt5-default
  • gr-compress --branch maint-3.8; follow instructions in README on github for installation prerequisites

All of these modules (excepting gr-fosphor, which requires a GPU) have been installed along with GNU Radio version 3.8 on the gnuradio1 machine at the ATA.

For ATA observing, you will need to install code from the ATA-Utils repository (which I have done on gnuradio1 in my account); run the commands:

  • git clone https://github.com/SETIatHCRO/ATA-Utils
  • cd ATA-Utils/pythonLibs
  • If pip isn't installed, run sudo apt-get install python3-pip
  • Still in the pythonLibs folder, run sudo pip3 install . --user
  • sudo python3 setup.py install

You should be good to go!


Observing with the ATA -- Tutorials linked here

The gr-ata module consists of four blocks:

  • Control Block
  • Track Scan Block
  • On-Off Block
  • IF Switch Block

which can be combined to conduct observations with the ATA. Refer to the GR-ATA Tutorial page for detailed tips on how to use the gr-ata blocks to conduct an ATA observation, and how to collect data with the USRPs onsite.

Public Data

At this link, you can find data from a sample observing run conducted with the USRPs at the ATA: http://blpd0.ssl.berkeley.edu/gnu_ata_workshop/

Some notes on the data:

12aug2020-sourcename2350+646-1420MHz.dat

  • The target source was quasar 2350+646
  • RA = 23.848588 (decimal hours) and Dec. = 64.671619 (decimal degrees)
  • RA = 23 50 54 (hhmmss), Dec. = 64 40 17 (ddmmss)
  • Recorded as spectral -- not raw -- data (float32)
  • The center frequency was 1420 MHz
  • The bandwidth = 50 MHz (complex) / 2 = 25 MHz
  • It was integrated over every 1k samples
  • The FFT size was 16384
  • Antenna = 2h

goes-16_2020-09-15_22_03_37.725663.dat

  • Target = GOES-16, a geosynchronous satellite
  • Az. = 121.956, El. = 23.605
  • Spectral data (float32)
  • Center frequency = 1691.4 MHz
  • Bandwidth = 50 MHz (complex) / 2 = 25 MHz
  • Integration = 10,000
  • FFT size = 4096
  • Total recording time = 1 minute
  • Antenna = 2h

goes-16_raw_2020-09-15_220116.481975.dat

  • Target = GOES-16, a geosynchronous satellite
  • Az. = 121.956, El. = 23.605
  • Raw (complex32) data
  • Center frequency = 1691.4 MHz
  • Bandwidth = 50 MHz (complex) / 2 = 25 MHz
  • Total recording time = 1 minute
  • Antenna = 2h

Sag A -- spectral

  • Target source = Sagittarius A (galactic center region)
  • RA = 17.7611 (decimal hours) and Dec. = -29.0028 (decimal degrees)
  • RA = 17 45 40 (hhmmss), Dec. = -29 00 28 (ddmmss)
  • Recorded as spectral -- not raw -- data (float32)
  • Center Freq = 1420 MHz
  • Bandwidth = 50 MHz (complex) / 2 = 25 MHz
  • Integration = 5000
  • FFT size = 16384
  • Total recording time = ~5 minutes
  • Antenna = 2h

Sag A -- raw

  • Target source = Sagittarius A (galactic center region)
  • RA = 17.7611 (decimal hours) and Dec. = -29.0028 (decimal degrees)
  • RA = 17 45 40 (hhmmss), Dec. = -29 00 28 (ddmmss)
  • Raw (complex32) data
  • Center Freq = 1420 MHz
  • Bandwidth = 50 MHz (complex) / 2 = 25 MHz
  • Total recording time = 1 minute
  • Antenna = 2h