Sobre a pontuação
Como condensamos cobertura de nuvens, luz da lua e escuridão astronómica num único número de 0 a 10 — e o que deixamos deliberadamente de fora.
A questão
Se vale a pena sair esta noite depende de três coisas: quanto céu é visível (nuvens), quão escuro está (sol e lua) e onde estás (poluição luminosa). A pontuação combina as duas primeiras. A poluição luminosa define o que é visível a partir da tua localização, mas não entra no número.
Três pontuações por noite
- Principal — Média em toda a janela de escuridão astronómica (sol ≥ 18° abaixo do horizonte). A resposta honesta a “quão boa é a noite no geral”.
- Pico 2h — A melhor janela de duas horas da noite. Usa-a quando só consegues sair pouco tempo.
- Prime 21–01 — O que realmente vais ver se saíres por volta das 21:00 e voltares por volta das 01:00, independentemente de quando começa a escuridão astronómica.
A fórmula
A pontuação combina clareza (porção do céu sem nuvens) e escuridão (quão pouco a lua ilumina o céu), com um filtro suave de visibilidade.
score = visibility × (clearness × 0.6 + darkness × 0.4) / 10 clearness = 100 − cloudCover% darkness = 100 − moonPenalty visibility = min(1, clearness / 30)
O fator de visibilidade reconhece que as nuvens dominam tudo: se está maioritariamente nublado, mesmo um céu perfeitamente escuro não soma pontos. Acima de 30% de clareza, visibility = 1 e a fórmula reduz-se à média ponderada. Abaixo de 30%, a pontuação desce linearmente até zero.
A penalidade lunar
A iluminação da lua é tratada por escalões, com um desconto para janelas tardias em que a lua provavelmente já está a pôr-se.
- Menos de 25% iluminada (lua nova ou crescente fino): sem penalidade.
- 25–75% iluminada (em torno do quarto): penalidade = iluminação × 0,5.
- Mais de 75% iluminada (gibosa ou cheia): penalidade = iluminação × 1,0.
- Se a janela começa entre as 00:00 e as 03:00 E a iluminação ultrapassa 50%, a penalidade é multiplicada por 0,6.
O que não entra na pontuação
- A poluição luminosa (classe Bortle, derivada de dados de satélite VIIRS) molda a lista “Visível esta noite” do céu profundo, não o número.
- Vento, humidade e precipitação aparecem na linha do tempo se fizeres scroll, mas não alteram a pontuação.
- Confiança da previsão. Não baixamos a pontuação quando o modelo meteorológico é incerto — confiamos na previsão e deixamos a próxima atualização corrigir.
Exemplo: uma noite completamente nublada
Amesterdão · 5 de maio de 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
Exemplo: uma noite excelente
Mesmo lugar · céu limpo, lua crescente
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
Fontes
- Open-Meteo: cobertura de nuvens por hora, horários de sol e lua, vento, humidade.
- VIIRS Day/Night Band: poluição luminosa, usada para estimar a classe Bortle para a lista “Visível esta noite”.
Frequência de atualização
As previsões são atualizadas a cada 30 minutos na origem. O endpoint da pontuação fica em cache 30 minutos no edge (s-maxage=1800). A previsão de sete noites atualiza-se diariamente.