sun op• Data kinds: image2d → table
• Call: import fullseye as fs; fs.ledger.sun_bloom_fit(image, threshold=0.97, ignore_top_rows=0, min_area=30, max_area_frac=0.15, min_rim_fraction=0.3) (implementation को सीधे call करना हो तो import geocam; geocam.sun_bloom_fit(image, threshold=0.97, ignore_top_rows=0, min_area=30, max_area_frac=0.15, min_rim_fraction=0.3), registry से लेना हो तो opsgeocam.get("sun_bloom_fit"))
असली footage में सूर्य = sensor को saturate करने वाला bloom (disk से बड़ा, exposure से आकार बदलता है, image के किनारे या text की पट्टी से कट जाता है)। सबसे बड़े saturated blob के किनारे पर वृत्त fit करके केंद्र लौटाता है → table। blob कटने पर centroid कटे पक्ष से उल्टी ओर खिसकता है (मापा गया 15 px), इसलिए कटे किनारे (image की परिधि और ignore_top_rows पट्टी को छूने वाले pixel) छोड़कर बचे चाप पर algebraic least squares (Kåsa 1976) से वृत्त fit किया जाता है।
sun_pixel_position "ठोस छोटी disc" मानकर बना synthetic data वाला gate है; असली road cameras पर यह station name के सफ़ेद अक्षरों, road signs और सफ़ेद गाड़ियों को सूरज पढ़ लेता है (Fintraffic weather cameras पर 24/24 ग़लत detection, 2026-09-21)। यह op यह तय नहीं करता कि यह सूरज है:
यह circle का center और radius, residual और कटा है या नहीं लौटाता है, और सूरज है या नहीं यह इससे तय होता है कि वह समय के अनुसार चलता है या नहीं (camera_orientation_from_sun_candidates)।
Args:
image: (H, W) float, 0 से 1।
threshold: saturation माना जाने वाला absolute value।
ignore_top_rows: ऊपरी किनारे की कितनी rows ignore करनी हैं (station name जैसे text की पट्टी)।
min_area: blob के pixels की न्यूनतम संख्या।
max_area_frac: blob का अधिकतम area (image के सापेक्ष अनुपात) -- पूरा आसमान blown out वाली तस्वीरें reject करता है।
min_rim_fraction: बिना कटे rim को circumference का कम से कम कितना हिस्सा होना चाहिए (इससे कम पर "बहुत ज़्यादा कटा" मानकर ValueError)।
Returns:
table: u / v (circle का center) / r (radius px) / rms_px (rim का radius residual) / area (blob के pixels) /
clipped (1 = rim कहीं कटा है) / rim_fraction / centroid_u / centroid_v (तुलना के लिए centroid)।
• 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 में दिए गए हैं।
• (अभी कुछ नहीं)
table को input के रूप में लेते हैं)render_skyline_view · camera_orientation_from_skyline
sun)sun_position · sun_pixel_position · camera_orientation_from_sun · 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.