The Sky page

weewx-skyfield manual · weewx-skyfield on GitHub · Report an issue


Installing the extension also installs The Sky — a one-page, planetarium-style showcase generated by the bundled Skyfield skin at <HTML_ROOT>/skyfield/index.html. Everything on it is computed for your station’s location and elevation, taken automatically from weewx.conf:

  • a sky dome of everything above your horizon right now — the sun, the moon drawn at its true phase, the planets, every Hipparcos catalog star down to a configurable magnitude limit — a true sky map — and the 88 constellations’ stick figures, each substantially-risen figure carrying the constellation’s name, with hover coordinates on every mark (when the sun is up, the stars are shown dimmed, standing where they are behind the daylight);
  • today’s rise & set ribbons for the sun, moon and planets, over civil/nautical/ astronomical twilight bands, with transit ticks and a “now” line;
  • today’s sun path — the altitude/azimuth arc hour by hour, the moon’s path dashed beside it, over twilight-depth bands;
  • the solar year — sunrise, sunset and solar noon for every week of the year over the twilight bands, with today marked;
  • the lunar month — the current lunation as thirty phase discs, the principal phases dated, today’s disc ringed, the next perigee and apogee below — and a supermoon callout whenever the next full moon falls within a day of perigee;
  • an orrery of today’s heliocentric longitudes, viewed from above the ecliptic — configured comets included, each a diamond at its current sun distance (comets also ride the rise & set ribbons, the chips rail, the almanac table, and — when a perihelion lies ahead within a year — the header’s countdown row);
  • the equation of time — sundial minus clock for every week of the year, the classic double-humped curve, today’s value on the brass point;
  • an analemma — the sun’s altitude and azimuth at local standard noon for every week of the year, with today’s point marked;
  • the next visible pass of each configured satellite — the ISS and Tiangong out of the box — when it appears, how high it peaks, when it disappears, with the soonest pass charted on its own dated sky: the whole sky as it will stand at the pass’s peak, the pass arced across it;
  • a countdown row — the next equinox, solstice, new and full moon, the next eclipse visible from your station, and the next major meteor shower, whose chip carries the moon’s illumination on the peak night as the honest interference judgment; a configured comet’s perihelion joins the row when it lies ahead within a year;
  • moon phase and illumination, Jupiter’s central meridian longitudes, Saturn’s ring tilt, the constellation each planet stands in, and a full almanac table.

The Sky page

The page is self-contained HTML and inline SVG — no JavaScript libraries, no web fonts, nothing fetched from anywhere but the page’s own directory (a stylesheet, and a few lines of script that make the tooltips answer taps on touch screens) — so it requires nothing beyond what the extension already requires and renders fine on a Raspberry Pi (the satellite rows draw on orbital elements weewxd keeps fresh separately — see Satellites; everything else works entirely offline). It regenerates with live values every report cycle.

Every panel on the page can also be embedded individually in your own skin — see Using the Sky panels in your own skin.

What appears when you configure more

With satellites configured, the page adds two panels. A Satellites panel gives one card per satellite with its next visible pass: the date and countdown, then “appears WSW · peaks 45° SSW · disappears NE · 6 m”; a satellite with no visible pass in the coming week says so honestly. And a Next Visible Pass chart draws the soonest of those passes on its own sky: the whole sky as it will stand at the pass’s culmination — one chart, one moment, so the dashed, time-labeled arc crosses the stars it will actually cross — under a head line carrying the satellite’s name, the pass’s date, its times and its peak altitude. Its star field is cut off at magnitude 3.5, the stars a twilight sky actually shows, since a visible pass happens while the sky is only half dark.

The main dome stays strictly the current sky, drawing a satellite only as a position dot when one is genuinely overhead at generation time — solid when sunlit, a hollow ring when it is inside Earth’s shadow. The pass chart disappears when no satellite has a visible pass in the coming week, and a station with no satellites configured renders the page with no satellite section at all.

A configured comet above the horizon plots on the dome as a labeled diamond — solid brass when plausibly naked-eye, a hollow ring when fainter, its magnitude in the tooltip. An active meteor shower’s radiant gets a rayed mark, and the header’s countdown row always carries the next shower with the moon’s peak-night illumination as the honest interference judgment: a bright moon washes out the faint meteors, and the chip says so.

Configuring it

The page’s options — theme, star_mag_limit, star_label_mag, constellation_lines, lang, report_timing and enable — all live in the [[SkyfieldReport]] stanza and are documented on the Configuration page.

It is the busiest single page this extension generates, and Performance explains where the time goes, why the result cache absorbs most of it, and which options move the needle on hardware that is struggling.

On a phone

Since 2.7 every chart on this page is drawn twice: the wide drawing you see above, and a second one laid out for a hand — 360 units across, its labels set at a size that reads at 11 px or better on a 320 px screen, its gutters cut for words that size, and whatever will not fit thinned rather than shrunk. Below 600 px the page shows the narrow drawings and hides the wide ones; above it, the other way round. Nothing is fetched and nothing is scripted; the drawing you are not being shown is simply not displayed.

This is not the wide drawing magnified. Shown at a phone’s width the wide charts put their axis labels at 2.5 px and the dome’s star names at 3.3 — and simply enlarging that type would push the words into gutters and label pitches cut for small ones, where they collide and clip. The narrow drawing has its own geometry throughout, and gives up detail rather than legibility: hours numbered every six instead of every three, half the lunation’s phase discs at twice the size, month names thinned, and a star census cut to magnitude 4.0 so the smaller sky is no denser than the big one. Every body, every curve and every twilight band is still there.

The cost is about 28 KB more over the wire and a second of generation — see Two frames. A skin embedding the panels gets the same argument: narrow.

The two plates

Everything above is the default theme = dark. theme = light draws the same page on a paper-atlas plate — a cream page, a white sky dome with the stars inked on it, and the same body colors darkened to hold their own on paper. It is the whole page that changes, charts included, and the plate is chosen at generation time: the bundled page has no switch in it, and theme = auto picks per report cycle, light while the sun is up. (An embedding skin can go further — since 2.4 the charts’ marks carry role classes a stylesheet can repaint, which is what a per-reader light/dark control needs; see the role classes.)

The Sky page on the light theme

A skin embedding the panels resolves the same option for itself — see theme and palette.


Table of contents


weewx-skyfield is Copyright © 2022–2026 John A Kline and is licensed under the GNU Public License v3.