robust_gaussian_profile — ROUGHNESS prepare op

• Data kinds: signal → signal

• Call: import fullseye as fs; fs.ledger.robust_gaussian_profile(z, dx, lambda_c, c=4.4, order=1, robust=True, truncate=1.0, max_iter=None, tol=1e-06) (implementation को सीधे call करना हो तो import roughness; roughness.robust_gaussian_profile(z, dx, lambda_c, c=4.4, order=1, robust=True, truncate=1.0, max_iter=None, tol=1e-06), registry से लेना हो तो opsroughness.get("robust_gaussian_profile"))

• Ledger के ज़रिए return value: fullseye.ledger.robust_gaussian_profile(...) केवल घोषित out type signal का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.robust_gaussian_profile.raw(...) का उपयोग करें, या roughness.robust_gaussian_profile को सीधे call करें।

• मूल function का return: (roughness, mean_line, info)

उपयोग

Robust Gaussian regression filter (profile): ऐसी mean line और roughness जिसे outliers और scratches खींच नहीं पाते।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

ガウス重みの局所回帰(次数 order)に Tukey の biweight を掛けて反復する。普通のガウスフィルタは深い溝や突起にそのまま引きずられ、平均線が傷の側へ凹む。この op は傷の部分の重みを下げる(|r| ≥ c·median|r| で 0)ので、平均線は傷を無視する。

戻り値は (roughness, mean_line, info)。roughness = z - mean_line。端は 削らず 全長を返す(窓に入るデータだけで回帰するので、ガウス平均と違って端でも偏らない。端の信頼度が気になるなら両端 λc/2 を捨てる)。info は反復回数・収束・重みの要約。

引数

z 断面 z[i](1 次元、有限値のみ)。

dx 標本間隔。

lambda_c カットオフ波長(透過率 50 %)。2*dx 以上、評価長さ以下。

c biweight の定数(既定 4.4)。しきい値は c × median|残差|。

order 0 = 重み付き平均、1 = 局所直線(既定)。内部の核はどちらも同じで、

カットオフでの透過率は 0.5(閉形式 exp(-π (α λc f)²)、f = 1/λc)。

robust False なら重み 1 のまま(普通の線形ガウス回帰。比較・基準用)。

truncate 窓の半径 truncate·λc(0.5 以上)。既定 1.0。0.75(GAUSS_TRUNCATE)に

すると、既存の surface_filter と内部で一致する(0.5 は規格の文面の打ち切り)。

max_iter 反復の上限(None = 200)。収束しなければ 拒否する。

tol 収束判定: 平均線の変化の最大が tol × median|残差| 以下。

fail-closed

• 配列が 1 次元でない / 8 点未満 / NaN・Inf を含む。

• dx / lambda_c / c / tol が有限の正でない、lambda_c が範囲外、order が 0/1 以外、truncate < 0.5。

• 窓の中に重みを持つデータが無い(傷が窓より広い)/ 正規方程式が退化する。

• biweight の反復が max_iter 回で収束しない(外れ値が半数に近い等)。

出典(式は論文のものを再実装。規格の本文は写していない): ISO 16610-21 / -31 のガウス回帰の考え方、Seewig, "Gaussian Regression Filters"(*Computational Surface and Roundness Metrology*, Springer 2009)、沼田・藤原・舟橋・輿水、精密工学会誌 76 (2010)(高速 M 推定)。

उपयोग की विस्तृत guide

• surface_roughness family guide

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

• example_robust_profile_filter — py -3.11 examples/example_robust_profile_filter.py

• poc_robust_profile_filter — py -3.11 examples/poc_robust_profile_filter.py

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

robust_spline_profile · profile_params

इसी category के (prepare)

surface_form_remove · surface_filter · robust_spline_profile · robust_gaussian_surface


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

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