{"id":100250,"date":"2026-02-15T20:29:43","date_gmt":"2026-02-15T20:29:43","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100250"},"modified":"2026-07-15T17:53:20","modified_gmt":"2026-07-15T17:53:20","slug":"surface-parameters-iso21920","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/hr\/calculators\/surface-parameters-iso21920\/","title":{"rendered":"Controlled Profile-Ordinate Statistics Worksheet"},"content":{"rendered":"<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Controlled Profile-Ordinate Statistics Worksheet\",\"description\":\"Calculate transparent discrete statistics from equally spaced profile ordinates without inferring ISO 21920 parameters, filter settings or conformance.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/surface-parameters-iso21920\/\",\"applicationCategory\":\"EngineeringApplication\",\"operatingSystem\":\"Any\",\"isAccessibleForFree\":true,\"dateModified\":\"2026-07-15\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"}}<\/script><\/p>\n<style>\n#sp-tool{--sp-ink:#17212b;--sp-muted:#53616f;--sp-line:#cbd5df;--sp-soft:#f3f7fa;--sp-blue:#075985;--sp-blue2:#e0f2fe;--sp-red:#991b1b;--sp-red2:#fef2f2;--sp-green:#166534;max-width:1120px;margin:24px auto;font-family:Inter,system-ui,-apple-system,\"Segoe UI\",sans-serif;color:var(--sp-ink);line-height:1.55}#sp-tool *{box-sizing:border-box}#sp-tool h1,#sp-tool h2,#sp-tool h3{line-height:1.2;color:var(--sp-ink)}#sp-tool h1{font-size:clamp(1.65rem,4vw,2.35rem);margin:0 0 12px}#sp-tool h2{font-size:1.28rem;margin:0 0 16px}#sp-tool h3{font-size:1rem;margin:0 0 8px}#sp-tool p{margin:0 0 12px}#sp-tool a{color:var(--sp-blue)}.sp-hero{border:1px solid var(--sp-line);border-radius:16px;padding:clamp(20px,4vw,36px);background:linear-gradient(135deg,#fff,var(--sp-blue2));margin-bottom:20px}.sp-kicker{font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--sp-blue);margin-bottom:8px}.sp-lead{font-size:1.05rem;max-width:920px}.sp-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.sp-badge{display:inline-block;border:1px solid #7dd3fc;background:#f0f9ff;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:700}.sp-card{border:1px solid var(--sp-line);border-radius:14px;padding:clamp(18px,3vw,28px);background:#fff;margin:16px 0}.sp-alert{border-left:5px solid var(--sp-red);background:var(--sp-red2);padding:16px 18px;border-radius:8px;margin:16px 0}.sp-info{border-left:5px solid var(--sp-blue);background:var(--sp-blue2);padding:16px 18px;border-radius:8px;margin:16px 0}.sp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sp-field{min-width:0}.sp-field label,.sp-label{display:block;font-weight:750;font-size:.91rem;margin-bottom:6px}.sp-required{color:var(--sp-red)}.sp-input,.sp-select,.sp-textarea{width:100%;border:1px solid #94a3b8;border-radius:8px;padding:10px 12px;background:#fff;color:var(--sp-ink);font:inherit}.sp-input:focus,.sp-select:focus,.sp-textarea:focus{outline:3px solid rgba(3,105,161,.18);border-color:var(--sp-blue)}.sp-textarea{min-height:150px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.sp-textarea.sp-notes{min-height:90px;font-family:inherit}.sp-help{font-size:.8rem;color:var(--sp-muted);margin-top:5px}.sp-checks{display:grid;gap:10px}.sp-check{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;border:1px solid var(--sp-line);border-radius:9px;padding:12px;background:var(--sp-soft)}.sp-check input{margin-top:.25rem}.sp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.sp-btn{border:0;border-radius:8px;padding:11px 17px;font:inherit;font-weight:800;cursor:pointer}.sp-primary{background:var(--sp-blue);color:#fff}.sp-secondary{background:#e2e8f0;color:var(--sp-ink)}.sp-status{min-height:1.6em;margin-top:12px;font-weight:750}.sp-status[data-kind=\"error\"]{color:var(--sp-red)}.sp-status[data-kind=\"ok\"]{color:var(--sp-green)}.sp-output{display:none}.sp-output[data-visible=\"true\"]{display:block}.sp-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sp-result{border:1px solid var(--sp-line);border-radius:10px;padding:14px;background:var(--sp-soft);min-width:0}.sp-result span{display:block;color:var(--sp-muted);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.sp-result output{display:block;font-size:1.08rem;font-weight:800;overflow-wrap:anywhere;margin-top:5px}.sp-formula{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#0f172a;color:#f8fafc;border-radius:10px;padding:16px;overflow-x:auto;line-height:1.8}.sp-boundary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.sp-boundary>div{border:1px solid var(--sp-line);border-radius:9px;padding:14px;background:var(--sp-soft)}.sp-boundary ul,.sp-source-list{margin:8px 0 0;padding-left:20px}.sp-source-list li{margin:0 0 12px}.sp-example{overflow-x:auto}.sp-example table{width:100%;border-collapse:collapse;min-width:620px}.sp-example th,.sp-example td{border:1px solid var(--sp-line);padding:9px 11px;text-align:left}.sp-example th{background:var(--sp-soft)}.sp-note{font-size:.88rem;color:var(--sp-muted)}@media(max-width:800px){.sp-grid,.sp-boundary{grid-template-columns:1fr}.sp-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){#sp-tool{margin:12px auto}.sp-result-grid{grid-template-columns:1fr}.sp-card,.sp-hero{border-radius:10px}.sp-actions{display:grid}.sp-btn{width:100%}}\n<\/style>\n<p><main id=\"sp-tool\"><\/p>\n<header class=\"sp-hero\">\n<div class=\"sp-kicker\">Controlled numerical screening<\/div>\n<h1>Profile-Ordinate Statistics Worksheet<\/h1>\n<p class=\"sp-lead\">Calculate transparent discrete statistics from equally spaced profile ordinates. This worksheet deliberately does <strong>not<\/strong> infer Rz, Rq, Rt, a cutoff wavelength or ISO 21920 conformance from one Ra value.<\/p>\n<div class=\"sp-badges\"><span class=\"sp-badge\">No Ra-to-Rz conversion<\/span><span class=\"sp-badge\">No automatic cutoff table<\/span><span class=\"sp-badge\">No ISO conformance claim<\/span><\/div>\n<\/header>\n<div class=\"sp-alert\"><strong>Decision boundary.<\/strong> The complete acquisition, stylus\/instrument characteristics, levelling, filters, nesting indices, section lengths, end treatment, parameter operator and uncertainty evaluation must be performed by a controlled external metrology method. The outputs below use starred names (A*, Q*, H*) because this page does not reproduce the licensed ISO 21920-2\/-3 operator.<\/div>\n<form id=\"sp-form\" novalidate>\n<section class=\"sp-card\" aria-labelledby=\"sp-data-heading\">\n<h2 id=\"sp-data-heading\">1. Equally spaced ordinate data<\/h2>\n<div class=\"sp-grid\">\n<div class=\"sp-field\"><label for=\"sp-values\">Profile ordinates <span class=\"sp-required\">*<\/span><\/label><textarea class=\"sp-textarea\" id=\"sp-values\" maxlength=\"250000\" autocomplete=\"off\" placeholder=\"One value per line, for example:&#10;-2&#10;0&#10;0&#10;2\"><\/textarea><\/p>\n<div class=\"sp-help\">2\u201310,000 signed plain decimals. Use one value per line or semicolons. Decimal point or decimal comma is accepted; scientific notation and thousands separators are rejected.<\/div>\n<\/div>\n<div>\n<div class=\"sp-field\"><label for=\"sp-unit\">Ordinate unit <span class=\"sp-required\">*<\/span><\/label><select class=\"sp-select\" id=\"sp-unit\"><option value=\"\">Select<\/option><option value=\"nm\">nm<\/option><option value=\"um\">\u00b5m<\/option><option value=\"mm\">mm<\/option><\/select><\/div>\n<div class=\"sp-field\" style=\"margin-top:16px\"><label for=\"sp-profile\">Controlled profile type <span class=\"sp-required\">*<\/span><\/label><select class=\"sp-select\" id=\"sp-profile\"><option value=\"\">Select the external dataset classification<\/option><option value=\"R\">R \u2014 assessed roughness-profile ordinates<\/option><option value=\"P\">P \u2014 assessed primary-profile ordinates<\/option><option value=\"W\">W \u2014 assessed waviness-profile ordinates<\/option><option value=\"other\">Other \/ descriptive profile data<\/option><\/select><\/p>\n<div class=\"sp-help\">This record does not cause the worksheet to apply an ISO filter or rename the outputs.<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"sp-card\" aria-labelledby=\"sp-record-heading\">\n<h2 id=\"sp-record-heading\">2. Dataset and operator record<\/h2>\n<div class=\"sp-grid\">\n<div class=\"sp-field\"><label for=\"sp-record\">Record \/ dataset ID <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-record\" type=\"text\" maxlength=\"120\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-source\">Data file\/source and revision <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-source\" type=\"text\" maxlength=\"400\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-acquisition\">Instrument, probe and calibration record <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-acquisition\" type=\"text\" maxlength=\"500\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-spacing\">Uniform spacing and point-order evidence <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-spacing\" type=\"text\" maxlength=\"300\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-operator\">Governing operator source, edition and location <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-operator\" type=\"text\" maxlength=\"500\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-filters\">S\/L filters, nesting indices and end treatment <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-filters\" type=\"text\" maxlength=\"500\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-lengths\">Section, sampling and evaluation lengths <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-lengths\" type=\"text\" maxlength=\"400\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-datum\">Levelling, mean line and preprocessing <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-datum\" type=\"text\" maxlength=\"500\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-software\">Export\/software version and checks <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-software\" type=\"text\" maxlength=\"300\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-analyst\">Analyst \/ checker <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-analyst\" type=\"text\" maxlength=\"160\" autocomplete=\"off\"><\/div>\n<div class=\"sp-field\"><label for=\"sp-date\">Record date <span class=\"sp-required\">*<\/span><\/label><input class=\"sp-input\" id=\"sp-date\" type=\"date\"><\/div>\n<\/p><\/div>\n<div class=\"sp-field\" style=\"margin-top:16px\"><label for=\"sp-notes\">Notes<\/label><textarea class=\"sp-textarea sp-notes\" id=\"sp-notes\" maxlength=\"1600\" placeholder=\"Optional exclusions, uncertainty and follow-up verification. No data is stored.\"><\/textarea><\/div>\n<\/section>\n<section class=\"sp-card\" aria-labelledby=\"sp-confirm-heading\">\n<h2 id=\"sp-confirm-heading\">3. Confirmations<\/h2>\n<div class=\"sp-checks\">\n        <label class=\"sp-check\" for=\"sp-c1\"><input id=\"sp-c1\" type=\"checkbox\"><span>I verified that every value is an ordinate from the same ordered, equally spaced dataset and uses the selected unit.<\/span><\/label><br \/>\n        <label class=\"sp-check\" for=\"sp-c2\"><input id=\"sp-c2\" type=\"checkbox\"><span>I verified that acquisition, instrument\/probe characteristics, calibration, levelling, filters, nesting indices, section lengths and end treatment were controlled outside this worksheet.<\/span><\/label><br \/>\n        <label class=\"sp-check\" for=\"sp-c3\"><input id=\"sp-c3\" type=\"checkbox\"><span>I understand that A*, Q* and H* are discrete descriptive statistics after arithmetic-mean removal\u2014not automatically ISO 21920 Ra, Rq, Rz or Rt.<\/span><\/label><br \/>\n        <label class=\"sp-check\" for=\"sp-c4\"><input id=\"sp-c4\" type=\"checkbox\"><span>I will not use this result to select an ISO cutoff, infer one surface parameter from another or make a conformance decision.<\/span><\/label>\n      <\/div>\n<div class=\"sp-actions\"><button class=\"sp-btn sp-primary\" type=\"submit\">Calculate documented sample statistics<\/button><button class=\"sp-btn sp-secondary\" id=\"sp-reset\" type=\"button\">Clear worksheet<\/button><\/div>\n<div class=\"sp-status\" id=\"sp-status\" role=\"alert\" aria-live=\"polite\"><\/div>\n<\/section><\/form>\n<section class=\"sp-card sp-output\" id=\"sp-output\" data-visible=\"false\" aria-labelledby=\"sp-output-heading\">\n<h2 id=\"sp-output-heading\">4. Discrete screening result<\/h2>\n<div class=\"sp-result-grid\">\n<div class=\"sp-result\"><span>Ordinate count<\/span><output id=\"sp-r-count\">\u2014<\/output><\/div>\n<div class=\"sp-result\"><span>Removed arithmetic mean<\/span><output id=\"sp-r-mean\">\u2014<\/output><\/div>\n<div class=\"sp-result\"><span>A* mean absolute deviation<\/span><output id=\"sp-r-a\">\u2014<\/output><\/div>\n<div class=\"sp-result\"><span>Q* RMS deviation<\/span><output id=\"sp-r-q\">\u2014<\/output><\/div>\n<div class=\"sp-result\"><span>Q* \/ A*<\/span><output id=\"sp-r-ratio\">\u2014<\/output><\/div>\n<div class=\"sp-result\"><span>Centered minimum<\/span><output id=\"sp-r-min\">\u2014<\/output><\/div>\n<div class=\"sp-result\"><span>Centered maximum<\/span><output id=\"sp-r-max\">\u2014<\/output><\/div>\n<div class=\"sp-result\"><span>H* maximum\u2212minimum<\/span><output id=\"sp-r-range\">\u2014<\/output><\/div>\n<\/p><\/div>\n<p class=\"sp-note\" id=\"sp-r-boundary\">\n<\/section>\n<section class=\"sp-card\" aria-labelledby=\"sp-method-heading\">\n<h2 id=\"sp-method-heading\">Method and applicability<\/h2>\n<div class=\"sp-formula\">m = (1\/N) \u03a3 x\u1d62<br \/>z\u1d62 = x\u1d62 \u2212 m<br \/>A* = (1\/N) \u03a3 |z\u1d62|<br \/>Q* = \u221a[(1\/N) \u03a3 z\u1d62\u00b2]<br \/>H* = max(z\u1d62) \u2212 min(z\u1d62)<\/div>\n<div class=\"sp-boundary\">\n<div>\n<h3>What is calculated<\/h3>\n<ul>\n<li>Arithmetic-mean removal.<\/li>\n<li>Equal-weight discrete A*, Q* and range H*.<\/li>\n<li>Exact nm\/\u00b5m\/mm normalization.<\/li>\n<\/ul>\n<\/div>\n<div>\n<h3>What is not calculated<\/h3>\n<ul>\n<li>Rz or Rt under a licensed operator.<\/li>\n<li>Filters, cutoff\/nesting indices or section rules.<\/li>\n<li>Measurement uncertainty or conformity.<\/li>\n<\/ul>\n<\/div>\n<div>\n<h3>Input requirements<\/h3>\n<ul>\n<li>One ordered, equally spaced dataset.<\/li>\n<li>One common ordinate unit.<\/li>\n<li>Controlled external acquisition and preprocessing.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sp-info\"><strong>Why one Ra value is insufficient.<\/strong> The centered profiles [\u22121, +1] and [\u22122, 0, 0, +2] both have mean absolute deviation 1. Their RMS deviations are 1 and \u221a2, while their ranges are 2 and 4. Therefore Rq-like and height-extreme quantities cannot be recovered uniquely from Ra alone.<\/div>\n<\/section>\n<section class=\"sp-card\" aria-labelledby=\"sp-source-heading\">\n<h2 id=\"sp-source-heading\">Sources and standards boundary<\/h2>\n<ul class=\"sp-source-list\">\n<li><a href=\"https:\/\/www.iso.org\/standard\/72226.html\" rel=\"noopener\" target=\"_blank\">ISO 21920-2:2021<\/a>, edition 1, corrected English version 2022-06: published terms, definitions and parameters for profile-method surface texture. As of 2026-07-15 it is at stage 90.92 (to be revised); a committee draft is under development and is not the published edition.<\/li>\n<li><a href=\"https:\/\/www.iso.org\/standard\/72228.html\" rel=\"noopener\" target=\"_blank\">ISO 21920-3:2021<\/a>, edition 1: published complete specification operator for profile-method surface texture. As of 2026-07-15 it is also at stage 90.92; a committee draft is under development.<\/li>\n<li><a href=\"https:\/\/www.iso.org\/standard\/10132.html\" rel=\"noopener\" target=\"_blank\">ISO 4287:1997<\/a> was withdrawn on 2021-12-20 and revised by ISO 21920-2:2021.<\/li>\n<li><a href=\"https:\/\/www.iso.org\/standard\/1916.html\" rel=\"noopener\" target=\"_blank\">ISO 3274:1996<\/a> was withdrawn on 2025-02-14 and revised by <a href=\"https:\/\/www.iso.org\/standard\/79673.html\" rel=\"noopener\" target=\"_blank\">ISO 25178-601:2025<\/a>. The former claim that ISO 21920 itself replaced and consolidated ISO 3274 was inaccurate.<\/li>\n<li><a href=\"https:\/\/nvlpubs.nist.gov\/nistpubs\/Legacy\/TN\/nbstechnicalnote1151.pdf\" rel=\"noopener\" target=\"_blank\">NBS Technical Note 1151<\/a>, section 2.4.1, printed pages 8\u20139: gives the equal-spacing discrete mean-absolute and RMS expressions and states that RMS is at least the mean absolute deviation. These general numerical relations do not implement ISO 21920.<\/li>\n<li><a href=\"https:\/\/www.ptb.de\/cms\/en\/ptb\/fachabteilungen\/abt5\/fb-51\/standards-and-guidelines-for-surface-metrology.html\" rel=\"noopener\" target=\"_blank\">PTB surface-metrology standards overview<\/a>: identifies ISO 21920-2 as the terms\/parameter part and ISO 21920-3 as the specification-operator part.<\/li>\n<\/ul>\n<p><strong>Classification:<\/strong> the arithmetic on this page is a general discrete screening calculation, not an \u201cISO formula calculator.\u201d Exact ISO 21920-2 parameter definitions and ISO 21920-3 default\/complete operator tables, limits and rules are <strong>NEEDS_LICENSED_SOURCE<\/strong> before any conforming implementation. No closed cutoff or evaluation-length table is reproduced or guessed.<\/p>\n<\/section>\n<p><\/main><\/p>\n<p><script>\n(function(){\n  'use strict';\n  var unitFactor={nm:0.001,um:1,mm:1000},unitLabel={nm:'nm',um:'\u00b5m',mm:'mm'};\n  var required=['sp-record','sp-source','sp-acquisition','sp-spacing','sp-operator','sp-filters','sp-lengths','sp-datum','sp-software','sp-analyst','sp-date'];\n  function byId(id){return document.getElementById(id);}\n  function kahan(values){var sum=0,c=0;for(var i=0;i<values.length;i++){var y=values[i]-c,t=sum+y;c=(t-sum)-y;sum=t;}return sum;}\n  function parseOrdinates(raw,unit){if(!unitFactor[unit])throw new Error('unit');var parts=String(raw).replace(\/\\r\/g,'').split(\/[\\n;]\/),tokens=[];for(var i=0;i<parts.length;i++){var t=parts[i].trim();if(t)tokens.push(t);}if(tokens.length<2||tokens.length>10000)throw new Error('count');var values=[],re=\/^-?(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/;for(var j=0;j<tokens.length;j++){if(tokens[j].length>40||!re.test(tokens[j]))throw new Error('format');var n=Number(tokens[j].replace(',','.'));if(!Number.isFinite(n))throw new Error('format');var um=n*unitFactor[unit];if(!Number.isFinite(um)||Math.abs(um)>1e12)throw new Error('range');values.push(Object.is(um,-0)?0:um);}return values;}\n  function compute(values){var n=values.length,mean=kahan(values)\/n,z=new Array(n),absValues=new Array(n),scale=0,min=Infinity,max=-Infinity;for(var i=0;i<n;i++){var d=values[i]-mean;if(Object.is(d,-0))d=0;z[i]=d;absValues[i]=Math.abs(d);if(absValues[i]>scale)scale=absValues[i];if(d<min)min=d;if(d>max)max=d;}var a=kahan(absValues)\/n,q=0;if(scale){var squares=new Array(n);for(var j=0;j<n;j++){var r=z[j]\/scale;squares[j]=r*r;}q=scale*Math.sqrt(kahan(squares)\/n);}var range=max-min,ratio=a===0?null:q\/a;return{count:n,mean:mean,a:a,q:q,ratio:ratio,min:min,max:max,range:range};}\n  function fmt(n){if(Object.is(n,-0))n=0;if(!Number.isFinite(n))return'\u2014';var a=Math.abs(n);if(a!==0&&(a>=1e9||a<1e-6))return n.toExponential(10).replace(\/\\.?0+e\/,'e');return new Intl.NumberFormat('en-US',{maximumSignificantDigits:12,useGrouping:true}).format(n);}\n  function clearResults(){byId('sp-output').dataset.visible='false';['count','mean','a','q','ratio','min','max','range'].forEach(function(x){byId('sp-r-'+x).textContent='\u2014';});byId('sp-r-boundary').textContent='';}\n  function fail(message,field){clearResults();var s=byId('sp-status');s.dataset.kind='error';s.textContent=message;if(field)field.focus();}\n  byId('sp-form').addEventListener('submit',function(ev){ev.preventDefault();var unit=byId('sp-unit').value;if(!unitFactor[unit]){fail('Select the common ordinate unit.',byId('sp-unit'));return;}var values;try{values=parseOrdinates(byId('sp-values').value,unit);}catch(e){var message=e.message==='count'?'Supply between 2 and 10,000 ordinates.':e.message==='format'?'Each ordinate must be one signed plain decimal per line or semicolon; scientific notation and grouping are not accepted.':e.message==='range'?'Every normalized ordinate must have magnitude no greater than 1e12 \u00b5m.':'Select the common ordinate unit.';fail(message,byId('sp-values'));return;}if(!\/^(R|P|W|other)$\/.test(byId('sp-profile').value)){fail('Select the controlled external profile classification.',byId('sp-profile'));return;}for(var i=0;i<required.length;i++){var f=byId(required[i]);if(!f.value.trim()){fail('Complete every required dataset and operator record field.',f);return;}}for(var c=1;c<=4;c++)if(!byId('sp-c'+c).checked){fail('Complete all four data-scope and decision-boundary confirmations.',byId('sp-c'+c));return;}var r=compute(values),displayFactor=1\/unitFactor[unit],label=unitLabel[unit];byId('sp-r-count').textContent=String(r.count);byId('sp-r-mean').textContent=fmt(r.mean*displayFactor)+' '+label;byId('sp-r-a').textContent=fmt(r.a*displayFactor)+' '+label;byId('sp-r-q').textContent=fmt(r.q*displayFactor)+' '+label;byId('sp-r-ratio').textContent=r.ratio===null?'undefined (A*=0)':fmt(r.ratio);byId('sp-r-min').textContent=fmt(r.min*displayFactor)+' '+label;byId('sp-r-max').textContent=fmt(r.max*displayFactor)+' '+label;byId('sp-r-range').textContent=fmt(r.range*displayFactor)+' '+label;byId('sp-r-boundary').textContent='Descriptive equal-weight statistics after removing the arithmetic mean. The result is not an ISO 21920 parameter determination, cutoff selection, uncertainty statement or conformance verdict.';byId('sp-output').dataset.visible='true';var s=byId('sp-status');s.dataset.kind='ok';s.textContent='Documented discrete profile statistics calculated.';byId('sp-output').scrollIntoView({behavior:'smooth',block:'start'});\n  });\n  byId('sp-reset').addEventListener('click',function(){byId('sp-form').reset();clearResults();var s=byId('sp-status');s.textContent='';s.dataset.kind='';byId('sp-values').focus();});clearResults();\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Calculate transparent discrete statistics from equally spaced profile ordinates without inferring ISO 21920 parameters, cutoff settings or conformance.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100250","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/hr\/wp-json\/wp\/v2\/calculator\/100250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/hr\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/hr\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":3,"href":"https:\/\/vibromera.eu\/hr\/wp-json\/wp\/v2\/calculator\/100250\/revisions"}],"predecessor-version":[{"id":102595,"href":"https:\/\/vibromera.eu\/hr\/wp-json\/wp\/v2\/calculator\/100250\/revisions\/102595"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/hr\/wp-json\/wp\/v2\/media?parent=100250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/hr\/wp-json\/wp\/v2\/categories?post=100250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/hr\/wp-json\/wp\/v2\/tags?post=100250"}],"curies":[{"name":"radni list","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}