使用 Linux 进行卫星跟踪

作者:Kenneth E. Harker

正在寻找一些用您的 Linux 电脑来做的有趣事情吗?我见过的最令人印象深刻的 Linux 应用之一是由 Manfred Bester 编写的用于 Unix 的 SatTrack 3.1。SatTrack 是一个非常强大的卫星跟踪和轨道预测工具。它可以告诉您卫星、和平号空间站或航天飞机何时会飞过头顶,它们在任何时候的位置以及您可能何时能够看到它们。它甚至可以控制一些外部跟踪硬件,例如天线转子或望远镜。该程序可以从控制台或终端窗口运行,或者如果在 xterm 中启动,它可以弹出一个世界地图,显示任何卫星或卫星群的当前位置。它可以做到这一切,而且最棒的是,SatTrack 3.1 对于个人非商业用途是免费的。

图 1. SatTrack v3.1 菜单

作为一名业余无线电操作员,我首先对使用 SatTrack 跟踪许多近地轨道业余无线电卫星产生了兴趣。这些卫星在一个频率上接收业余无线电信号,放大它,然后在另一个频率上重新发射它。位于大陆或海洋两侧的两个站点可以使用通常无法相互到达的无线电设备,通过其中一颗卫星进行通信。然而,由于这些卫星大多处于近地轨道,它们很少飞过头顶,而且每次只有几分钟的时间。知道它们何时何地出现对于成功的通信至关重要。为了解决这个跟踪问题,Linux 和 SatTrack 派上了用场!

图 2. SatTrack v3.1 多卫星线显示

SatTrack 被设计为可以在大多数 Unix 操作系统上编译和运行,并且在 Linux 下运行良好。该程序的一个非常好的特性是它可以从终端窗口(例如 VT100 终端)或 Linux 虚拟控制台运行,如果您不能或不想使用 X。另一方面,如果您确实运行 X,您可以调出一个全彩世界地图,它将向您显示任何卫星或卫星群在此时此刻的位置、太阳的位置、将地球行星的阳光照射侧与黑暗侧分开的灰线的位置,以及卫星接下来几个轨道的路径的图形投影。SatTrack 附带的工具可以自动执行从空军技术研究所的 FTP 服务器直接下载最新的开普勒双线轨道根数——描述卫星轨道的文件——的过程。

图 3. SatTrack v3.1 图形跟踪显示

SatTrack 在航天界被广泛使用。根据该程序的主页

SatTrack V3.1 的用户包括 NASA 的喷气推进实验室 (JPL)、约翰逊航天中心 (JSC)、戈达德航天飞行中心 (GSFC) 和马歇尔航天飞行中心 (MSFC)、欧洲航天局 (ESA)、德国航空航天研究中心 (DLR)、荷兰国家航空航天实验室 (NLR)、洛斯阿拉莫斯国家实验室 (LANL)、阿蒙森-斯科特南极站、大量大学和其他机构,以及遍布全球的数千名私人用户。

您可以在 http://www.primenet.com/~bester/sattrack.html 找到有关 SatTrack 的更多信息,包括其版权和许可信息以及最新版本的 SatTrack 3.1 发行版。

在 Linux 系统中编译 SatTrack 相当简单。有关如何编译该程序的说明包含在文件 SatTrack/src/README_MAKE 中,我不会在此处重复所有这些说明。不过,最重要的选项是选择 SatTrack/src/Makefile 和 SatTrack/src/include/sattrack.h 中的选项。(如果您查看相关文件,这些将变得有意义。)在 Makefile 中,我选择的机器类型是(是的,我实际上确实有一台 486)

# i486          (i486 with Linux)
#
CPU             = i486/Linux
CC_CMACH        = -O2 -m486
CC_LMACH        =
CC              = gcc

我选择的用户编译时选项是

CC_CUSR     = -DREVERSEVIDEO -DSUNTRANSITS
-DXWINDOW

我使用了以下选项进行编译和链接

X11         = /usr/include/X11
LX11            = -L/usr/X11R6/lib -lX11 -lXt
-lICE -lSM
# X11R6

在 SatTrack/src/include/sattrack.h 中,我唯一做的更改是定义主目录

#define SATDIR    "/usr/local/bin/X11" /* directory where SatTrack */

并更改打印命令(您可能会选择使用 nenscript 或其他 ascii 到 postscript 实用程序)

