You think.
AI does.

想用浏览器开一座卫星地面站?Ground Station 值得了解(2026 终极指南)

一款跑在浏览器里的开源卫星地面站套件——轨道预报 · 多目标追踪 · SDR 瀑布流 · 遥测解码 · 无人值守自动观测。

4.7k Stars
GPL-3.0
React + FastAPI
v0.8.6
把整座地面站装进一个标签页

AI 摘要

Ground Station 是 sgoudelis 开源的一套浏览器端卫星地面站应用,把轨道预报、多目标追踪、天线与电台控制、SDR 瀑布流、遥测解码、IQ 录制与无人值守自动观测收进同一个 Web 界面。它不绑定特定接收机,通过 IQ Broadcaster 与 Audio Broadcaster 两条发布订阅总线把实时信号链串起来,并用 SigMF 标准把录制结果落盘。本文涵盖它是什么、主要功能、应用场景、安装部署、获取方式、同类对比、核心机制、自动观测、实用技巧、更新动态、常见问题与总结。

一、Ground Station 产品深度介绍

(一)它是什么

Ground Station 是一个开源、浏览器端的地面站应用。仓库对自身的定位原话是:用于追踪卫星与天体目标、控制站点硬件,以及接收、解码、记录 SDR 信号。它面向业余无线电操作员、卫星爱好者与研究人员,把轨道可视化、多目标追踪控制台、SDR 瀑布流分析、数据包与遥测解码、计划观测以及硬件管理,收进同一个 Web 界面。

换句话说,过去需要用一个软件看过境预报、另一个软件收信号、再换一个解码器解包、用 rotctld 转天线、最后自己写脚本归档录制文件的一整条链路,在 Ground Station 里是同一个页面上的几个标签。

(二)技术表现

它的工程化程度与迭代节奏,可以从几个硬指标看出来:

  • 代码构成:JavaScript 60.5% + Python 39.2%,前端 React 系、后端 FastAPI 系,仓库 2025-03-01 创建,最近一次推送 2026-09-07;
  • 社区体量:约 4,757 Star、829 Fork、13 个开放 Issue;
  • 版本节奏:从 0.7.x 到 0.8.x 基本按周迭代,最新 v0.8.6 发布于 2026-09-06;
  • 交付形态:每个 release 都带预构建的多架构镜像(amd64 / arm64),托管在 ghcr.io;
  • 许可与治理:GPL-3.0,贡献需签署 CLA。
Ground Station 全球卫星总览页,业余卫星分组与实时状态指示
全球卫星总览页:快速分组切换与实时卫星状态指示(图片来自项目仓库)

(三)产品定位

它的定位是硬件中立的单站地面站。官方支持的接收机覆盖 RTL-SDR(USB 或 rtl_tcp)、Airspy 与 Airspy HF+(README 明确标注 HF+ 目前未测试)、UHD/USRP,以及一大串走 SoapySDR 的设备:RTL-SDR、Airspy、HackRF、HydraSDR、LimeSDR、MiriSDR、PlutoSDR、UHD/USRP、SDRplay RSP 系列。v0.8.6 又通过 SoapyMiri 补上了 MiriSDR。如果你手上的设备不在列表里,README 给出的答复很直接:开一个 GitHub issue 提需求。

二、主要功能特点与应用场景

(一)主要功能特点

  • 实时轨道追踪:基于 Skyfield 与 SGP4,从已存储的轨道根数推算位置。
  • 可配置轨道数据源 + 元数据补全:默认同步 CelesTrak feeds,再用 SatNOGS API 补全卫星与发射机信息。
  • 多目标追踪实例:多个 tracker 并行运行(target-N 槽位),各自持有独立的运行时状态。
  • 天线转子自动控制:持续 az/el 更新、限位检查,以及防抖的重新定目标逻辑。
  • 电台控制与多普勒校正:经 rigctld / Hamlib 通路,在追踪过程中对 RX/TX 做多普勒修正调谐。
  • 实时 DSP 流水线:IQ 样本经队列化 worker 编排,分发给 FFT/瀑布流、解调器、解码器、录制器与浏览器消费者。
  • IQ 录制与回放(SigMF):录制为 .sigmf-data + .sigmf-meta,带中心频率、采样率、会话统计与目标卫星元数据;录制文件以虚拟 SDR 的形式出现,走与实时完全相同的处理链路。
  • 解码与组帧:SSTV、APRS、FSK、GFSK、GMSK、BPSK、GNSS,包管道支持 AX.25 / USP / GEOSCAN 组帧。
  • APRS 专用链路:raw-IQ APRS 解码器,内建 NBFM / Bell 202 解调、AX.25 解析与批边界恢复。
  • 转写服务:经 Gemini Live 或 Deepgram 对解调音频做实时转写,可带翻译,输出到 backend/data/transcriptions/。
  • 性能监控:队列利用率、吞吐、丢包、组件健康实时推到前端。
  • 认证与用户管理:内置登录屏,admin 与 operator 两级角色。
  • 太阳系视图与深空目标:经 NASA/JPL Horizons 提供的星历矢量,追踪行星与深空任务目标。

