profile_params — ROUGHNESS measure op

• Data kinds: signal → table

• Call: import fullseye as fs; fs.ledger.profile_params(p, dx=1.0, n_sampling=5) (implementation को सीधे call करना हो तो import roughness; roughness.profile_params(p, dx=1.0, n_sampling=5), registry से लेना हो तो opsroughness.get("profile_params"))

उपयोग

profile के roughness parameter Ra/Rq/Rz/Rt/Rp/Rv/Rsk/Rku (ISO 4287)।

Arguments

p Band-processed profile (1-D)।

dx Sample spacing। Parameters पर खुद इसका कोई असर नहीं, लेकिन sampling_length report करने के लिए ज़रूरी है

(units के बिना Rz की शर्तें बताई नहीं जा सकतीं)।

n_sampling Sampling lengths की संख्या। ISO 4287 default 5 है।

★ Rz और Rt दोनों लौटाता है —— परिभाषा का अंतर यहीं हटा दिया जाता है ISO 4287 Rz है "evaluation length को n_sampling बराबर भागों में बाँटकर, हर भाग की max peak height + max valley depth का औसत"। दूसरी ओर Rt पूरी evaluation length पर अधिकतम height अंतर है। समान profile पर मान अलग होते हैं, और literature या instrument के अनुसार "Rz" किसे कहता है यह बदलता है। दोनों लौटाएँ तो इन्हें मिलाया नहीं जा सकता।

Measured (512 points, λc=80 µm पर काटा गया profile; 1 गहरी scratch वाली row चुनी गई):

Rz (mean of 5 parts) 1.5076

Rz_max (max over parts) 5.4706

Rt (whole eval. length) 5.4706

Rt / Rz 3.63

चूँकि scratch केवल 1 भाग में है, 5 भागों पर औसत लेने से उसका योगदान 1/5 तक पतला हो जाता है। समान profile पर, 3.6x अलग संख्याएँ दोनों "Rz" कहलाती हैं। उसी row से केवल scratch हटाने पर Rt/Rz 1.21 तक घट जाता है —— अंतर केवल तब खुलता है जब कोई अलग-थलग feature हो, इसलिए "हमारे instrument पर ये मेल खाते हैं, इसलिए ये समान हैं" का अर्थ बस इतना है कि अभी तक कोई counterexample नहीं मिला।

★ गड्ढा —— एक profile का Rz areal Sz का प्रतिनिधित्व नहीं करता ऐसी surface पर जिसके machining marks rows के साथ चलते हैं (512x512, 4 गहरी scratches, λc=80 µm), हर दिशा में 171 profiles लेकर measured:

• Marks के लंबवत columns के साथ Rq, समानांतर rows के साथ वाले का 2.67x है (0.1853 बनाम 0.0694)। समान surface, समान instrument, केवल दिशा अलग।

• Rows के साथ Rt न्यूनतम 0.2765 से अधिकतम 5.4706 तक है, 19.8x का फैलाव।

• Areal Sz (5.9694) के 80 % तक पहुँचने वाले profiles: 171 में से 6 (3.5 %)।

Rq के लिए कुछ profiles काफ़ी हैं लेकिन Rz के लिए नहीं —— समान 1-D profile के लिए भी, ज़रूरी profiles की संख्या हर parameter के लिए अलग है। Rz report करते समय हमेशा profiles की संख्या और दिशा बताएँ।

परिभाषा का विवरण (standard से विचलन यहाँ स्पष्ट रूप से बताए गए हैं)

• Reference line पूरी evaluation length पर mean line है (least-squares line नहीं)। Tilt पहले ही surface_form_remove या surface_filter से हटा दें।

• Rp / Rv / Rsk / Rku पूरी evaluation length पर गणना होते हैं (हर भाग पर औसत नहीं)।

• अगर evaluation length n_sampling से विभाज्य नहीं है, तो शेष फेंक दिया जाता है। फेंके गए points की संख्या dropped_samples में लौटाई जाती है।

fail-closed

• 1-D नहीं / 8 से कम points / NaN या Inf शामिल।

• n_sampling 1 से कम है, या किसी भाग में 4 से कम points होंगे।

• Profile पूरी तरह सपाट है (Rq=0)।

उपयोग की विस्तृत 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 करते हैं)

• poc_food_cutting_measure — py -3.11 examples/poc_food_cutting_measure.py

• poc_surface_roughness — py -3.11 examples/poc_surface_roughness.py

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

—

इसी category के (measure)

surface_params · surface_psd


*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.