Skip to content

Release v8.1

Latest

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 10 Aug 17:49

weewx-celestial 8.1

Comets join the Geocentric dial: every [Skyfield] [[Comets]] entry
(Halley and Hale-Bopp preconfigured out of the box) is a diamond placed
exactly like a planet, its tail fanning anti-sunward from the sun's own
dial point, solid when naked-eye bright and hollow when fainter, with a
roster row and a --add-comet/--remove-comet utility to match the
satellites'. The Next Visible Pass chart's sweeping dot now flips
between the solid sunlit dot and the hollow in-shadow ring live,
mid-pass, in step with the dome's marker — closing the one honest seam
8.0's notes disclosed. And the top of the page becomes countdown
central: a row of ticking countdown chips — the soonest visible
satellite pass, sunset or sunrise, the next meteor shower's peak,
astronomical darkness, and within thirty days of their events the next
equinox or solstice, Earth's perihelion or aphelion, the next
supermoon, the next eclipse visible from your station, and each
configured comet's perihelion — days-hours-minutes with the event's
date a day or more out, a ticking hh:mm:ss clock inside the final
day. Drop-in upgrade from 8.0 — install over it and
the page works exactly as before; the new chips and the comet layer
light up when you add their loop-data fields (the installer now does
that for you). Pairs with
weewx-skyfield 2.1, whose comets, meteor showers and supermoon serve
everything new this page shows; weewx-loopdata stays at 6.9.

Every capture below is the real page running live — no mockups: both
comets on the August 9 evening dial, NOAA-21's August 10 shadow entry
on dome and pass panel together, and the countdown row riding through
the August 9 sunset.

