점수에 대하여
구름량, 달빛, 천문 박명을 어떻게 0–10 사이의 한 숫자로 압축하는지 — 그리고 의도적으로 빼놓는 요소.
핵심 질문
오늘 밤 가치가 있는지는 세 가지에 달려 있습니다: 하늘이 얼마나 보이는지(구름), 얼마나 어두운지(태양과 달), 그리고 어디에 있는지(광공해). 점수는 처음 두 가지를 합칩니다. 광공해는 당신의 위치에서 무엇이 보이는지를 결정하지만 숫자에는 들어가지 않습니다.
점수 하나, 보조 지표 둘
- 대표 점수 — 천문 박명 구간 전체(태양이 지평선 아래 18° 이상)의 평균. “오늘 밤이 전체적으로 얼마나 좋은가”에 대한 정직한 답.
- 최적 2시간 — 어두운 시간 중 가장 좋은 연속 2시간. 시간이 짧을 때 참고하세요. 대표 점수를 대신하지 않습니다.
- 저녁 21–01 — 21:00~01:00 중 실제로 어두운 부분: 저녁에 나가면 볼 수 있는 조건.
공식
점수는 청명도(구름이 없는 하늘의 비율)와 어둠(달이 하늘을 얼마나 덜 밝히는지)을 부드러운 가시성 한계점과 함께 결합합니다.
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)
가시성 계수는 구름이 모든 것을 좌우한다는 점을 인정합니다: 대부분 흐리면 완벽히 어두운 하늘이라도 점수가 나오지 않습니다. 청명도가 30%를 넘으면 visibility = 1이 되고 공식은 일반 가중 평균으로 돌아갑니다. 30% 미만이면 점수는 0까지 선형으로 감소합니다.
달 페널티
달 밝기는 밝기 비율에 따라 단계를 나눈 뒤, 어두운 시간 동안 달이 실제로 얼마나 높이 떠 있는지로 조정합니다.
- 조도 25% 미만(초승달 또는 가는 달): 페널티 없음.
- 조도 25–75%(반달 부근): 페널티 = 조도 × 0.5.
- 조도 75% 초과(상현/하현 볼록달 또는 보름달): 페널티 = 조도 × 1.0.
- 달이 지평선 아래에 있으면 감점이 없고, 고도 30° 이상이면 단계 전체만큼, 그 사이는 고도에 비례합니다. 월출·월몰과 고도는 astronomy-engine이 정확한 위치로 계산합니다.
점수에 포함되지 않는 것
- 광공해(VIIRS 위성 데이터에서 도출한 Bortle 등급)는 "오늘 밤 보임" 딥스카이 목록을 결정하며 숫자에는 들어가지 않습니다.
- 바람, 습도, 강수량은 스크롤하면 타임라인에 표시되지만 점수를 바꾸지 않습니다.
- 예보 신뢰도. 기상 모델이 불확실해도 점수를 낮추지 않습니다 — 예보를 신뢰하고 다음 갱신에서 보정되도록 둡니다.
예시: 완전히 흐린 밤
암스테르담 · 2026년 9월 19일 · 실제 예보
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
예시: 최고의 밤
같은 장소 · 맑은 하늘, 초승달
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
출처
- Open-Meteo: 시간별 구름량, 일출·월출 시각, 바람, 습도.
- VIIRS Day/Night Band: 광공해, "오늘 밤 보임" 목록의 Bortle 등급 추정에 사용.
업데이트 주기
예보는 상류에서 30분마다 갱신됩니다. 점수 엔드포인트는 edge에서 30분 캐시됩니다 (s-maxage=1800). 7박 예보는 매일 업데이트됩니다.
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 →