Installing on Linux (Ubuntu 19.10)¶
Get the SAA DLLs¶
You must be a US citizen to lawfully download the SAA DLLs.
Go to space-track.org, make an account, then go to the sgp4 download page and download the appropriate package for your operating system. For me, this is SGP4_small_V7.9_LINUX64.tar.gz. You should also download the windows package, SGP4_small_V7.9_WIN64.zip, because the Windows package provides driver examples not present in the Linux version.
Verify the Python3 Environment¶
Check your Python3 version and make sure you are running at 3.7.5 or greater.
$ python3 -V
Python 3.7.5
Check your ctypes version and make sure you are running 1.1.0 or greater.
$ python3 -c "import ctypes; print(ctypes.__version__)"
1.1.0
Clone the dshsaa repository¶
Clone the dshsaa repository to your working environment.
$ cd ~
$ git clone https://github.com/hardingprofessional/dshsaa.git
You should now have a folder called dshsaa on your current path.
Place the DLL/SO files in the libdll directory¶
Untar your copy of SGP4_small_V7.9_LINUX64.tar.gz. Navigate to SGP4_small_V7.9_LINUX64.tar.gz/Lib and copy all of the contents to ~/dshsaa/dshsaa/libdll/.
Install dependencies with pip3¶
If you don’t have pip installed, install it.
$ sudo apt update
$ sudo apt install python3-pip
$ sudo apt install python3-venv
Establish a virtual environment.
$ cd ~/dshsaa
$ python3 -m venv virtenv
You should now have a folder at ~/dshsaa/virtenv. Next, activate the virtual environment and install dependencies.
$ source virtenv/bin/activate
$ pip3 install --upgrade pip
$ pip3 install -r requirements.txt
Sourcing virtenv/bin/activate fundamentally alters the python environment in the shell, and those changes will persist until the user executes the shell function deactivate. Your $PS1 shell prompt should indicate this by prepending (virtenv) to itself.
Set path and run tests¶
Add the libdll to LD_LIBRARY_PATH. This must be done any time the dshsaa module is used.
$ cd ~/dshsaa
$ source source_env
Run the full test battery
$ ./runtest
The end of the output should look similar to this:
...
test_TleUpdateSatFrFieldsSP (raw.test_tledll.TestTleDll) ... ok
testl_TleFieldsToSatKey (raw.test_tledll.TestTleDll) ... ok
testl_TleFieldsToSatKeyML (raw.test_tledll.TestTleDll) ... skipped 'Segmentation fault, matlab'
----------------------------------------------------------------------
Ran 155 tests in 0.014s
OK (skipped=14)
Test ability to build the documentation¶
Build the documentation with sphinx.
$ cd ~/dshsaa/sphinx
$ ./rebuild
Open the documentation by pointing your browser at ~/dshsaa/sphinx/_build/html/index.html.
Startup Notes¶
Any time you run the module, you should do so from ~/dshsaa and you must source source_env. If you develop a program that uses this module, you should manually integrate the DLLs/SOs into your operating system and the python modules into your project.
Any time you build the docs, you must do so from ~/dshsaa/sphinx using the ./rebuild script.
I am investigating ways to fix these path dependencies.
Run dshsaa/example.py to make sure it works. Use this code as a reference until the sphinx documentation is improved.