What's new

  • Comets on the dial. Each [Skyfield] [[Comets]] entry places
    on the Geocentric exactly like a planet — compass azimuth, log Earth
    distance, below-horizon dimming, the same hour-long motion trail —
    drawn as a diamond with a three-ray tail pointing away from the
    sun's own dial point: anti-sunward, as a comet's tail really points.
    Solid diamond when the comet is naked-eye bright (magnitude 6.0 or
    brighter), the hollow inversion when fainter or when the Minor
    Planet Center row carries no magnitude parameters; the tap tooltip
    carries the live magnitude, and the roster gains a row per comet. A
    comet the MPC has dropped renders honest absence — no diamond, an
    empty row, never the string "None". The dome and the pass chart
    need nothing: their comet diamonds and meteor-shower radiants arrive
    inside weewx-skyfield's own fragments.

    Both installer defaults on the live dial — Halley's diamond low in
    the eastern sky with its tail fanning away from the sun's dial
    point, Hale-Bopp dimmed below the southern horizon, their roster
    rows below the planets':

    The Geocentric dial with both comet diamonds and their tails

  • One-command comets. A comet is the same three weewx.conf edits
    as a satellite — the [Skyfield] [[Comets]] entry (tag = MPC
    designation), six fields-line entries, the display name — and
    --add-comet makes them all at once, one comet per run:

    python -m user.celestial --add-comet a3="C/2023 A3" --name 'Tsuchinshan-ATLAS' --config /home/weewx/weewx.conf --in-place
    

    Designations validate (1P, 220P, C/2023 A3 — quote one with a
    space, fragment suffixes like C/1947 X1-B allowed); satellites and
    comets share the almanac.<tag> namespace, so each family refuses
    the other's tags. Every edit is idempotent, --remove-comet is the
    exact inverse, and all comets ride one shared MPC element file — no
    extra downloads. The migrator and the install-time fields hint
    follow [[Comets]] exactly as they follow [[Satellites]]: a
    customized set gets its own tags' entries, a deliberately emptied
    section is never resurrected.

  • The sweep dot tells the live truth. During a pass, the Next
    Visible Pass chart's sweeping dot now flips between the solid sunlit
    dot and the hollow in-shadow ring from the same live
    almanac.<satellite>.sunlit flag that drives the dome's marker —
    the two panels stay in agreement when the satellite crosses the
    shadow line mid-pass. 8.0 kept the culmination's state for the
    whole ride (NOAA-21 culminating in shadow wore the ring from rise
    while the dome correctly showed the live shadow entry). Outside the
    pass the chart still stands exactly as generated: the peak-instant
    portrait, culmination state included.

    Fittingly, NOAA-21 itself proves the fix. Captured live August 10,
    02:36–02:52 AM: it rises sunlit NNE into the pre-dawn sky and drops
    into Earth's shadow at 48°, high in the north near the Perseids
    radiant — the dome's marker turns to the hollow ring, and now the
    pass panel's sweep dot flips with it, the same second (2-second
    frames at about 30× speed). The dome:

    The sky dome during the NOAA-21 pass, the solid marker turning to a hollow ring at the shadow entry

    …and the same pass on the Next Visible Pass panel:

    The Next Visible Pass panel during the NOAA-21 pass, the sweep dot flipping from solid to the in-shadow ring mid-ride

  • Countdown central. A row of ticking chips at the top of the
    page, updating every second. Always on: the soonest visible pass
    across your satellites ("ISS · appears in 00:41:12", ticking to
    zero, then "overhead now" for the show, rolling to the next pass the
    moment this one ends), sunset or sunrise — whichever comes next, the
    chip flipping by itself at each event — the next meteor shower's
    peak under its translated name with the moon's illumination AT the
    peak as the detail (a new-moon Perseids year and a full-moon one are
    different plans), and astronomical darkness — begins at the −18°
    sunset, ends at the −18° sunrise, whichever is next. Within
    thirty days of their events, guest chips join: the next equinox or
    solstice, named by the season it begins ("autumn begins in
    2d 04h 11m" — and its zero lands on the astronomical instant to the
    second), Earth's perihelion or aphelion (early January and early
    July), the next supermoon
    (weewx-skyfield 2.1 computes the instants), the next eclipse visible
    from your station, each configured comet's perihelion. A
    countdown's precision follows its horizon: a day or more out it
    reads days-hours-minutes with the event's date beside it — seconds
    are noise at that range — and inside the final day it becomes the
    ticking hh:mm:ss clock, where seconds are the point. Every chip
    is client-side arithmetic on an event instant weewx-loopdata
    computes once and caches until it passes — the ticking costs the
    engine nothing. (weewx-skyfield's own page shows a perihelion as a
    dated chip up to a year out; the 30-day window here is deliberate —
    a ticking countdown wants a nearer horizon.)

    The row riding through the August 9 sunset (1-second frames at about
    15× speed): the sunset chip counts hh:mm:ss down through zero, then
    rolls itself to "Sunrise 10:10:06 · 06:20" — loopdata expires the
    event and the page follows, no reload:

    The countdown row rolling through a sunset

  • Translated everywhere. All nine languages learn the new
    strings — the eclipse vocabulary, the perihelion label, the moon
    note and the radiant tooltip verbatim from weewx-skyfield's
    translations; the countdown chips' own wording translated here —
    and every language now names Halley, Hale-Bopp and the twelve IMO
    meteor showers the same way it names the planets.

  • The migrator commands now paste-and-run on package installs.
    The tailored --migrate-loopdata-fields commands the installer
    prints carry a PYTHONPATH=<WeeWX's location> prefix. On a
    Debian/Red Hat package install WeeWX's own code lives in
    /usr/share/weewx, on the path only inside weectl, so the bare
    command 7.8–8.0 printed died with ModuleNotFoundError: No module named 'weewx' (reported by Gert Andersen — thank you). The README
    and manual now show the package-install variant beside the venv
    commands for the migrator and the satellite/comet utilities.

  • Also: the Geocentric dial's caption gains the "·" separator 8.0
    dropped between its two sentences.

Lighting up the new layers

The install does it for you (new in 8.1): weectl extension install
appends the entries the page reads that are missing from your
[LoopData] [[Include]] fields line — append-only, each one
printed, existing entries never renamed, removed or reordered, so a
hand-curated line serving other pages is safe. Restart weewxd
afterwards so weewx-loopdata reloads the line. The 8.1 additions are
the thirteen countdown-chip event fields and six fields per comet,
following your [Skyfield] [[Satellites]] and [[Comets]]. The
entries are safe 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 that chip or layer. The
comet layer and the shower/supermoon chips need weewx-skyfield 2.1; the
sunset, darkness and pass chips tick on 2.0 too. Only pre-6.0
spellings stay manual: renames deserve review, so the installer prints
the tailored --migrate-loopdata-fields commands instead of applying
them.

Requirements

  • Python 3.9 or later
  • WeeWX 5.2 or later
  • weewx-loopdata
    6.9 or later (unchanged from 8.0)
  • weewx-skyfield
    2.1 for the comets, the meteor showers and the full countdown row;
    2.0 still serves the dome, the satellite layer and the sunset/
    darkness/pass chips; 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 8.0:

weectl extension install weewx-celestial.zip

Restart WeeWX. No weewx.conf changes are needed when upgrading from
8.0 — the fields-line addition above is only for the new chips and the
comet layer. (Upgrading from 7.x or earlier follows the README's
upgrade instructions.)