Package: astro-virgo
Virgo: A Versatile Spectrometer for Radio AstronomyAbout VirgoVirgois an easy-to-useopen-sourcespectrometer and radiometer based onPythonandGNU 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 anaveraged spectrum, acalibrated spectrum, adynamic spectrum (waterfall), atime series (power vs time)and atotal power distributionplot.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 NeedDesigned 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 Features4-tap weighted overlap-add (WOLA) Fourier transform spectrometerReduced FFT sidelobesPlain FT filterbank pipeline also supported for observatories with limited computational resourcesAdjustable SDR parametersDevice argumentsRF/IF/BB GainHeader fileObservation parameters automatically passed to corresponding.headerfileIncludes logged MJD (at observationt0)Spectral line supportSpectrum calibrationyaxis is automatically rescaled to S:N units with line maskingOptional automatic slope correction (based on linear regression) for poorly-calibrated spectraSupports median operation for RFI mitigation on the frequency-domain (adjustablen-factor)RFI channel maskingAdjustablefrestfor observation of any spectral line (not just HI)Secondary axes for relative velocity automatically adjusted accordinglyPrevention against strong narrowband RFI rescaling subplotThe average spectra, calibration spectra and calibrated spectra are optionally saved as acsvfile for further analysisContinuum supportSupports median operation for time-varying RFI mitigation (adjustablen-factor)Total power distribution (histogram) displayed, both for raw and clean dataBest Gaussian fits computed automaticallyPrevention against strong short-duration RFI rescaling subplotTime series optionally saved as acsvfile for further analysisPulsarsIncoherent dedispersion support for giant pulse search (and FRB follow-up, assuming DM is known)Dynamic spectrum (waterfall)Optionally saved as aFITSfile for further advanced/custom analysisDecibel supportPower units optionally displayed in dBObservation planning toolkitPredict source altitude & azimuth vs timeQuickly convert galactic to equatorial and Alt/Az to RA/DecPlot telescope position on the 21 cm all-sky surveySimulate 21 cm profiles based on the LAB HI surveyBasic calculation toolkit for system sensitivity & performance. Computes:Antenna gain (in dBi, linear or K/Jy)Effective apertureHalf-power beamwidthNoise figure to noise temperature and vice versaAntenna gain-to-noise-temperature (G/T)System equivalent flux density (SEFD)Radiometer equation (S:N estimation)Built-in tool for conducting rapid RFI surveysArgument-parsing supportWorks directly from the command line (virgo -h), or as a Python moduleTelescopes based on the Virgo SpectrometerISEC 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 ObservationObservation 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 PredictionExample HI Profile RetrievalExample HI MapThe red dot indicates the position of the telescope's beam in the sky.Data Acquisition FlowgraphVirgois afour-tap WOLA Fourier transformspectrometer. 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)InstallationTo useVirgo, make surePythonandGNU Radio(withgr-osmosdr) are installed on your machine.For Debian/Ubuntu and derivates, the installation is straightforward:sudo apt install gnuradio gr-osmosdrNote:TheGNU Radioandgr-osmosdrdependencies are only required foracquiring 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 theDependencies section.Once Python and GNU Radio are installed on your system, runpip install astro-virgoDocumentationTo learn how to use Virgo, please read through the documentationhere.If you believe something is not clarified in the documentation page, you are encouraged tocreate an issue(or send me ane-mailand I'll be happy to help.ContributingIf you wish to contribute to the package (either with code, ideas or further documentation), please read through theContributor Guidelines.CreditsVirgowas created byApostolos Spanakis-Misirlis.Contact:0xcoto@protonmail.comSpecial thanks toDr. Cameron Van Eck,Paul BovenandDr. Cees Bassafor their valuable contributions.