(二)应用场景

  • 业余卫星通联与遥测接收:一次过境里同时完成追踪、接收、解码与归档;
  • 气象卫星图像:配合可选的 SatDump 后处理,跑 METEOR LRPT / HRPT 流水线;
  • APRS 与数据包监听:专用的 raw-IQ APRS 解码链路;
  • 天线与电台联调:转子限位、重叠模式、多普勒校正的可视化验证;
  • 深空与天体观测:用 Horizons 矢量跟太阳系天体与深空任务;
  • 教学与科普:响应式界面,手机与平板也能直接看瀑布流与轨道图。

(三)适用人群

它适合业余无线电操作员、卫星与射电爱好者、高校 CubeSat 团队、做 SDR 教学的研究人员,以及任何一个想把预报、收信、解码、归档这一串环节真正串起来的人。反过来,如果你只想要一个纯粹的频谱浏览器,它的分量会显得偏重。

三、安装与部署:Docker 一条命令,源码两种走法

(一)前置依赖

  • 生产部署:Docker,且容器能访问 USB 设备(–device=/dev/bus/usb 或 ARM64 上的 -v /dev:/dev);
  • 源码开发:Python 3.8+ 与 Node.js 14+(DEVELOPMENT.md 给出的下限);
  • 可选能力:LoRa 解码需要 GNU Radio 3.10 + gr-lora_sdr,SSDV 解码需要上游参考编解码器,两者 Docker 镜像均已预装。

(二)Docker 部署(推荐)

拉取对应版本的镜像后,按网络需求二选一:

# host 网络:可通过 mDNS 自动发现 SoapySDR 远程服务器
docker run -d \
  --platform linux/amd64 \
  --network host \
  --name ground-station \
  --restart unless-stopped \
  --device=/dev/bus/usb \
  --privileged \
  -v /path/to/data:/app/backend/data \
  ghcr.io/sgoudelis/ground-station:<version>

# 桥接模式:适用于本地 SDR
docker run -d -p 7000:7000 --device=/dev/bus/usb --privileged \
  -v /path/to/data:/app/backend/data \
  ghcr.io/sgoudelis/ground-station:<version>

界面访问地址是 http://<YOUR_HOST>:7000。两个容易踩的点:一是树莓派官方只推荐 Pi 5,ARM64 下要用 -v /dev:/dev 才能拿到全部 USB 设备;二是 USB 设备节点权限归宿主机所有,容器里的 –device 并不会替你装 udev 规则——RTL-SDR 在 Debian/Ubuntu 上装 librtlsdr2 即可带出规则,MiriSDR 则要自己写 66-mirics.rules(idVendor 1df7)。

(三)源码开发部署

后端走现代 Python 打包,前端是独立的 dev server:

# 后端
cd backend
python -m venv venv && source venv/bin/activate
pip install -e ".[dev]"
python app.py --host 0.0.0.0 --port 5000

# 前端
cd frontend
npm install && npm run dev

前端 dev server 会把 API 与 socket 流量代理到 .env.development 中定义的后端端口(默认 localhost:5000)。需要提醒的是,LoRa 与 SSDV 是源码部署里最麻烦的两块:LoRa 因 NumPy 2.x 兼容要求需从源码编译 GNU Radio 3.10(15–30 分钟),SSDV 则 pin 在上游 commit d1ceda81,且首个接收档位是 9600 波特 BPSK、256 字节标准 SSDV 包。

四、官方地址与获取方式

  • 代码仓库:github.com/sgoudelis/ground-station
  • 发布与镜像:仓库 Releases 页,或 docker pull ghcr.io/sgoudelis/ground-station:<version>
  • 问题与设备支持请求:GitHub Issues(README 明确欢迎为没有的设备开 issue 提需求)
  • 文档:README.md(功能与架构)、DEVELOPMENT.md(开发与测试)、CONTRIBUTING.md(贡献与 CLA)
  • TLS 反向代理:deploy/nginx/README.md

五、与同类方案对比分析

(一)对比 SatNOGS 地面站网络

SatNOGS 是全球分布式的地面站网络加统一调度,重心在网络化共享与规模化观测;Ground Station 是单站自建自管,重心在你自己这台机器上的全流程闭环。二者并不互斥——Ground Station 反过来还调用 SatNOGS 的 API 来补全发射机元数据。要参与全球网络选前者,要把自己的一站玩透选后者。

