This project provides tools for receiving, decoding, and visualizing APRS (Automatic Packet Reporting System) data in real time. It supports both online APRS-IS sources and Direwolf, and can output position data to KML files for visualization in Google Earth.
- Connect to a local KISS TNC (e.g., Direwolf) and decode APRS packets
- Extract and store latitude, longitude, and altitude from received packets
- Output received positions to KML files for mapping and visualization
- Auto-refresh KML link for live tracking in Google Earth
- Python 3.13.3
The requirements.txt file is found in:
src/requirements.txtInstall dependencies in the project folder with:
pip install -r src/requirements.txtEither clone the repository:
git clone https://github.com/Leffell-Space/live_data_analysisOr access the pre-built releases for each operating system: Latest Release
Go to digital ocean and make a new spaces object. There should be two files in it: tracker.kml and tracker_link.kml. Set the space listing to public and get your access keys that will be needed in the next step when configuring your .env.
In order for the for the python script to run properly the environment file must be set up. Download the .env.example and change all of the values in it to your own values. Also, remember to remove the .example file suffix from the filename.
There are two main options to do so:
In order for this method to work, you must have an RTL-SDR adapter plugged into the USB port of your computer. You should tune the antenna to receive on or around 144.39 Hz. Additionally, you should make sure that the application (HDSDR or whatever else you are using) is configured to act as a virtual audio input and then set that input in the direwolf.conf file that should be in your direwolf folder. For more information about that please see: wb2osz/direwolf
Again make sure Direwolf is properly installed on your computer! The audio file you are running should contain APRS packet data and not data from another frequency, as direwolf was specifically for APRS. In the directory where your audio file is run:
direwolf - < your_audio_file.wavNote that the audio file must be in .wav and must be mono output. Also, Direwolf will begin transmitting rapidly over 8001 from an audio file; therefore, if you are using the Direwolf script with this you must complete the next step in very quick succession after running this command. The testing audio I used is from wa8lmf.net and you can find the download for the specific one here in my personal drive. I would suggest using this one because there is a whole process to get the file in mono output but if you really want to there are other tests at the link above.
Make sure Direwolf is running and listening on port 8001. Then run:
python3 src/get_from_direwolf.pyThis will decode incoming APRS packets, print positions, and update tracker.kml and tracker_link.kml for Google Earth. Note that this command must be run in a different terminal than the command that starts up the server.
Download tracker_link.kml from your Digital Ocean Spaces page. You must have Google Earth Pro (not paid just the desktop version) in order to get live updates. Download it here: Google Earth Pro. Then in Google Earth Pro go to file → open → and then your tracker_link.kml. You should see all of the pins that are meant to be there, marked by their EST received date and time. This means it will mark it by the time/date that it receives the data not the timestamp of the data found within the APRS packet.
See LICENSE