detector_calibrate — DRIVE pxrd op

• Data kinds: image2d × signal × table → table

• Call: import fullseye as fs; fs.ledger.detector_calibrate(image, d_spacings, geometry_guess, n_azimuth=180, fit_tilt=True, min_rings=2) (implementation को सीधे call करना हो तो import pxrd; pxrd.detector_calibrate(image, d_spacings, geometry_guess, n_azimuth=180, fit_tilt=True, min_rings=2), registry से लेना हो तो opsdrive.get("detector_calibrate"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

ज्ञात standard (जैसे Si) के ring से detector का केंद्र, दूरी और झुकाव calibrate करता है।

d_spacings मानक रिक्तियों की एक सूची है [Å] (जरूरी नहीं कि ताकत के क्रम में), geometry_guess कम से कम पिक्सेल है और

तरंग दैर्ध्य, यदि ज्ञात हो, cx, cy, दूरी, झुकाव, tilt_dir। कदम:

1. यदि कोई केंद्र नहीं है, तो चमकीले पिक्सेल के गुरुत्वाकर्षण के केंद्र से शुरू करें, किरण के साथ सबसे मजबूत रिंग उठाएं, और सर्कल को फिट करके केंद्र को तीन बार अपडेट करें।

2. यदि कोई दूरी नहीं है, तो रेडियल प्रोफ़ाइल के पहले शिखर को d (सबसे छोटे 2θ में से चार) के लिए उम्मीदवारों को निर्दिष्ट करें और उनकी तुलना अन्य रिंगों के पूर्वानुमानों से करें। सबसे अधिक मेल खाने वाले अवलोकनों वाली जोड़ी का चयन करें।

3. वर्तमान ज्यामिति में n_azimuth किरणों पर प्रत्येक रिंग की स्थिति की भविष्यवाणी करें, विंडो में तीव्रता के गुरुत्वाकर्षण के केंद्र पर एक बिंदु चुनें, 2θ अवशिष्ट [डिग्री] के साथ (cx, cy, दूरी, झुकाव के दो घटक) का अनुमान लगाने के लिए scipy.optimize.least_squares का उपयोग करें। खिड़की ठेकेदारी करते समय 4 बार। झुकाव को रोटेशन वेक्टर के दो घटकों झुकाव·(कॉस φ, पाप φ) का उपयोग करके हल किया जाता है (एकवचनता से बचना जहां ढलान 0 होने पर φ अनिश्चित हो जाता है)।

वापसी मूल्य (तानाशाही): ज्यामिति (cx, cy, दूरी, पिक्सेल, तरंग दैर्ध्य, झुकाव, tilt_dir)

rms_two_theta_deg・n_points・n_rings・rings_deg・ok(rms 0.25·पिक्सेल/दूरी से कम है

और रिंग्स >= min_rings).

मान बढ़ाता हैत्रुटि: छवि 2-डी नहीं, कोई डी नहीं, कोई पिक्सेल/तरंगदैर्ध्य नहीं, min_rings'' रिंग नहीं मिलीं।

संदर्भ (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_pxrd_phase_peel — py -3.11 examples/poc_pxrd_phase_peel.py

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

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

इसी category के (pxrd)

cif_read · cubic_prototype · powder_reflections · scherrer_size · debye_ring_image · detector_two_theta · azimuthal_integrate · diffraction_peaks


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

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