#define PRINTCMD              "a2ps"
#define PRINTOPT              "-nL -nu -c"

进行这些更改后,SatTrack 应该可以成功编译。编译后要检查的最后一件事是 SatTrack/pred/ 目录的写入权限;如果您将 SatTrack 安装在公共 bin 目录中,您可能需要使该目录世界可写,否则 SatTrack 可能无法将轨道预测写入文件(或打印出来)。为了简化调用程序,我在我的一个下拉 fvwm 菜单中定义了一个选择,如下所示

        Exec    "SatTrack"      exec
/usr/bin/X11/color-xterm -sb -sl 500 -j
-ls -fn 7x14 -geometry 132x26 -T 'SatTrack
for Unix 3.1' -n 'SatTrack' -e
/usr/local/bin/X11/SatTrack/run/sattrack &

使用 SatTrack 很简单。在告诉程序您的位置和您感兴趣的卫星后,您将看到一个选项列表。您可以计算几天内的轨道预测。SatTrack 将简洁地描述每次飞过您所在位置的情况,包括每次飞过的时间和持续时间、卫星将达到的峰值仰角以及是否可见。另一个选项是显示卫星的当前位置。您可以一次显示一颗卫星或一组卫星(例如所有业余无线电卫星)。SatTrack 将告诉您哪些卫星当前在地平线上方,以及卫星进入或离开您的视野还需要多长时间。在适当的时候,SatTrack 甚至可以告诉您卫星的无线电频率上行链路和/或下行链路,并动态补偿多普勒频移!更高级的用户可以将 SatTrack 与天线或望远镜指向硬件集成,以在物体飞过头顶时精确跟踪它。SatTrack 是少数几个通常可用于任何操作系统的卫星跟踪程序之一,它可以显示卫星可见性或主动控制跟踪硬件。

以下是 SatTrack 卫星图标

Satellite Tracking with Linux

美国航天飞机图标

Satellite Tracking with Linux

航天飞机图标

Satellite Tracking with Linux

和平号空间站图标

Satellite Tracking with Linux

国际空间站图标

SatTrack 是跟踪卫星的绝对奇迹。在 SatTrack 的帮助下,我已经使用俄罗斯业余无线电卫星 RS-15 与 1000 英里外的另一位业余无线电操作员进行了首次双向通信,我期待着进行更多次通信。那些不是业余无线电操作员的人也可以找到 SatTrack 的有趣用途。气象卫星、地质勘测卫星和其他卫星不断向地球发送图像和遥测数据。SatTrack 还可以告诉您卫星何时可能可见。见过航天飞机飞过头顶吗?和平号空间站?哈勃太空望远镜?使用双筒望远镜或望远镜,您甚至可以看到更小的卫星,一旦 SatTrack 告诉您在哪里以及何时观看。正在做关于全球定位系统的演示?向您的观众展示 GPS 卫星在轨道中的确切位置。需要一个引人注目的计算机显示器来展示您为电影研究 101 制作的科幻史诗吗?SatTrack 可以提供不断变化的图形显示窗口。

关于 SatTrack 的信息

有关 Unix 版 SatTrack 的信息可在 http://www.primenet.com/~bester/sattrack.html 获取。

SatTrack 3.1 可以免费下载和用于个人非商业用途,作者 Manfred Bester 提供了具有更多选项和更图形化界面的 SatTrack 4.0 版本,供商业用途使用。

图 5:SatTrack 轨道预测简短形式

图 6. SatTrack v4.0.1 用于多卫星线显示的 GUI

要了解使用 SatTrack 预测卫星轨道可见时间的味道,请查看 http://ssl.berkeley.edu/isi_www/satpasses.html。

有关业余无线电的更多信息,请参阅美国无线电中继联盟的主页:http://www.arrl.org/。

有关业余无线电卫星的特别信息,请参阅 AMSAT(国家业余无线电卫星公司)的主页:http://www.amsat.org/。

有关航天飞机业余无线电实验的信息,请参阅 http://www.nasa.gov/sarex/sarex.html。

Ken Harker,N1PVB 自 1993 年 10 月以来一直是持牌业余无线电爱好者,自 1995 年 6 月以来一直是狂热的 Linux 用户。他目前是德克萨斯大学奥斯汀分校计算机科学专业的研究生。

加载 Disqus 评论