🌀어려운 사진들

세 단계로 대부분의 사진이 풀리지만, 사람들이 실제로 찍는 밤하늘 사진은 훨씬 다양해요. 잘 안 풀리는 사진을 만날 때마다 더한 방법들이에요.

초광각(어안) 렌즈

보통 렌즈는 하늘을 곧게 펴서 담아요. 하늘의 직선이 사진에서도 직선이지만, 화각이 넓어질수록 가장자리를 크게 늘려요. 어안 렌즈는 가장자리를 덜 늘리는 대신 직선을 휘게 담아요. 화각을 넓혀 보세요.

보통 렌즈 (직선이 곧다)
어안 렌즈 (가장자리가 덜 늘어난다)
하늘의 10° 격자와 작은 삼각형 두 개(가운데·가장자리). 렌즈가 달라도 작은 삼각형의 모양은 거의 그대로예요.

핵심은 작은 패턴은 어떤 렌즈에서도 모양이 거의 보존된다는 거예요. 합성 어안 사진에서 별 넷 패턴의 17%가 그대로 별 지도와 맞았어요. 그래서 어안 사진은 작은 패턴으로 짝을 찾은 뒤, 별마다 “나는 어느 별이다”라는 표를 모아(투표) 가장 표를 많이 받은 별들로 렌즈 모양까지 함께 맞춰요. 합성 어안 사진에서는 가짜 별을 50% 섞어도 정답을 찾았어요. 가짜는 서로 맞는 패턴을 못 만들어 표를 못 받거든요.

보통 방법으로 확신하지 못하면 이 어안 풀이를 한 번 더 돌리고, 맞는 별 25개 이상· 오차 6픽셀 미만일 때만 받아들여요.

별이 열 개 남짓인 사진: 시각·장소·지평선

사이판 바닷가 사진은 밝은 별이 10개 남짓이라, 모양만으로는 10억 분의 1 수준의 확신이 나올 수 없어요. 2022년 발표에서는 사람이 이렇게 풀었어요. 별 9개를 표시하고, 바다 수평선을 긋고, 메신저에 올라온 시각과 사이판이라는 단서로 별자리 앱에서 남쪽 하늘을 찾았죠. 이 방법을 그대로 기능으로 만들었어요.

북남38°북극성 (천구 북극)

천구의 극은 지평선에서 위도만큼 떠 있어요. 서울에서는 북극성이 37° 높이에, 적도에서는 지평선에 붙고, 남반구에서는 보이지 않아요. 하늘은 이 극을 축으로 하루에 한 바퀴 돌아요.

천구의 극 높이 = 위도. 장소를 알면 하늘이 얼마나 기울었는지 알아요.

언제, 어디서 찍었는지 알면 그 순간 별마다 높이와 방위가 정해져요. 사진에 지평선이 보이면 카메라가 얼마나 기울었는지도 알고요. 남는 미지수는 “어느 쪽을 바라봤나(방위)”와 “얼마나 넓게 찍었나(화각)”뿐이에요. 하늘 전체 × 회전 × 크기를 다 뒤지는 것보다 찾을 곳이 훨씬 좁아서, 별 10개로도 확신할 수 있는 경우가 생겨요.

  1. 시각 후보 × 화각 후보마다, 사진 별과 높이가 비슷한 하늘 별을 짝지어 방위 차이에 표를 던져요.
  2. 표를 많이 받은 자리에서 맞는 별 수를 세고, 그 모델 안에서만(시각·방위·화각·지평선 높이와 기울기를 조금씩) 다듬어요.
  3. 우연일 확률은 살펴본 모든 경우의 수(약 4억)만큼 깎아서 판정해요. “이만큼 뒤졌을 때 우연히 이만큼 맞을 횟수가 1번 미만”이면 확신해요.

기준은 사진 한 장이 아니라, 정답을 아는 합성 장면 130개로 정했어요.

합성 장면 130개결과
확신한 장면64개, 모두 정답 (2° 안)
틀린 답의 최고 점수−2.1 (기준 0)
틀린 날짜를 준 대조군 최고 점수−2.2

