 # Surface Roughness Measurement

Hi, I’m using the SurfCharJ 1q plug in to measure surface roughness. I used set scale so set my units to um, but I’m not sure what units the displayed R value results are in. I used set scale and changed to nanometer and got the same R values.
Can anyone help with this?

@david_od

I’m not familiar with this particular tool…

If you cannot find the answer on their website: https://www.gcsca.net/IJ/SurfCharJ.html - then I would advise contacting them directly… gch@gcsca.net

But if they provide an answer… it would be great if you could report back here for other users down-the-road. 1 Like

Hello @david_od ,

1 Like

On their website

you can find

``````LOCAL ROUGHNESS ANALYSIS Measure R-values on the whole surface gives roughness values  according to the ISO 4287/2000 standard:
·        Ra: Arithmetical mean deviation
·        Rq: Root mean square deviation
·        Rku: Kurtosis of the assessed profile
·        Rsk: Skewness of the assessed profile
·        Rv: Lowest valley
·        Rp: Highest peak
·        Rt: The total height of the profile
``````

I think this values are dimensionless.

The calculation can be found in `SurfCharJ_1q.java` available on the website.

``````	public float[] getRoughnessValues(ImageProcessor ipTemp){
int ww=ipTemp.getWidth();
int hh=ipTemp.getHeight();
int N = ww*hh;

float min = Float.MAX_VALUE;
float max = -Float.MAX_VALUE;
float[] rValues = new float;
float ra = 0, rq = 0, sk = 0, ku = 0, rc=0;
float zMean=calculateMean(ipTemp);
float zStd = calculateStd(ipTemp,zMean);

for (int y = 0; y < hh; y++){
for (int x = 0; x < ww; x++){
float temp = ipTemp.getPixelValue(x,y);
float zTemp=temp-zMean;
sk += sqr3(zTemp/zStd);
ku += sqr4(zTemp/zStd);
ra += Math.abs(zTemp);
rc += temp;
if (temp<min) min = temp;
if (temp>max) max = temp;
}
}
// Calculate Roughness stats (Ra, Rq, Rsk, Rku)
rValues = (float)(ra/(N));
rValues = (float)(zStd);
//float Pq= rValues;

rValues = (float)(sk/N);
rValues = (float)((ku/N)-3);
rValues = min;
rValues = max;
rValues = max-min;
rValues = (float)(rc/(N));

return rValues;
}
``````
1 Like