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?
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
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[8];
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[1] = (float)(ra/(N));
rValues[0] = (float)(zStd);
//float Pq= rValues[0];
rValues[2] = (float)(sk/N);
rValues[3] = (float)((ku/N)-3);
rValues[4] = min;
rValues[5] = max;
rValues[6] = max-min;
rValues[7] = (float)(rc/(N));
return rValues;
}
1 Like
Hi phaub,
Thank you for providing details.
BR
Ahsan