User Tools

Site Tools


software

This is an old revision of the document!


Controlling the Dish

The dish control server program runs on w1xm-radar-1.mitrs.org and is used by all software that controls the dish.

Features include:

- WebSockets-based protocol making use from Python, JavaScript, etc. client programs easy

- Support for multiple coordinate reference frames, as well as automatic tracking of the sky

- Support for coordinates with target velocities, which improves the tracking quality of the motor control loops

- Support for enqueuing commands ahead of time with an “execute-at” timestamp for more precise tracking

- Multiple user access with system for viewing whether a connected user is idle and potentially kicking them

An example Python client library is provided. A web interface is also being written.

The code for the client and server is on MIT GitHub. A public mirror is located here.

TODO: actually mirror it to the mirror now that we've invalidated the passwords that were in the git repo

RF Data Handling

For realtime processing of rf data, your best bet is usually to start with a gnuradio-companion flowgraph. gqrx can also be used for simply viewing the recieved spectrum and tuning the sdr.

For storage of RF data for later analysis, we typically use digital_rf which provides a number of useful tools for rf data recording (such as thor.py) and for viewing said data (drf_sti.py). Generally, this is installed along with other useful sdr drivers, gnuradio libraries, and the like with radioconda.

Note: You should generally avoid storing RF sample data to the same hard disk partition as a computer OS. The file sizes become large very quickly and accidentally filling the drive (and thereby rendering the computer unuseable) is a real possibility. Most machines with access to the RF Data Network have dedicated /data partitions for this purpose that map to a separate raid array that is substantially larger than the partition for user and operating system files.

if you don't need to save data but want to retain it for a few seconds for some reason, the “drf ringbuffer” tool can provide a good option for managing digital_rf files in-memory. laforge.mit.edu and scotty.mit.edu have memory mapped file folders at /tmp/ramdisk for this purpose. This can also help to protect against dropped samples due to disk IO rate variations by using drf mirror to copy rf data from the ringbuffer to disk.

Application-Specific Software

Satellite Tracking

The example pointing scripts for the BigDishControlServer software include a small Python program that bridges the WebSocket-based protocol to rotctl protocol, which is used by satellite-tracking software like Gpredict. Note that currently Gpredict/rotctl cannot supply tracking velocities, so the tracking accuracy will be a bit worse.

Some ephemeris are available only in formats which are incompatible with gpredict. Programs to interpret a subset of these into the commands for the dish can be found here Bigdish tracking scripts and coordinate converters and can produce command files readable by WR66_run_pointing_file.py

Radio Astronomy

We use the srt-py software (modified to support our dish control protocol) for J-Lab's radio astronomy work. The code is hosted publicly here. The dual-polarization branch is the current active version.

TODO: add a separate page with references for srt-py things

Note that the srt-py code is meant to be easy to use teaching software and is fairly limited in its ability to handle wideband observations or interact more creatively with the radome and radio systems. For more advanced observing projects, writing code to control the dish and radio separately, generally using digital_rf for handling RF data, is often advantageous. Additional Examples and tools for tracking objects with direct command of the dish and analyzing the raw sample data from the radio can be found here BigDishTools

software.1779062623.txt.gz · Last modified: 2026/05/18 00:03 by dsheen

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki