sattools
is a collection of tools to facilitate photographic and video satellite tracking.
Requirements
The following software and libraries are required to compile sattools
:
- gfortran
- gcc
- make
- git
- wcslib-dev
- libgsl-dev
- pgplot5
- libpng-dev
- libx11-dev
- libjpeg-dev
- libexif-dev
- dos2unix
- sextractor
On Debian/Ubuntu, these can be installed with sudo apt install git make dos2unix sextractor wcslib-dev pgplot5 libgsl-dev gfortran libpng-dev libx11-dev libjpeg-dev libexif-dev
.
Build and install qfits
wget -c ftp://ftp.eso.org/pub/qfits/qfits-5.2.0.tar.gz
gunzip -c qfits-5.2.0.tar.gz | tar xvf -
cd qfits-5.2.0
chmod +w src/xmemory.c
sed -i -e "s/swapfd = open(fname, O_RDWR | O_CREAT);/swapfd = open(fname, O_RDWR | O_CREAT, 0644);/g" src/xmemory.c
./configure
make
sudo make install
The qfits
code can also be obtained from https://spacecruft.org/spacecruft/qfits
Clone and install sattools
git clone https://github.com/cbassa/sattools.git
cd sattools
make
Setup environment variables
You will need to set the following environment variables to run sattools. Add these to a login file such as .bashrc
.
ST_COSPAR
COSPAR observing site number,use 9990 if you do not have one. Add your site information to$ST_DATADIR/data/sites.txt
.ST_DATADIR
path to sattools directory (e.g.$HOME/software/sattools
)ST_TLEDIR
path to TLE directory (e.g.$HOME/tle
)ST_OBSDIR
path to observations directory (e.g.$HOME/satobs
)ST_LOGIN
optional space-track.org login info for TLE download (of the formST_LOGIN="identity=username&password=password"
)
Final configuration steps
Add the sattools
directory with executables to your PATH
variable. On Ubuntu this is .profile
and should be of the form PATH=<path_to_sattools>/bin:$PATH
.
Then reload the .profile
file with source $HOME/.profile
.
Try to download TLEs using tleupdate
, which should now exist in your PATH
variable.
Miscellaneous setup notes
- If you have multiple capture devices you will need to add a
/etc/udev/rules.d/99-server.rules
file to add symlinks and use them to address a particular camera.sattools
will automatically select the camera that is scheduled for each observation. You may use a command such asudevadm info -a -n /dev/video0
to get your capture device attributes and use that to create the rules file. A sample rules file is available as guide indata/
. Note that symlinks to the rules file do not work, the rules file must be modified to suit your needs and copied to/etc/udev/rules.d/
- You should install NTP support on the system and configure time/date to automatically synchronize to time servers.
-
skymap
: Vizualize satellites on a map of the sky. Example usage:- Compute and plot the path of a satellite (NORAD ID 43145), using a TLE from an input file (
$ST_TLEDIR/classfd.tle
) for a site (COSPAR ID 4171) at a date/time (2019-12-01T17:42:00) while looking at a particular RA/Dec (01h00m00s
,+30d00m00s
).
skymap -s 4171 -t 2019-12-01T17:42:00 -c $ST_TLEDIR/classfd.tle -i 43145 -R 01:00:00 -D 30:00:00
- Compute and plot the path of a satellite (NORAD ID 43145), using a TLE from an input file (
-
tleinfo
: Display information about a set of TLEs. Example usage:- List values (SATNO, YEAR DOY, INCL, ASCN, ARGP, MA, ECC, MM) of the TLEs in the file
bulk.tle
:tleinfo -H -1
- List orbital parameters (SEMI, PERIGEE, APOGEE, PERIOD, ECC) of the TLEs in the file
bulk.tle
:tleinfo -H -1 -a
- Show human-readable info of the TLE for object 74001:
tleinfo -i 74001 -f
- List values (SATNO, YEAR DOY, INCL, ASCN, ARGP, MA, ECC, MM) of the TLEs in the file
-
faketle
: Calculate a TLE based on given orbit/launch parameters. Example usage:- Assuming a standard GTO launch from Cape Canaveral (latitude 28.5°N), GTO insertion burn (10° E, 0° N) at south-bound equator crossing +1655 seconds after launch,
launch at 2019-02-22T01:45:00, perigee/apogee heights 258/59998 km, the pre-launch TLE can be generated with
faketle -t 2019-02-22T01:45:00 -d 1655 -q 258 -Q 59998 -I 28.5 -m 0 -w 180 -n 10
- Assuming a standard GTO launch from Cape Canaveral (latitude 28.5°N), GTO insertion burn (10° E, 0° N) at south-bound equator crossing +1655 seconds after launch,
launch at 2019-02-22T01:45:00, perigee/apogee heights 258/59998 km, the pre-launch TLE can be generated with
-
pass
: Calculate the next passes above a given COSPAR site. Example usage:- List all ISS passes (NORAD ID 25544) at Dwingeloo Telescope (COSPAR
site ID 9998) for the next 10 hours (3600 seconds) based on the TLE
in catalog.tle (drop
-a
to only show the visible passes)pass -i 25544 -s 9998 -l 36000 -c $ST_TLEDIR/catalog.tle -a
- Append
-P
in order to invokeskymap
to plot a skymap and the sky track for each predicted pass
- List all ISS passes (NORAD ID 25544) at Dwingeloo Telescope (COSPAR
site ID 9998) for the next 10 hours (3600 seconds) based on the TLE
in catalog.tle (drop
-
satmap
: Visualize satellite tracks on a map of Earth Example usage:- Show the ground track of all satellites in
ST_TLEDIR/classfd.tle
(for roughly 1.3 orbits from now on)satmap
- Show the ground track of all satellites in
-
satorbit
: Show a 3D representation of the earth, the current position, footprint and orbit of the selected object Example usage:- Show ISS position, footprint and orbit
satorbit -i 25544 -c $ST_TLEDIR/catalog.tle
- Show ISS position, footprint and orbit
-
launchtle
: This tool takes an input TLE and launchtime and then corrects the epoch of the TLE for the new launch time, and adjusts the right ascension of the ascending node for how much it would have changed between the old and new launch time. Example usage:- Use the given pre-launch TLE of object 70002 (stored in prelaunch.tle) associated with
the original launch time of 2018-11-11T03:00:00Z to correct for the new launch time
at 2018-11-11T05:00:00Z and store it with a new identifier (70003 here):
launchtle -c prelaunch.tle -i 70002 -t 2018-11-11T03:00:00 -T 2018-11-11T05:00:00 -I 70003
- Use the given pre-launch TLE of object 70002 (stored in prelaunch.tle) associated with
the original launch time of 2018-11-11T03:00:00Z to correct for the new launch time
at 2018-11-11T05:00:00Z and store it with a new identifier (70003 here):
-
tleupdate
: Update the local database of TLEs from various sources (Space-Track, inttles and classfd.zip). Usage:tleupdate