star_detect — ASTROSTACK photometry op

• Data kinds: image2d → keypoints

• Call: import fullseye as fs; fs.ledger.star_detect(image, threshold_sigma=5.0, min_separation=3, max_stars=200, edge_margin=None, centroid_box=None, method='mad') (implementation को सीधे call करना हो तो import astrostack; astrostack.star_detect(image, threshold_sigma=5.0, min_separation=3, max_stars=200, edge_margin=None, centroid_box=None, method='mad'), registry से लेना हो तो opsastrostack.get("star_detect"))

उपयोग

तारों को detect करता है और (row, col) centroid की सूची लौटाता है।

Background और noise का अनुमान noise_sigma जैसे ही robust estimator से लगाया जाता है, और background + threshold_sigma * sigma से अधिक local maxima चुने जाते हैं (maximum filter से मेल द्वारा तय किया जाता है, इसलिए min_separation pixels के भीतर 2 नहीं आते)। केंद्र threshold की pixel स्थिति नहीं, बल्कि centroid_box (default 2*min_separation+1) की window में background घटाई गई intensity से weighted centroid है —— subpixel स्थिति accuracy का यही एकमात्र कारण है; connected components का centroid (detect.segment_objects) hard threshold की मात्रा से brightness पर निर्भर करता है और पक्षपाती (biased) होता है।

brightness के अनुसार sort करके max_stars पर काटा जाता है। केवल वे तारे लौटाए जाते हैं जो सीमा से edge_margin (default centroid_box // 2) से अधिक अंदर हैं —— जिस तारे की window image से बाहर निकलती है उसका centroid सीमा की ओर खिंचता है, इसलिए पक्षपाती मान चुपचाप लौटाने के बजाय उसे हटा दिया जाता है।

(N, 2) float64 keypoints लौटाता है। यदि कोई नहीं है, तो (0, 2) (खाली एक वैध उत्तर है, इसलिए यह exception नहीं है —— बिना तारों वाले fields of view होते हैं)।

Raises ValueError: यदि 2-D नहीं / non-finite मान हैं / *threshold_sigma* non-positive है / *min_separation* 1 से कम है / *max_stars* 1 से कम है।

★नाम खगोलीय है, लेकिन सामग्री domain-neutral है (robust background अनुमान + kσ से ऊपर local maxima + centroid)। point targets / चमकीले बिंदु / spots / छोटे targets / सूक्ष्म दोष / कण पहचानने और subpixel पर उनकी स्थिति निकालने के लिए इसे जैसा है वैसा उपयोग किया जा सकता है —— search-and-rescue हवाई imagery में बहती वस्तुओं को पकड़ना, fluorescence microscopy में चमकीले बिंदु गिनना: ऐसे उपयोगों के लिए यही सही entry point है। जापानी queries op_find("輝点 検出") / op_find("点状目標") / op_find("粒子 検出") इस op को सबसे पहले लौटाती हैं (2026-10-11 का माप; op_find("点 検出") में "बिंदु" और "detection" कई ops से मेल खाते हैं, इसलिए यह ऊपर नहीं आता)। 2026-09-08 को यह अनुच्छेद जुड़ने से पहले, जापानी multi-word queries search की बनावट के कारण 0 hits देती थीं; हालाँकि यह subpixel centroids के साथ coordinate list लौटाने वाला एकमात्र 2-D op है, इस तक जापानी शब्दों से नहीं पहुँचा जा सकता था (poc_search_sweep_width इसी समस्या से टकराया)। यदि आपको region centroids चाहिए, तो blob_label family उपयोग करें; यदि आपको केवल maxima का mask चाहिए, तो sk_local_maxima।

संदर्भ (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 करते हैं)

• astro_stacking — py -3.11 examples/astro_stacking.py

• poc_exoplanet_transit — py -3.11 examples/poc_exoplanet_transit.py

• poc_search_sweep_width — py -3.11 examples/poc_search_sweep_width.py

• poc_star_astrometry — py -3.11 examples/poc_star_astrometry.py

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

psf_fit · aperture_photometry

इसी category के (photometry)

psf_fit · aperture_photometry


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

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