(二)对比传统桌面 SDR 软件栈

通用 SDR 桌面软件给你频谱与解调,但过境预报、天线控制、多普勒、录制归档、自动排程都要自己拼。Ground Station 把这些拼好了,代价是它更重、更垂直:你要接受它的一整套数据模型与页面组织方式,而不是自由组合自己喜欢的单一工具。

(三)对比命令行解码链

gr-satellites、SatDump 或自建 GNU Radio 流程图在灵活性与可脚本化上占优,适合批量处理与科研复现。Ground Station 提供的是图形化、可回放、可排程的封装,并把 SatDump 作为可选后处理接进来。追求极致可控的批量科研场景,仍然应该直接用命令行。

六、核心机制:两条广播总线撑起实时信号链

它最值得看的工程决策,是用发布订阅模式把「采样的生产者」与「处理的消费者」彻底解耦。SDR 以很高的速率产出原始 IQ,IQBroadcaster 把这份数据同时分发给多个消费者,每个订阅者拿到独立队列与深拷贝样本;慢消费者的消息被丢弃,而不是反过来阻塞生产者。

小黑 拿着长夹子把 IQ 样本同时塞进多个工作台,慢消费者那边堆着被丢的包
IQ 广播器的小黑图:一份信号被深拷贝同时分发给多个消费者,慢消费者不阻塞快生产者

音频侧还有一条更短的总线,只为「内部解调器 → 解码器」这一段服务:

Ground Station DSP 拓扑与性能视图:IQ 样本流经的线程与进程链
DSP 拓扑与性能视图:IQ 样本流经的线程与进程链,以及各环节的数据流表现(图片来自项目仓库)
SDR 硬件RTL-SDR / SoapySDR / UHD
→
IQ Broadcaster深拷贝分发给每个订阅者
→
FFT / 录制 / 解调 / IQ 解码四类消费者并行
→
Audio Broadcaster内部解调器输出分发
→
解码器 + UI 音频SSTV 出图 / 浏览器监听

以 SSTV 为例,完整链路是:SDR → IQBroadcaster → 内部 FM 解调器 → AudioBroadcaster 的输入队列 → 一路给 SSTV 解码器出图,另一路给 UI 订阅者送到浏览器播放。README 给出的四个理由是解耦、可扩展、可监控与可靠性:加消费者不用改生产者,每个订阅者都有独立的投递与丢弃统计,慢消费者拖不垮快生产者。

Ground Station 瀑布流页面:接收 GMSK 并用两个 VFO 解码
瀑布流页面:接收 GMSK 并用两个 VFO 同时解码(图片来自项目仓库)

七、自动观测:把过境变成无人值守的任务

这是整套系统里最像「产品」而非「工具」的部分。你先定义监测卫星模板——硬件配置、信号参数、任务定义,系统据此为所有合格过境自动生成计划观测。

  • 自动排程:按最低仰角、前瞻窗口等条件算出未来过境,APScheduler 在 AOS(捕获信号)触发启动、LOS(失去信号)触发停止。
  • 任务组合:一次观测可同时并行 IQ 录制(SigMF)、音频录制(WAV)、协议解码(AFSK / GMSK / SSTV)与可选的 AI 转写。
  • 会话隔离:自动观测跑在独立的内部 VFO 会话里(命名空间 internal:<observation_id>);使用不同 SDR 时,用户会话与自动观测互不干扰。
  • 多 SDR 并行:一台 SDR 跑自动观测,其他 SDR 可以对同一次过境同时录制、解码与监听。
  • 状态管理:scheduled / running / completed / failed / cancelled / missed 六种状态,并自动清理旧的已完成条目。
  • 现场旁观:过境进行中可以实时看瀑布流、听解调音频、看解码输出;但同用一台 SDR 时,改动中心频率或带宽会影响正在运行的观测。
Ground Station 观测总览页:即将到来的过境与任务状态
观测总览页:即将到来的过境与任务状态(图片来自项目仓库)

八、Ground Station 的实用技巧

  • 要发现远程 SoapySDR 就用 host 网络:桥接模式没有 mDNS,远程设备扫描不出来。
  • 先翻瀑布流快照再翻 IQ 文件:录制时会自动存一份 PNG 快照,定位信号比直接开 .sigmf-data 快得多。
  • 提高频率分辨率:v0.7.13 起 FFT 默认与兜底值都提到了 16384,瀑布流里还可以继续调。
  • 回放用时间轴定位:录制过程中改参数会切成多 segment,回放时可直接拖到目标时刻。
  • 大库备份走流式:v0.8.3 起数据库恢复支持最大 1GB 文件,并可在同步/备份过程中取消。
  • 看清配置优先级:CLI flags > app_config.json > 内置默认;UI 会标出哪些值正被 CLI 覆盖、哪些改动需要重启。
  • 贡献前先跑钩子:Python 侧 Black(行宽 100)+ isort,前端侧 Prettier,配 pre-commit;首次 PR 需在评论里签署 CLA。

