dose_cv_from_sizes — DRIVE doseunif op

• Data kinds: any × scalar × scalar → table

• Call: import fullseye as fs; fs.ledger.dose_cv_from_sizes(sizes, dose_mg: 'float', density: 'float', estimator: 'str | None' = None, frame=None, ci: 'float' = 0.9, n_boot: 'int' = 400, seed: 'int' = 0) -> 'dict' (implementation को सीधे call करना हो तो import doseunif; doseunif.dose_cv_from_sizes(sizes, dose_mg: 'float', density: 'float', estimator: 'str | None' = None, frame=None, ci: 'float' = 0.9, n_boot: 'int' = 400, seed: 'int' = 0) -> 'dict', registry से लेना हो तो opsdrive.get("dose_cv_from_sizes"))

उपयोग

मापे गए कण आकार से 1 खुराक की मात्रा का CV (केवल कणों की संख्या का उतार-चढ़ाव, Poisson), और उसका bias और अंतराल।

sizes के 2 रूप हैं:

• 1-D ऐरे = संख्या-आधारित कण-व्यासों का नमूना [µm] (जैसे grind.particle_image_d50 का diameters)। estimator: "lognormal" (डिफ़ॉल्ट —— ln d के माध्य और प्रसरण से D63 = exp(m + 4.5 v)) / "moment" (D63³ = Σd⁶/Σd³ सीधे। माध्य अपक्षपाती है, पर कुछ बड़े कणों से प्रभुत्वित होता है और माध्यिका कम आती है)। frame = (H_px, W_px, pitch_um) देने पर, किनारे को छूने वाले कणों को त्यागने वाले मापन (particle_image_d50 का border="exclude": बाहरी घेरे के पिक्सेल पर पड़े कण त्यागे जाते हैं) में बड़े कणों की चूक को Miles–Lantuéjoul भार 1 / (((H−2)p − d)((W−2)p − d)) से सुधारा जाता है (छोड़ने पर औसतन लगभग −5 % कम, मॉड्यूल का आरंभ देखें)। अंतराल ci (दोतरफ़ा) का प्रतिशतक bootstrap (n_boot बार, दोनों आकलक) और लॉग-नॉर्मल की डेल्टा विधि (Kish की प्रभावी संख्या n_eff, Var ln CV = (9v/n_eff + 364.5 v²/(n_eff − 1))/4) हैं।

• dict (edges, volume) = लेज़र विवर्तन की आयतन-आधारित तालिका (grind.particle_size_read / grind.particle_size_synth)। estimator: "histogram" (डिफ़ॉल्ट —— सर्वसमिका D63³ = E_v[d³] को हर अंतराल में "ln d में एकसमान" मानकर समाकलित, वितरण का आकार नहीं माना जाता) / "lognormal" (σ = ln(D84/D16)/2, D63 = D50 exp(1.5σ²))। तालिका में कणों की संख्या नहीं होती, इसलिए नमूना-अंतराल नहीं दिया जाता (ci_bootstrap None है)। coarse_share = E_v[d³] में D90 से ऊपर के अंतरालों का हिस्सा (मोटी पूँछ पर निर्भरता की मात्रा)।

लौटाता है: cv (चुना गया आकलक), d63, आकलक-वार cv_* व d63_*, sigma_ln, d_number_median (नमूना) / d50_volume (तालिका), particles_per_dose, n व n_eff, top1pct_share_d6 (नमूना: सबसे बड़े 1 % कणों का Σd⁶ में हिस्सा), ci_bootstrap व ci_delta, estimator, source ("sample" / "psd"), edge_corrected। Raises ValueError: 10 से कम कण, अपरिमित या अधनात्मक, टूटी तालिका (grind.particle_size_dx जैसी ही जाँच), frame में न समाने वाले कण, ग़लत वर्तनी।

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

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

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

इसी category के (doseunif)

dose_cv_lognormal · grind_time_for_dose_cv


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

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