Sul punteggio
Come riduciamo copertura nuvolosa, luce lunare e oscurità astronomica a un singolo numero da 0 a 10 — e cosa lasciamo deliberatamente fuori.
La domanda
Se vale la pena uscire stasera dipende da tre cose: quanto cielo si vede (nuvole), quanto è buio (sole e luna) e dove ti trovi (inquinamento luminoso). Il punteggio combina i primi due. L’inquinamento luminoso definisce cosa è visibile dalla tua posizione, ma non entra nel numero.
Un punteggio, due riferimenti
- Punteggio principale — Media su tutta la finestra di buio astronomico (sole ≥ 18° sotto l’orizzonte). La risposta onesta a “quanto è buona la notte nel complesso”.
- Migliori 2 ore — Le due migliori ore consecutive nel periodo buio. Utile se hai poco tempo; non sostituisce mai il punteggio principale.
- Sera, 21–01 — Dalle 21 all'1, ridotto alla parte davvero buia: cosa ottieni se esci la sera.
La formula
Il punteggio combina la limpidezza (porzione di cielo non coperta da nuvole) e l’oscurità (quanto poco la luna illumina il cielo), con una soglia di visibilità graduale.
score = visibility × (clearness × 0.6 + darkness × 0.4) / 10 clearness = 100 − cloudCover% // averaged over the dark window darkness = 100 − moonPenalty // averaged over the same hours visibility = min(1, clearness / 30)
Il fattore di visibilità riconosce che le nuvole dominano tutto: se il cielo è prevalentemente coperto, anche un buio perfetto non porta punti. Sopra il 30% di limpidezza, visibility = 1 e la formula si riduce alla media ponderata. Sotto il 30%, il punteggio scende linearmente fino a zero.
La penalità lunare
La luminosità della Luna è a scaglioni in base all'illuminazione, poi scalata per quanto è alta davvero in ogni ora buia.
- Meno del 25% illuminata (luna nuova o falce): nessuna penalità.
- 25–75% illuminata (intorno al primo o ultimo quarto): penalità = illuminazione × 0,5.
- Oltre il 75% illuminata (gibbosa o piena): penalità = illuminazione × 1,0.
- Sotto l'orizzonte la Luna non costa nulla; da 30° di altezza costa lo scaglione pieno; in mezzo varia con l'altezza. Sorgere, tramonto e altezza vengono da astronomy-engine per la tua posizione esatta.
Cosa non entra nel punteggio
- L’inquinamento luminoso (classe Bortle, derivata dai dati satellitari VIIRS) modella la lista “Visibile stasera” del cielo profondo, non il numero.
- Vento, umidità e precipitazioni sono visibili nella timeline se scorri, ma non cambiano il punteggio.
- Affidabilità della previsione. Non riduciamo il punteggio quando il modello meteo è incerto — ci fidiamo della previsione e lasciamo che il prossimo aggiornamento corregga.
Esempio: una notte completamente coperta
Amsterdam · 19 settembre 2026 · previsione reale
moonPenalty = 1 (low Moon, sets 23:33) clearness = 100 − 96 = 4 darkness = 100 − 1 = 99 visibility = min(1, 4 / 30) = 0.13 raw = 0.13 × (4×0.6 + 99×0.4) / 10 = 0.56
Esempio: una notte eccellente
Stesso luogo · cielo limpido, luna falcata
moonPenalty = 0 (< 25% lit) clearness = 100 − 8 = 92 darkness = 100 − 0 = 100 visibility = min(1, 92 / 30) = 1 raw = 1 × (92×0.6 + 100×0.4) / 10 = 9.52
Fonti
- Open-Meteo: copertura nuvolosa oraria, orari di sole e luna, vento, umidità.
- VIIRS Day/Night Band: inquinamento luminoso, usato per stimare la classe Bortle per la lista “Visibile stasera”.
Frequenza di aggiornamento
Le previsioni si aggiornano ogni 30 minuti a monte. L’endpoint del punteggio resta in cache 30 minuti in periferia (s-maxage=1800). La previsione di sette notti si aggiorna ogni giorno.
How the score is calculated
Deeper walkthrough of layer-weighted cloud forecasts, multi-model confidence, METAR observations, and the calibration feedback loop.
Read the methodology →