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"))

• GPU: 없음(CPU 참조 구현만)

사용법

시각이 붙은 태양의 화소 위치 ≥ 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)로 분해한다.

두 점에서 고유하게 결정된다(두 개의 방향이 붙는 면이 필요하다). 관측이 1점, 또는 모두가 같은 방향(공선)이면 ValueError —— 예를 들어 같은 시간의 2장, 혹은 정오만을 며칠이나. 태양은 하루에 방위가 크다. 움직이기 때문에, 같은 날 아침과 저녁의 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:

테이블 : "yaw_deg"/ "pitch_deg"/ "roll_deg"/ "residual_deg"(광선과 태양 방향

각도 잔차의 RMS) /max_residual_deg ''/n''/condition''

두 번째와 최대 특이 값의 비율 (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.