Skip to content

Release v8.0

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 08 Aug 16:54
· 1 commit to master since this release

weewx-celestial 8.0

The page gains two panels: the live sky dome with satellite tracking,
and the Next Visible Pass chart. The dome backdrop is weewx-skyfield's full
sky chart — the complete Hipparcos star field, the constellation
figures, sun, moon and
planets — kept honest on an open page by once-a-minute backdrop steps and
live nudging, and with weewx-skyfield 2.0's satellites configured it carries
the class of things up there that genuinely moves fast: low-Earth
satellites crossing your sky at up to a degree per second, tracked in
real time — every satellite you configure, with the ISS and Tiangong
preconfigured out of the box. The Next Visible Pass
chart is the sky as it will stand at the coming pass's highest point,
the pass's arc dashed across it — and its stage during the show, the
satellite's dot swept live along the drawn arc. Drop-in upgrade
from 7.x — install over it and the page works exactly as before, dome
included; the satellite layer lights up when you add its loop-data
fields. Released alongside weewx-skyfield 2.0, whose satellite engine
serves everything this page shows, and weewx-loopdata 6.9, whose
event-expiry fix keeps the pass rows rolling forward the moment a pass
ends. Also in this release: Italian,
Norwegian and Swedish translations join the bundle, matching
weewx-skyfield 2.0's, and the Danish page
title reverts to Gert Andersen's original "Himlen over" (7.8 shipped a
misreading).

The dome during Terra's August 7 evening pass over Palo Alto, captured
live from the running page (2-second frames played at about 30× speed).
Terra rises in the south already inside Earth's shadow — the hollow
in-shadow ring climbing a dark sky — and near 12° it crosses the
shadow's edge and snaps solid at full brightness: the flare, the moment
the satellite catches the sun:

The live sky dome during a Terra pass, the marker flaring from in-shadow ring to sunlit dot

…and the same pass on the Next Visible Pass panel, the sweep dot riding
up the drawn arc from rise to set under the dated head line:

The Next Visible Pass panel during the same Terra pass

