camera_orientation_from_sun — GEOCAM sun op

• Data kinds: keypoints × signal → table

• Call: import fullseye as fs; fs.ledger.camera_orientation_from_sun(sun_pixels, unix_times, lat_deg, lon_deg, K) (implementation को सीधे call करना हो तो import geocam; geocam.camera_orientation_from_sun(sun_pixels, unix_times, lat_deg, lon_deg, K), registry से लेना हो तो opsgeocam.get("camera_orientation_from_sun"))

उपयोग

समय सहित सूर्य की pixel position, ≥ 2 point → camera का (yaw, pitch, roll) (Wahba समस्या का SVD हल = Kabsch)।

हर observation में: pixel → camera coordinates में ray d_c (K से), समय → world में सूरज की दिशा s_w (sun_position, refraction सहित elevation इस्तेमाल होता है: camera apparent sun देखता है)। R = argmin Σ |R d_c − s_w|² को SVD से closed form में हल करके (Kabsch 1976 / Markley 1988), (yaw, pitch, roll) में तोड़ा जाता है।

2 points से यह अद्वितीय रूप से तय होता है (2 दिशाओं से बना plane चाहिए)। observation 1 ही point हो, या सभी एक ही दिशा में हों (collinear), तो ValueError -- जैसे एक ही समय की 2 images, या कई दिनों तक सिर्फ़ दोपहर। सूरज का azimuth 1 दिन में काफ़ी बदलता है, इसलिए एक ही दिन की सुबह और शाम की 2 images काफ़ी हैं।

Args:

sun_pixels: (N, 2) के (u, v)। sun_pixel_position के outputs को जोड़कर बना।

unix_times: (N,) UNIX seconds (UTC)।

lat_deg, lon_deg: camera की position।

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

Returns:

table: yaw_deg / pitch_deg / roll_deg / residual_deg (rays और सूरज की दिशा के बीच

angular residual का RMS) / max_residual_deg / n / condition (observation दिशाओं से बने plane का फैलाव =

2nd singular value; 0 के जितना क़रीब, उतना अनिश्चित)।

उपयोग की विस्तृत guide

• geocam family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_public_camera_heading — py -3.11 examples/poc_public_camera_heading.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

render_skyline_view · camera_orientation_from_skyline

इसी category के (sun)

sun_position · sun_pixel_position · sun_bloom_fit · camera_orientation_from_sun_candidates


*Provenance: geocam.py — GEOCAM operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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