dose_cv_lognormal — DRIVE doseunif op

• Data kinds: scalar × scalar × scalar × scalar → table

• Call: import fullseye as fs; fs.ledger.dose_cv_lognormal(d_median: 'float', sigma_ln: 'float', dose_mg: 'float', density: 'float', basis: 'str' = 'number', method: 'str' = 'closed', sampling: 'str' = 'poisson', n_rep: 'int' = 2000, seed: 'int' = 0, max_draws: 'int' = 20000000) -> 'dict' (to call the implementation directly, import doseunif; doseunif.dose_cv_lognormal(d_median: 'float', sigma_ln: 'float', dose_mg: 'float', density: 'float', basis: 'str' = 'number', method: 'str' = 'closed', sampling: 'str' = 'poisson', n_rep: 'int' = 2000, seed: 'int' = 0, max_draws: 'int' = 20000000) -> 'dict'; from the registry, opsdrive.get("dose_cv_lognormal"))

Usage

CV of the content of 1 dose (drug dose_mg) taken from a powder with log-normal particle sizes (particle-count fluctuation only).

> The detailed description below is the original text — the summary and the headings are translated.

閉形式(モジュール冒頭の導出): CV² = c · D63³ / D、c = πρ/6、D63³ = d_g³ exp(13.5 σ²) = d_v³ exp(4.5 σ²)。basis:

"number"(d_median は個数基準の中央径 d_g、画像の粒の数え方)/ "volume"(体積基準の中央径 d_v、レーザー回折の D50)。sampling: "poisson"(既定、粒の数 N が Poisson)/ "fixed_count"(N = λ を丸めた整数に固定、CV² = CV²_Poisson − 1/N)。method="monte_carlo": 1 回分を n_rep 回作り(N を引き、N 個の径を対数正規から引いて質量を足す)標本の CV を返す —— 閉形式と 独立な経路(式を使わない)。標準誤差 cv_mc_se は 20 個の束の散らばりから。引く径の総数が max_draws を超えるなら黙って減らさず ValueError(λ × n_rep を見て n_rep を減らすか閉形式を使う)。

返り: cv(method の値)、cv_closed、particles_per_dose(λ、fixed_count では整数 N)、mean_particle_mg、d63、d_number_median・d_volume_median [µm]、basis・sampling・method、Monte Carlo なら cv_mc・cv_mc_se・n_rep・draws。Raises ValueError: 正であるべき量が正でない、綴り違い、fixed_count で N < 2、Monte Carlo の総数が上限を超える。

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_dose_uniformity_from_grinding — py -3.11 examples/poc_dose_uniformity_from_grinding.py

Ops the type connects to (they accept table as input)

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

Same category (doseunif)

dose_cv_from_sizes · grind_time_for_dose_cv


*Provenance: doseunif.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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