camera_orientation_from_sun — GEOCAM sun op

• 데이터 종류: keypoints × signal → table

• 호출: import fullseye as fs; fs.ledger.camera_orientation_from_sun(sun_pixels, unix_times, lat_deg, lon_deg, K)(구현을 직접 호출하려면 import geocam; geocam.camera_orientation_from_sun(sun_pixels, unix_times, lat_deg, lon_deg, K), 원장에서 가져오려면 opsgeocam.get("camera_orientation_from_sun"))

사용법

시각이 붙은 태양의 화소 위치 ≥ 2점 → 카메라의 (yaw, pitch, roll)(Wahba 문제의 SVD 해 = Kabsch).

각 관측에서, 화소 → 카메라 좌표의 광선 d_c(K 로부터), 시각 → 월드의 태양 방향 s_w(sun_position, 굴절 포함의 앙각을 쓴다: 카메라가 보는 것은 겉보기 태양). R = argmin Σ |R d_c − s_w|² 를 SVD 로 닫힌 식으로 풀고(Kabsch 1976 / Markley 1988), (yaw, pitch, roll) 로 분해한다.

2 점으로 유일하게 정해진다(2 개의 방향이 펼치는 면이 필요하다). 관측이 1 점, 또는 전부가 같은 방향(공선)이면 ValueError —— 예를 들어 같은 시각의 2 장, 혹은 정오만을 며칠이고. 태양은 1 일에 방위가 크게움직이므로, 같은 날 아침과 저녁의 2 장이 있으면 충분하다.

Args:

sun_pixels: (N, 2) 의 (u, v). sun_pixel_position 의 출력을 쌓은 것.

unix_times: (N,) UNIX 초(UTC).

lat_deg, lon_deg: 카메라의 위치.

K: (fx, fy, cx, cy).

Returns:

table: yaw_deg / pitch_deg / roll_deg / residual_deg(광선과 태양 방향의

각도 잔차의 RMS)/ max_residual_deg / n / condition(관측 방향이 펼치는 면의 넓이 =

2 번째 특이값, 0 에 가까울수록 부정).

자세한 사용 가이드

• geocam 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_public_camera_heading — py -3.11 examples/poc_public_camera_heading.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

render_skyline_view · camera_orientation_from_skyline

같은 카테고리(sun)

sun_position · sun_pixel_position · sun_bloom_fit · camera_orientation_from_sun_candidates


*Provenance: geocam.py — GEOCAM 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.