Despre scor
Cum condensăm acoperirea cu nori, lumina lunii și întunericul astronomic într-un singur număr de la 0 la 10 — și ce lăsăm deliberat pe dinafară.
Întrebarea
Dacă diseară merită depinde de trei lucruri: cât cer se vede (nori), cât de întuneric este (Soare și Lună) și unde te afli (poluare luminoasă). Scorul combină primele două. Poluarea luminoasă modelează ce se vede din locația ta, dar nu intră în număr.
Trei scoruri pe noapte
- Scor principal — Media pe toată fereastra de întuneric astronomic (Soare ≥ 18° sub orizont). Răspunsul cinstit la „cât de bună este noaptea per total”.
- Vârf 2h — Cel mai bun interval de două ore al nopții. Folosește-l când poți ieși doar pentru scurt timp.
- Prime 21–01 — Ce primești cu adevărat dacă ieși pe la 21:00 și te culci pe la 01:00, indiferent de când începe întunericul astronomic.
Formula
Scorul combină claritatea (partea de cer fără nori) și întunericul (cât de puțin luminează Luna cerul), cu o limită moale de vizibilitate.
score = visibility × (clearness × 0.6 + darkness × 0.4) / 10 clearness = 100 − cloudCover% darkness = 100 − moonPenalty visibility = min(1, clearness / 30)
Factorul de vizibilitate recunoaște că norii blochează totul: dacă cerul e majoritar acoperit, nici măcar o noapte perfect întunecată nu aduce puncte. Peste 30% claritate, visibility = 1 și formula se reduce la media ponderată. Sub 30%, scorul scade liniar către zero.
Penalizarea lunii
Iluminarea Lunii e tratată pe niveluri, cu reducere pentru ferestrele de noapte târzie, când Luna e probabil deja la apus.
- Sub 25% iluminată (Lună nouă sau seceră subțire): fără penalizare.
- 25–75% iluminată (în jurul primului/ultimului pătrar): penalizare = iluminare × 0,5.
- Peste 75% iluminată (gibbous sau Lună plină): penalizare = iluminare × 1,0.
- Dacă fereastra începe între 00:00 și 03:00 ȘI iluminarea depășește 50%, penalizarea se înmulțește cu 0,6.
Ce nu intră în scor
- Poluarea luminoasă (clasa Bortle, derivată din date satelitare VIIRS) modelează lista „Vizibil diseară” pentru cerul profund, nu numărul.
- Vântul, umiditatea și precipitațiile apar pe cronologie dacă derulezi, dar nu schimbă scorul.
- Încrederea în prognoză. Nu reducem scorul când modelul meteo este nesigur — avem încredere în prognoză și lăsăm următoarea actualizare să corecteze.
Exemplu: o noapte complet acoperită
Amsterdam · 5 mai 2026
moonPenalty(83, 23) = 83 × 1.0 = 83 clearness = 100 − 100 = 0 darkness = 100 − 83 = 17 visibility = min(1, 0 / 30) = 0 raw = 0 × (0×0.6 + 17×0.4) / 10 = 0.0
Exemplu: o noapte excelentă
Același loc · cer senin, seceră de lună
moonPenalty(15, 23) = 0 (< 25% bracket) 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
Surse
- Open-Meteo: acoperire orară a norilor, ore Soare și Lună, vânt, umiditate.
- VIIRS Day/Night Band: poluare luminoasă, folosită pentru estimarea clasei Bortle pentru lista „Vizibil diseară”.
Frecvența de actualizare
Prognozele se reîmprospătează la fiecare 30 de minute la sursă. Endpoint-ul scorului se păstrează în cache 30 de minute la edge (s-maxage=1800). Prognoza pe șapte nopți se actualizează zilnic.