About¶
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.
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
.header
file
- Observation parameters automatically passed to corresponding
- 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 the 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
csv
file for further analysis
- The average spectra, calibration spectra and calibrated spectra are optionally saved as a
- 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
csv
file for further analysis
- Time series optionally saved as a
- Pulsars
- Incoherent dedispersion support for giant pulse search (and FRB follow-up, assuming DM is known)
- Dynamic spectrum (waterfall)
- Optionally saved as a
FITS
file for further advanced/custom analysis
- Optionally saved as a
- 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 via
python virgo.py
, or as a module (see Usage)