지평선은 사진의 밝기가 위아래로 크게 바뀌는 곳을 열마다 찾고, 그 점들에 직선을 맞춰 자동으로 제안해요. 사이판 샘플은 이제 클릭 한 번 없이 풀려요. 틀리면 사람이 “별 고치기”에서 지평선을 다시 찍어요.

다만 사이판은 한 장의 예예요. 자동 지평선은 나무나 산 능선을 잡는 일이 잦고(지평선이 있는 샘플 9장 중 5장만 맞게 잡아요), 촬영 시각·장소가 적힌 인터넷 사진에 돌려 보면 확신하는 사진이 아직 적어요. 더 다듬어야 해요.

찍은 시각을 거꾸로 찾기

거꾸로, 사진이 풀리고 지평선이 보이면 찍은 시각과 위도를 계산할 수 있어요. 지평선 두 점의 하늘 방향에서 머리 꼭대기(천정) 방향을 구하면, 천정의 적위가 곧 위도, 적경이 곧 그 순간의 “하늘 시계”(지방 항성시)예요.

자료를 불러오는 중…
서울 근처 누각 사진으로 ①~④를 차례로 눌러 보세요. 먼 능선 두 점 → 하늘 방향 → 천정(적위 = 위도, 적경 = 하늘 시계) → 날짜마다 같은 하늘이 오는 시각이에요.

하늘 시계가 같은 값이 되는 순간은 날마다 한 번씩, 4분씩 일찍 와요. 그래서 하늘만으로는 날짜를 정할 수 없고, 날짜마다 후보 시각이 하나씩 나와요. 해가 떠 있는 시각은 지워요.

아주 먼 별들해시계
1월 1일 23:00 (기준)
서울에서 본 남쪽 하늘. 화살표(지금 보는 방향)는 어느 달이든 같은 별을 가리키고, 지구가 공전한 만큼 시계는 일찍 그 자리에 온다.
한 달씩 넘겨 보세요. 별은 아주 멀어서 어느 달이든 같은 방향(노란 화살표)을 봐야 같은 하늘이에요. 지구가 한 달에 30°쯤 공전하니, 해를 기준으로 가는 시계로는 2시간씩 일찍 그 방향을 봐요.

사진에 달이 있으면 달은 날마다 13°씩 자리를 옮기니 날짜까지 좁힐 수 있어요. 다만 달은 27.3일마다 같은 자리로 돌아와요. 그때마다 달이 떠 있었는지, 해가 졌는지, 달 모양이 사진과 같은지로 가려요.

사진 정보: 2026년, 화악산, 밤, 가는 그믐달
처음 보는 화악산 사진 세 장(저작권 때문에 싣지 않아요)을 따로 풀어 얻은 달 위치와, 2026년 한 해 달의 길이에요. 연도와 장소는 사진을 올린 글에서 가져왔어요.
04:54
누각 사진, 10월 3일이라면 지평선 두 점만으로 찾은 시각 (찍은 분 답: 4~5시)
22:10 무렵
사이판 사진의 촬영 시각 (사이판 시각, 메신저에 올리기 25분쯤 전)
16°
사이판 사진으로 거꾸로 구한 위도 (실제 15.2°)

이 계산은 2022년 발표 “이과생의 별 헤는 밤”에서 사람이 별자리 앱과 표로 했던 추리를 코드로 옮긴 거예요.

해·달·행성 그리기

별은 거의 움직이지 않지만 해·달·행성은 해의 길(황도) 근처를 따라 날마다 자리를 옮겨요. 찍은 시각을 알면(샘플 기록, 사진의 촬영 정보, 사람이 넣은 값 순서로) 궤도 계산으로 그 순간의 위치를 구해 사진 위에 함께 그려요. 계산은 천문연감의 예제와 비교해 확인했어요(해 0.05°, 달 0.5°, 행성 0.05° 안). 성운·성단처럼 자리가 고정된 천체 16개는 늘 그려요.

사람과 함께, 언젠가는 혼자서

처음에는 사람이 별을 골라 줘야 풀렸어요. 지금은 대부분 사람 손 없이 풀리고, 안 될 때만 사람이 “별 고치기”로 도와줘요. 사람이 도와준 사진에서 배운 것을 다시 자동으로 옮기는 것이 이 프로젝트의 방향이에요. 그 과정은 걸어온 길에 모아 뒀어요.