PublicCloud – himlen över Örebro

Källkoden till https://publiccloud.se: en helskärmshimmel som följer solen, månen och det aktuella vädret, med en klocka i mitten och fyra glasrutor runt den.

Vad sidan gör

Himlen

  • Dag och natt följer klockan. Dagfilmen spelas från verklig soluppgång till solnedgång och nattfilmen från solnedgång till soluppgång, en bildruta åt gången, med mjuk övertoning mellan rutorna.
  • Vädret läggs ovanpå (Open-Meteo, var 10:e minut): klart (molnen tonas bort), växlande (solen genom molnen), mulet, dimma, duggregn, regn och kraftigt regn med droppar som rinner på "glaset", åska med blixtar och snö.
  • Vind (hastighet, byar, riktning): snett regn, blåsande snö och droppar, vindstråk, höstlöv (sep–nov) och byar. Vyn är vänd mot söder, så västlig vind blåser åt vänster.

Natten

  • Månen med rätt fas och position. Vid växlande molnighet skärs den av molnen i filmen, eftersom molnen ligger i lagret ovanför månen.
  • Stjärnor som glittrar realistiskt (scintillation, utan strålkors).
  • Mulet ger ett mörkt molntäcke.
  • Norrsken styrs av NOAA:s Kp-index: gröna band med ljus underkant som kommer lågt från horisonten och sveper upp över himlen.
  • Nymåne-överraskning: en egen SVG-siluett av en fotograf som sitter på en månskära med kameran (img/moon-photographer.svg). Den visas bara vid nymåne, när det är mörkt och klart.

Fyra rutor

  • Just nu: väder, temperatur, vind, måne, sol och plats.
  • Plats: karta med zoom (+/−), knappen "Utgå från min plats" (GPS), klick i kartan för att välja plats, och standardplatsen Örebro slott. Allt räknas om för vald plats.
  • Kväll & natt: betyg för stjärnhimlen, chans till norrsken (Kp nu och prognos), meteorregn samt fullmåne och nymåne.
  • Fotoljus: gyllene och blå timmen med väderprognos, månens upp- och nedgång, dimma, regnbåge och nattlysande moln.

Textstorleken anpassas automatiskt så att allt får plats. På mobil staplas rutorna.

Molnlager och ikoner (standard, ?lager=0 stänger av): tre procedurella molnlager som driver med vinden på olika djup (månen och solen ligger mellan lagren), samt animerade SVG-väderikoner i rutorna.

Struktur

site/
  public/index.html              hela sidan (HTML, CSS, JS – inga byggsteg)
  public/img/moon-photographer.svg  nymåne-överraskningen
  public/_headers                cache-regler (filmerna cachas i ett år → nytt filnamn vid ny film)
  public/video/                  day-v2 / night som WebM (VP9) + MP4 (H.264, reserv för äldre Safari)
  worker.js                      Cloudflare Worker: statiska filer + HTTP Range (206) för /video/* (krävs av Safari/iOS)
  wrangler.jsonc                 Worker-konfiguration (namn publiccloud-sky)
tools/
  upscale-slowmo.sh              hur filmerna togs fram: Real-ESRGAN x4plus (uppskalning) + RIFE v4.6 (slowmotion)

Driftsättning

Sajten körs som en Cloudflare Worker med statiska filer och custom domain publiccloud.se.

cd site
export CLOUDFLARE_API_TOKEN=...   # konto-token med Workers-rättighet
export CLOUDFLARE_ACCOUNT_ID=...
npx wrangler deploy

Testparametrar

Parameter Exempel Effekt
t ?t=2026-10-10T23:30%2B02:00 startar klockan vid en viss tid
speed ?speed=600 kör klockan snabbare
weather ?weather=thunder tvingar väder: clear, partly, overcast, fog, drizzle, rain, heavyrain, thunder, snow
wind, winddir ?wind=75&winddir=270 tvingar vind (km/h, grader)
kp ?kp=7 tvingar Kp-index (norrsken)
nymane ?nymane=1 visar nymåne-överraskningen oavsett månfas (på natten)
lager ?lager=0 stänger av molnlager + animerade ikoner (på som standard)
instant ?instant=1 inga övertoningar (för skärmdumpar)
debug ?debug=1 visar bildruta, sol, väder, vind, måne, norrsken

Datakällor

  • Väder och prognos per timme: Open-Meteo (gratis för icke-kommersiellt bruk)
  • Kp-index nu och 3-dygnsprognos: NOAA SWPC
  • Karta: OpenStreetMap via Leaflet 1.9.4 (cdnjs, SRI)
  • Platsnamn: OpenStreetMap Nominatim
  • Sol- och månberäkningar: formler från SunCalc (Vladimir Agafonkin), inbäddade i sidan
  • Meteorregn: American Meteor Society / IMO:s kalendrar
S
Description
No description provided
Readme
14 MiB
Languages
HTML 91.9%
JavaScript 6.8%
Shell 1.3%