doseunif op• Datenarten: any × scalar × scalar → table
• Aufruf: 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' (die Implementierung direkt: 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'; aus dem Register: opsdrive.get("dose_cv_from_sizes"))
Gehalts-CV je 1 Dosis aus gemessenen Partikelgrößen (nur Schwankung der Teilchenzahl, Poisson) mit Verzerrung und Intervall.
sizes gibt es in 2 Formen:
• 1-D-Array = Stichprobe anzahlbasierter Partikeldurchmesser [µm] (z. B. diameters von grind.particle_image_d50). estimator: "lognormal" (Standard —— D63 = exp(m + 4.5 v) aus Mittelwert und Varianz von ln d) / "moment" (D63³ = Σd⁶/Σd³ direkt. Der Mittelwert ist unverzerrt, wird aber von wenigen großen Partikeln dominiert, und der Median fällt niedrig aus). Mit frame = (H_px, W_px, pitch_um) wird bei einer Messung, die randberührende Partikel verwirft (particle_image_d50 von border="exclude": Partikel auf den äußersten Pixeln werden verworfen), der Verlust großer Partikel mit dem Miles–Lantuéjoul-Gewicht 1 / (((H−2)p − d)((W−2)p − d)) korrigiert (ohne liegt man im Mittel um etwa −5 % zu niedrig, siehe Modulkopf). Intervalle: Perzentil-Bootstrap mit ci (zweiseitig) (n_boot-mal, beide Schätzer) und Delta-Methode für die Lognormalverteilung (effektive Anzahl n_eff nach Kish, Var ln CV = (9v/n_eff + 364.5 v²/(n_eff − 1))/4).
• dict (edges, volume) = volumenbasierte Tabelle aus Laserbeugung (grind.particle_size_read / grind.particle_size_synth). estimator: "histogram" (Standard —— die Identität D63³ = E_v[d³] durch Integration je Klasse als "gleichverteilt in ln d", ohne Annahme einer Verteilungsform) / "lognormal" (σ = ln(D84/D16)/2, D63 = D50 exp(1.5σ²)). Die Tabelle enthält keine Partikelzahl, daher kein Stichprobenintervall (ci_bootstrap ist None). coarse_share = Anteil von E_v[d³], der auf die Klassen oberhalb von D90 entfällt (Grad der Abhängigkeit vom groben Ausläufer).
Rückgabe: cv (gewählter Schätzer), d63, je Schätzer cv_* und d63_*, sigma_ln, d_number_median (Stichprobe) / d50_volume (Tabelle), particles_per_dose, n und n_eff, top1pct_share_d6 (Stichprobe: Anteil der größten 1 % Partikel an Σd⁶), ci_bootstrap und ci_delta, estimator, source ("sample" / "psd"), edge_corrected. Raises ValueError: weniger als 10 Partikel, nicht endlich oder nicht positiv, defekte Tabelle (dieselben Prüfungen wie grind.particle_size_dx), Partikel, die nicht in frame passen, Schreibfehler.
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• poc_dose_uniformity_from_grinding — py -3.11 examples/poc_dose_uniformity_from_grinding.py
table als Eingabe)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
doseunif)dose_cv_lognormal · grind_time_for_dose_cv
*Provenance: doseunif.py — DRIVE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.