九、最新重大更新动态

  • v0.8.6(2026-09-06):经 SoapyMiri 增加 MiriSDR 支持;编辑状态下保持仪表盘网格缩放手柄可见;统一观测状态通知的位置。
  • v0.8.5(2026-09-02):站点位置设置保留零海拔并增加带校验的手动海拔录入;合并卫星别名,下线遗留的 transmitter-links 列。
  • v0.8.4(2026-09-01):修复 OMM 历元归一化可能把 naive 时间戳按错误时区解读的问题;CelesTrak 失败不再阻塞其他 provider,卫星数据同步改为每 12 小时一次。
  • v0.8.3(2026-08-29):观测 bundle(分组录制卡片与组内回放)、可配 IQ 录制格式 / 抽取 / 录制频段 / 可拖拽频率偏移、流式数据库恢复。
  • v0.7.18(2026-08-01):新增 raw-IQ APRS 解码器,内建 NBFM / Bell 202 解调与 AX.25 解析。

十、常见问题 FAQ 解答

Q1:没有 SDR 硬件能用吗?

可以。仓库自带 SigMF Playback 虚拟 SDR,录制文件会以设备形式出现在列表里,走与实时输入完全相同的处理链路。

Q2:支持哪些接收机?

RTL-SDR(USB 或 rtl_tcp)、Airspy 与 Airspy HF+(HF+ 未测试)、UHD/USRP,以及 SoapySDR 家族的 RTL-SDR、Airspy、HackRF、HydraSDR、LimeSDR、MiriSDR、PlutoSDR、UHD/USRP、SDRplay RSP 系列。

Q3:树莓派能跑吗?

可以,官方只推荐 Raspberry Pi 5,且 ARM64 下建议用 -v /dev:/dev 挂载设备。

Q4:许可证是什么?有没有需要注意的部分?

代码是 GPL-3.0。两点提醒:一是镜像内包含 SDRplay 的专有 API v3.15,构建或分发镜像前需自行审阅并接受其 EULA;二是信号处理部分(解调器、广播器、解码器)是在 Claude AI 协助下开发的,源码中已明确标注,同样按 GPL-3.0 授权。

Q5:自动观测会干扰我的手动操作吗?

同用一台 SDR 时,你可以旁听与旁观,但改动中心频率或带宽会影响正在运行的观测;使用不同 SDR 时二者完全独立。

Q6:想贡献代码有什么门槛?

首次 PR 需要在评论里回复签署 CLA。该 CLA 授予项目维护者未来再许可的权利,包括双许可与商业许可,这一点对有商用打算的团队值得留意。

十一、总结

Ground Station 的价值不在「又一个 SDR 界面」,而在于它把一条原本需要五六个工具拼起来的地面站工作流,收敛成了一次可复现的配置。多目标追踪、多普勒校正、SigMF 归档、无人值守过境这些环节,过去各自都要人盯;在这里它们被 APScheduler 与两条广播总线串成了一条流水线。

它当然不是所有场景的最优解:只想要一个轻量频谱浏览器的人会觉得它重,要批量科研复现的人还是该回到命令行。但对于那些真正守着一套天线、一台接收机,希望每一次过境都能自动跑完并留下可回放证据的人,Ground Station 提供了一条目前少有的、开箱即用的完整路径。

合规提示
接收卫星下行信号本身通常无障碍,但解码内容的使用与再分发可能受数据提供方政策与当地法规约束;上行发射必须具备相应操作资质与执照。部署前请确认你的操作符合所在地区的无线电管理规定。

在撰写本文的过程中,我主要参考了以下来源:GitHub 仓库 sgoudelis/ground-station 的 README.md、DEVELOPMENT.md 与 CONTRIBUTING.md,以及仓库 Releases 页的发布说明。文中 Star 数、Fork 数、版本日期与截图均以仓库公开信息为准,可能随时间变化。

# 卫星地面站
# SDR
# 业余无线电
# 遥测解码
# 开源

本文由 AI 辅助整理,基于 GitHub 项目 sgoudelis/ground-station 的公开文档撰写;文中截图与 Logo 取自该仓库。内容仅用于技术介绍,实际操作请遵守所在地区的无线电管理规定。

未经允许不得转载:AI智汇具 - AI工具推荐与技能教程_好用的AI工具大全 » 想用浏览器开一座卫星地面站?Ground Station 值得了解(2026 终极指南)

评论 抢沙发

登录

找回密码

注册