What's new

  • The sky dome, live. Everything above the horizon right now, in
    sky-chart orientation (north up, east left, as if lying on your back
    looking up) — drawn by weewx-skyfield's own dome chart, so celestial
    inherits the star catalog, the constellations and every future
    improvement. Each report cycle renders a staggered set of backdrops
    a minute apart (the sky rotates 15°/hour), and the open page steps to
    the one covering the current minute — a quarter-degree step instead
    of a visible five-minute lurch — while the sun, moon and planet marks
    are nudged every second at loop-derived rates through the dome's new
    machine hooks (weewx-skyfield 2.0). Any archive interval works: the
    fragments describe their own spacing and the page adapts.

  • Satellite tracking. With [[Satellites]] configured in
    weewx-skyfield 2.0 (its installer defaults to the ISS and Tiangong)
    and the new almanac.iss.* / almanac.tiangong.* loop-data fields,
    the dome shows the live layer: the satellite marker — dot and name —
    repositioned every second, smooth through zenith passes, drawn
    whenever the satellite is up and dimmed unless the eye could actually
    find it (satellite sunlit, sky dark). Beside the dome, a satellite
    roster counts down to each satellite's next pass of ANY kind ("in
    15 h" rolling into "overhead now" during the show) over the
    appears/peaks/disappears line, each row tagged visible or not
    visible — so the dome's dimmed daytime crossings are announced too.
    The rows are honest: "no pass
    in the coming week" and "no usable orbital elements — see the weewxd
    log" say so when that is the truth. The satellite set follows your
    [[Satellites]] configuration — every satellite you add gets its
    roster row and live tracking automatically (the new --add-satellite
    utility, below, does the config work).
    Most of the day a marker is simply absent — a handful of passes a
    day, about ten minutes each — so the panel is really an always-there
    next-pass countdown plus the occasional live show.

  • The Next Visible Pass panel. The visible-pass story: the whole sky as it
    will stand at the culmination of the soonest upcoming visible pass,
    the pass's arc
    dashed across it with rise and set times at the ends, under a dated
    head line — one chart, one epoch, so the arc crosses the stars it
    will actually cross (the dome deliberately draws no arc: an undated
    future track on the now-sky reads as tonight's) — beside a roster of
    each satellite's next VISIBLE pass, the ones worth stepping outside
    for. During the pass
    itself the chart's moment is only minutes away, and the page sweeps
    the satellite's dot live along the drawn arc. The dot is the chart's
    own culmination mark, so it keeps the culmination's solid-or-ring
    sunlit state for the whole ride; the dome beside it carries the live
    solid/ring truth, shadow entries and flares included. When no visible pass
    is coming the chart hides and the roster's honest rows say why; the
    chart refetches every five minutes, and rolls over to the next pass
    by itself.

  • Tooltips work on touch screens. Every mark on the dome and the
    pass chart carries a tooltip, and browsers show those only on
    hover — on an iPad they were simply dead. The skin now ships
    weewx-skyfield 2.0's sky.js: a tap on or near a mark shows the
    same text as a floating chip, a tap on empty sky (or Escape)
    dismisses it, and mouse users lose nothing — hover still works, a
    click just pins the chip too. The Geocentric dial joins in: every
    body's dot answers a hover or tap with its name, live altitude and
    live distance, in the roster's own translated vocabulary. Because
    this page is live, an open chip is dismissed whenever the dome or
    the chart refreshes under it: a chip is a transient answer, never a
    stale overlay.

  • Graceful on every almanac. A new guard-only search list serves
    the dome and the chart only when weewx-skyfield is installed: PyEphem
    and built-in almanac stations get an install hint in the panel, never
    a broken
    page. An older weewx-skyfield draws the dome without satellites; a
    loop feed without the satellite keys hides that layer.

  • Italian, Norwegian and Swedish translations (Beta, awaiting their
    native-speaker reviews) join the German, French, Danish, Dutch and
    Spanish — nine languages bundled, matching weewx-skyfield 2.0.
    lang = it, no (Bokmål), or sv on the report stanza turns one
    on: the whole page, labels and live values alike. Corrections are
    welcome, and a native speaker's review graduates a Beta, as the
    Danish showed.

    The Celestial page in Italian

    The Celestial page in Norwegian

    The Celestial page in Swedish

  • Translated everywhere. The dome, satellite and pass-chart
    strings ship in all nine languages, the shared vocabulary verbatim
    from weewx-skyfield's translations, and each language now names the
    well-known satellites (iss = ISS, tiangong = Tiangong,
    hst = HST) the same way it names the planets.

  • One-command satellites. A satellite beyond the installer's two
    takes three separate weewx.conf edits — the [Skyfield]
    [[Satellites]] entry, nineteen fields-line entries, the display
    name — so the new --add-satellite utility makes them all at once,
    one satellite per run:

    python -m user.celestial --add-satellite zenit23088=23088 --name 'Zenit-2 23088' --config /home/weewx/weewx.conf --in-place
    

    Every edit is idempotent — a satellite already configured per
    weewx-skyfield's manual just gains its fields, and re-running
    updates the number or name in place. --remove-satellite is the
    exact inverse (it works on the installer defaults too, with a
    warning that a weewx-skyfield upgrade re-adds the [[Satellites]]
    entry). Same write modes as the migrator: --in-place backs the
    original up first; --output FILE never touches it. Adding several
    satellites with --in-place is one run each, and the second run
    stops until you move the first run's .bak-celestial-8.0 aside — it
    never overwrites your only backup; --output sidesteps this.

  • The migrator follows your satellites, and the installer tells you
    when to run it.
    --migrate-loopdata-fields now reads [Skyfield]
    [[Satellites]] from the weewx.conf it rewrites and appends fields
    for exactly the satellites you have configured — a customized set
    gets entries for its own tags, a deliberately emptied set is never
    resurrected, and only a station with no [[Satellites]] at all gets
    the installer defaults. And the install itself now checks: when your
    fields line is missing entries the page reads (or carries outdated
    spellings), weectl extension install prints the exact migrator
    commands, tailored to your machine — your config path, your bin
    directory, the running python, and a word-diff review command,
    because the fields line is one long comma-separated value that a
    plain diff renders as two unreadable lines. A hint only: the
    installer never edits [LoopData] itself, and it stays silent when
    the line is complete.

  • Danish title fix. The page title in Danish is "Himlen over
    {location}", Gert Andersen's original wording — 7.8 shipped
    "Himmellegemer over", a misreading of his message.

Lighting up the satellite layer

Append the satellite entries to the fields line of [LoopData] [[Include]] in weewx.conf (the README shows the complete line, and
--migrate-loopdata-fields appends them for you, following your
[[Satellites]] so a customized satellite set gets its own tags'
entries), and run
weewx-skyfield 2.0 with its default [[Satellites]]. The entries are
safe to add on any almanac: one that cannot serve them simply omits them
from loop-data.txt (one weewxd log line per field) and the page hides
its satellite layer.

Requirements

  • Python 3.9 or later
  • WeeWX 5.2 or later
  • weewx-loopdata
    6.9 or later (released alongside; earlier versions were required at
    5.0 — 8.0 depends on 6.9's almanac-field fixes, most visibly the
    event expiry that rolls a satellite's next pass forward the moment it
    ends instead of serving the day's first pass until midnight)
  • weewx-skyfield
    2.0 for the dome's live nudging and the satellite layer; any
    weewx-skyfield for the dome itself; strongly recommended in general
    (required for Proxima Centauri), or PyEphem for the Geocentric alone

Installing/upgrading

Download weewx-celestial.zip from this release, then install right over
the existing 7.x:

weectl extension install weewx-celestial.zip

Restart WeeWX. If a report cycle lands between the install and the
restart, the log may show ERROR lines for the new templates ("cannot
find 'pass_chart_html'") — harmless: the page keeps its old copy and
the restart clears them. No weewx.conf changes are needed when upgrading from 7.x
— the satellite fields line addition above is only for the new layer.
(Upgrading from 6.x or earlier follows the README's upgrade instructions —
those paths do need the uninstall step, and from 5.x the migration
utility.)