Virgo
Virgo: A Versatile Spectrometer for Radio Astronomy - Published in JOSS (2021)
Science Score: 98.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
📡 Virgo: A Versatile Spectrometer for Radio Astronomy
Basic Info
- Host: GitHub
- Owner: 0xCoto
- License: gpl-3.0
- Language: Python
- Default Branch: master
- Homepage: https://virgo.readthedocs.io/en/latest/
- Size: 63.5 MB
Statistics
- Stars: 174
- Watchers: 12
- Forks: 23
- Open Issues: 15
- Releases: 26
Topics
Metadata Files
README.md
Virgo: A Versatile Spectrometer for Radio Astronomy
About Virgo
Virgo is an easy-to-use open-source spectrometer and radiometer based on Python and GNU Radio (GR) that is conveniently applicable to any radio telescope working with a GR-supported software-defined radio (SDR). In addition to data acquisition, Virgo also carries out automated analysis of the recorded samples, producing an averaged spectrum, a calibrated spectrum, a dynamic spectrum (waterfall), a time series (power vs time) and a total power distribution plot.
Lastly, an important set of utilities is provided to observers, making the package for a great tool for planning (radio) observations, estimating the system sensitivity of an instrument, and many more.
Statement of Need
Designed to be used by students, educators and amateurs in the field of radio astronomy, Virgo has already been adopted by a number of small and large-aperture radio telescopes, permitting both spectral and continuum observations with great success. These instruments include the ISEC TLM-18 (18m), the ACRO RT-320 (3.2m), the JRT (1.9m), and the PICTOR Telescope (1.5m), among others.
Although the hardware aspect of a radio telescope is generally handled by newcomers with relative ease, the skill set needed to integrate a complete software pipeline to support observations is not something most users are equipped with. Virgo tackles this problem by providing non-experts with a tool to collect and interpret data from radio telescopes, without requiring expertise in digital signal processing and software engineering. An example use case is classroom experiments in which students build a small-aperture antenna connected to a low-noise amplifier followed by an SDR, and with the help of Virgo, obtain data to map out the galactic distribution of neutral hydrogen and/or derive the rotation curve of the Milky Way.
Key Features
- 4-tap weighted overlap-add (WOLA) Fourier transform spectrometer
- - Reduced FFT sidelobes
- - Plain FT filterbank pipeline also supported for observatories with limited computational resources
- Adjustable SDR parameters
- - Device arguments
- - RF/IF/BB Gain
- Header file
- - Observation parameters automatically passed to corresponding
.headerfile - - Includes logged MJD (at observation t0)
- Spectral line support
- - Spectrum calibration
- - - y axis is automatically rescaled to S:N units with line masking
- - - Optional automatic slope correction (based on linear regression) for poorly-calibrated spectra
- - Supports median operation for RFI mitigation on the frequency-domain (adjustable n-factor)
- - RFI channel masking
- - Adjustable frest for observation of any spectral line (not just HI)
- - Secondary axes for relative velocity automatically adjusted accordingly
- - Prevention against strong narrowband RFI rescaling subplot
- - The average spectra, calibration spectra and calibrated spectra are optionally saved as a
csvfile for further analysis - Continuum support
- - Supports median operation for time-varying RFI mitigation (adjustable n-factor)
- - Total power distribution (histogram) displayed, both for raw and clean data
- - - Best Gaussian fits computed automatically
- - Prevention against strong short-duration RFI rescaling subplot
- - Time series optionally saved as a
csvfile for further analysis - Pulsars
- - Incoherent dedispersion support for giant pulse search (and FRB follow-up, assuming DM is known)
- Dynamic spectrum (waterfall)
- - Optionally saved as a
FITSfile for further advanced/custom analysis - Decibel support
- - Power units optionally displayed in dB
- Observation planning toolkit
- - Predict source altitude & azimuth vs time
- - Quickly convert galactic to equatorial and Alt/Az to RA/Dec
- - Plot telescope position on the 21 cm all-sky survey
- - Simulate 21 cm profiles based on the LAB HI survey
- Basic calculation toolkit for system sensitivity & performance. Computes:
- - Antenna gain (in dBi, linear or K/Jy)
- - Effective aperture
- - Half-power beamwidth
- - Noise figure to noise temperature and vice versa
- - Antenna gain-to-noise-temperature (G/T)
- - System equivalent flux density (SEFD)
- - Radiometer equation (S:N estimation)
- Built-in tool for conducting rapid RFI surveys
- Argument-parsing support
- Works directly from the command line (
virgo -h), or as a Python module
Telescopes based on the Virgo Spectrometer
- ISEC TLM-18 Telescope (18m)
- ACRO RT-320 (3.2m)
- SALSA Vale Telescope (2.3m) [potentially soon, but already tested]
- SALSA Brage Telescope (2.3m) [potentially soon, but already tested]
- JRT (1.9m)
- PICTOR Telescope (1.5m)
- NanoRT Telescope (15cm)
- and more!
Example Observation
Observation of galactic clouds of neutral hydrogen toward the constellation of Cygnus (α = 20h, δ = 40° , l = 77° , b = 3°), observed by the TLM-18 Telescope in New Jersey, U.S. with Virgo. The average spectrum (top left), the calibrated spectrum (top center), the dynamic spectrum (top right) and the time series along with the total power distribution (bottom) are all plotted by the software automatically.
Example Source Location Prediction
Example HI Profile Retrieval
Example HI Map
The red dot indicates the position of the telescope's beam in the sky.
Data Acquisition Flowgraph
Virgo is a four-tap WOLA Fourier transform spectrometer. The raw I/Q samples are processed in real time using GNU Radio, with the amount of data stored to file being drastically reduced for further analysis. The following flowgraph handles the acquisition and early-stage processing of the data:

Example radio map acquired and processed with the help of Virgo (PICTOR Northern HI Survey)

Installation
To use Virgo, make sure Python and GNU Radio (with gr-osmosdr) are installed on your machine.
For Debian/Ubuntu and derivates, the installation is straightforward:
sudo apt install gnuradio gr-osmosdr
Note: The GNU Radio and gr-osmosdr dependencies are only required for acquiring data with the necessary hardware (software-defined radio). They are not required for planning observations, analyzing data, running calculations or any other functionalities provided by the package. For more information, please refer to the Dependencies section.
Once Python and GNU Radio are installed on your system, run
pip install astro-virgo
Documentation
To learn how to use Virgo, please read through the documentation here.
If you believe something is not clarified in the documentation page, you are encouraged to create an issue (or send me an e-mail and I'll be happy to help.
Contributing
If you wish to contribute to the package (either with code, ideas or further documentation), please read through the Contributor Guidelines.
Credits
Virgo was created by Apostolos Spanakis-Misirlis.
Contact: 0xcoto@protonmail.com
Special thanks to Dr. Cameron Van Eck, Paul Boven and Dr. Cees Bassa for their valuable contributions.
Owner
- Name: Apostolos
- Login: 0xCoto
- Kind: user
- Repositories: 2
- Profile: https://github.com/0xCoto
Contact: 0xcoto@protonmail.com
JOSS Publication
Virgo: A Versatile Spectrometer for Radio Astronomy
Authors
Dunlap Institute for Astronomy and Astrophysics, University of Toronto, 50 St. George Street, Toronto, ON M5S 3H4, Canada
C.A. Muller Radioastronomie Station (CAMRAS), Dwingeloo, the Netherlands
Tags
astronomy radio astronomy digital signal processing astrophysicsCitation (CITATION.bib)
@article{Spanakis-Misirlis2021,
doi = {10.21105/joss.03067},
url = {https://doi.org/10.21105/joss.03067},
year = {2021},
publisher = {The Open Journal},
volume = {6},
number = {62},
pages = {3067},
author = {Apostolos Spanakis-Misirlis and Cameron L. Van Eck and E.p. Boven},
title = {Virgo: A Versatile Spectrometer for Radio Astronomy},
journal = {Journal of Open Source Software}
}
GitHub Events
Total
- Issues event: 1
- Watch event: 24
- Issue comment event: 1
- Fork event: 2
Last Year
- Issues event: 1
- Watch event: 24
- Issue comment event: 1
- Fork event: 2
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| 0xCoto | c****r@g****m | 368 |
| Kevin A. Wilson | k****n@a****m | 9 |
| Dave Wyers | d****s@h****m | 2 |
| 0xCoto | c****p@h****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 26
- Total pull requests: 6
- Average time to close issues: 4 months
- Average time to close pull requests: 2 months
- Total issue authors: 16
- Total pull request authors: 4
- Average comments per issue: 5.85
- Average comments per pull request: 2.0
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- kevinawilson (5)
- davewyers (3)
- astrom-tom (3)
- 0xCoto (2)
- SteveBz (2)
- ve3pkc (1)
- AntalVincz (1)
- jobgeheniau (1)
- iHD992 (1)
- gwsteffens-az (1)
- iu4pej (1)
- anthfuller (1)
- islandmonkey (1)
- Niemand112233 (1)
- Depal1 (1)
Pull Request Authors
- kevinawilson (3)
- davewyers (1)
- 0xCoto (1)
- ccera-astro (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 292 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 31
- Total maintainers: 1
pypi.org: astro-virgo
A Versatile Spectrometer for Radio Astronomy
- Homepage: https://github.com/0xCoto/Virgo
- Documentation: https://astro-virgo.readthedocs.io/
- License: GNU General Public License v3 (GPLv3)
-
Latest release: 3.8.2
published over 3 years ago
Rankings
Maintainers (1)
Dependencies
- astropy *
- matplotlib *
- numpy *
- astropy *
- matplotlib *
- numpy *