Headless Selenium automation for submitting .obs files to CSRS for Precise Point Positioning (PPP)
This project is intended to automate the process of uploading .obs files to the CSRS Precise Point Positioning Service to allow easy management of multiple GNSS Base Stations. The intended workflow is essentially as follows:
- Log 24 hours of RAW-RAWX and RXM-SFRBX messages using the RTKLIB console app str2str
timeout 24h ./RTKLIB/app/consapp/str2str/gcc/str2str -in serial://[serialdevice]:[baud]:8:n:1:off -out ~/[filename].ubx
- Process the resulting .ubx file into a .obs file using the RTKLIB console app convbin
./RTKLIB/app/consapp/convbin/gcc/convbin -od -os -oi -ot -ti 30 [filename].ubx
- Wait a pre-determined length of time (Probably something like 2 weeks)
- Automatically upload .obs file to CSRS (THIS PROJECT)
python3 opus.py
Where all steps are automated and scheduled via crontab
I set up this project specifically to run on a Raspberry Pi 4 running Ubuntu Server 22.04. For this project, the following dependencies are needed:
- selenium
pip3 install selenium
- Mozilla Firefox Gecko Driver
wget https://github.com/mozilla/geckodriver/releases/download/v0.31.0/geckodriver-v0.31.0-linux64.tar.gz
(You may need a more up-to-date version)tar -xvzf geckodriver*
chmox +x geckodriver
sudo mv geckodriver /usr/local/bin
- xvfb
sudo apt install xvfb
- PyVirtualDisplay
pip3 install pyvirtualdisplay