feat(sat): the sky engine — elements, look angles, passes, Doppler

The foundation of the satellite branch, and nothing above it yet: where a
satellite is (SGP4 from akhenakh/sgp4, Apache-2.0 and pure Go, so the
no-cgo rule holds), where it will be (passes with an elevation floor,
because a three-degree scrape is a line in a table that will never be a
QSO), and what its motion does to a frequency.

The Doppler pair is the part worth being careful about: the two
corrections go in OPPOSITE directions. The downlink arrives shifted and
we tune to meet it; the uplink must LEAVE shifted the other way to land
on the transponder's nominal input. A test pins the signs and the size —
7 km/s on 2 m is about 3.4 kHz.

Elements keep their raw lines beside the parsed form: that is what the
cache stores and what an operator pastes by hand for a bird no feed
carries yet, which is exactly when everyone wants to hear it.
This commit is contained in:
2026-09-07 10:36:56 +02:00
parent b0f76a8ba1
commit 2d71351080
4 changed files with 547 additions and 0 deletions
+1
View File
@@ -21,6 +21,7 @@ require (
require (
filippo.io/edwards25519 v1.2.0 // indirect
github.com/akhenakh/sgp4 v0.0.0-20260314155803-8ee03fc877eb // indirect
github.com/bep/debounce v1.2.1 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect