Professional Documents
Culture Documents
Software measurement standards for areal surface texture parameters: part 1—algorithms
This content has been downloaded from IOPscience. Please scroll down to see the full text.
(http://iopscience.iop.org/0957-0233/23/10/105008)
View the table of contents for this issue, or go to the journal homepage for more
Download details:
IP Address: 132.239.1.231
This content was downloaded on 13/06/2017 at 15:23
Software measurement standards for areal surface texture parameters: part 2---comparison of
software
P M Harris, I M Smith, C Wang et al.
An analysis of type F2 software measurement standards for profile surface texture parameters
L D Todhunter, R K Leach, S D A Lawes et al.
Fast algorithm of the robust Gaussian regression filter for areal surface analysis
W Zeng, X Jiang and P J Scott
Abstract
Reference software for the evaluation of a set of areal surface texture parameters is described,
focusing on the definitions of the parameters and giving details of the numerical algorithms
employed in the software to implement those definitions. The main consideration in the design
and development of reference software is its numerical correctness, and the algorithms chosen
and the implementations of those algorithms reflect this consideration. The surface for which
parameters are to be evaluated is a bicubic spline interpolant to the available discretely-
sampled data, and parameters are evaluated for that continuous surface either to a high
numerical precision or to a numerical precision that is under the control of the user.
0957-0233/12/105008+11$33.00 1 © 2012 IOP Publishing Ltd Printed in the UK & the USA
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
software with those reported by proprietary software for notation Sq , etc, is used throughout to denote areal surface texture parameters
surface texture measurement. in place of the abbreviated terms Sq, etc, often used in practice.
2
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
(ii) For an S–F surface, the evaluation area [10, clause for i = 1 + nx , . . . , mx − nx , j = 1 + ny , . . . , my − ny , and
3.1.9], i.e. the area in the xy-plane used to specify the integers nx = λ/x and ny = λ/y . Finally, the S–L surface
portion of the surface under evaluation, is the rectangle derived from the S–F surface by Gaussian areal filtration is
[x1 , xmx ]×[y1 , ymy ] with sides of lengths Lx = (mx −1)x defined by surface heights ri j with
in the x-direction and Ly = (my − 1)y in the y-direction
ri j = zi j −wi j , i = 1+nx , . . . , mx −nx , j = 1+ny , . . . , my −ny .
containing the measured surface data.
(iii) For Gaussian areal filtering, the same cut-off wavelength
λ > 0 is applied in the x- and y-directions, with λ an 4. Evaluation area for an S–L surface
integer multiple of the sampling intervals x and y .
(iv) In order to minimize any distortion of the filtered surface Following application of a Gaussian areal filter, the S–L
due to the finite extent of the surface, the lengths Lx and surface is defined by surface heights ri j , i = 1 + nx , . . . ,
Ly are at least three times the cut-off wavelength; mx − nx , j = 1 + ny , . . . , my − ny , corresponding to points
(v) In order to minimize any distortion of the filtered surface (xi , y j ) in a rectangle with sides of lengths Lx − 2λ in the x-
due to the finite number of data points per cut-off direction and Ly − 2λ in the y-direction. In general, the lengths
wavelength, there should be at least fifty points per cut-off are not integer multiples of λ (section 2), and it is necessary to
wavelength in each direction. trim the data set (xi , y j , ri j ).
(vi) For an S–L surface, the evaluation area is a rectangle Consider first the x-direction. Let Hx = px λ, where px
with sides having lengths equal to integer multiples of is chosen to be the largest integer for which Hx Lx − 2λ.
λ that is contained within the rectangle obtained from Since λ = nx x for integer nx (section 3), Hx = px nx x .
the evaluation area for the corresponding S–F surface by Consequently, the length Lx − 2λ contains mx − 2nx points and
removing a border of width λ. The evaluation area for an the length Hx contains px nx + 1 points. Define
S–L surface is generally not uniquely defined. A particular
choice is made by requiring that it is the rectangle of rx = (mx − 2nx ) − (px nx + 1) = mx − (2 + px )nx − 1.
largest area having approximately the same centroid as If rx is even, then rx /2 points xi are removed from the left- and
the evaluation area for the corresponding S–F surface: see right-hand ends of the set xi , i = 1 + nx , . . . , mx − nx . If rx is
section 4. odd, then int(rx /2) points are removed from the left-hand end,
and int(rx /2) + 1 points from the right-hand end, where int(q)
3. Gaussian areal filter denotes the integer part of q.
Similar considerations apply to the y-direction. After
The Gaussian areal filter is defined by the weighting function removing points in this way, the resulting set of heights
2
1 ξ η 2 ri j defines the S–L surface for which areal surface texture
sx,y (ξ , η) = 2 2 exp −π −π , parameters are calculated. The corresponding set of points
α λ αλ αλ
(xi , y j ) defines the evaluation area for that S–L surface, which
with α = log 2/π , and λ denoting the cut-off wavelength is a rectangle with sides of lengths Hx in the x-direction and
in the x- and y-directions [20]. Given a continuous surface Hy in the y-direction having approximately the same centroid
z(x, y), the Gaussian filtered surface w(x, y) is defined by the as the evaluation area for the corresponding S–F surface. (The
convolution integral differences in the x- and y-directions between the centroids of
the two surfaces are bounded in absolute value by, respectively,
w(x, y) = z(ξ , η)sx,y (x − ξ , y − η) dξ dη.
the sampling intervals x and y .)
Due to the separability of the weighting function
w(x, y) = z(ξ , η)s(x − ξ ) dξ s(y − η) dη,
5. Surface interpolation
3
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
4
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
on the interval [−3, 1], i.e. it is identically zero outside that The two-dimensional integration (2) is expressed in terms of
interval [25]. Operations, such as evaluation, differentiation one-dimensional integrations as follows:
and integration, etc, applied to the interpolant Z(X, Y ) can be j+1
undertaken in terms of those operations applied to N4 (ξ ; μ4 ). q
Ii j = y J(Y ) dY,
For example, suppose X ∈ Ii and Y ∈ J j , where j
where
[i, i + 1), i = 0, . . . , mx − 3,
Ii =
[i, i + 1], i = mx − 2, i+1
J(Y ) = x F 2 (X, Y ) dX.
and i
[ j, j + 1), j = 0, . . . , my − 3, Since, for a fixed value of Y , and X in the interval [i, i + 1],
Jj =
[ j, j + 1], j = my − 2, F 2 (X, Y ) is a degree six polynomial function of X, so J(Y )
form subdivisions of, respectively, the intervals [0, mx −1] and can be evaluated exactly, either based on integrating F 2 (X, Y )
[0, my − 1]. Then, algebraically or using a numerical quadrature rule of sufficient
Z(X, Y ) = b4 (X − i; μ4 )Ci j b order. Similarly since, for Y in the interval [ j, j + 1], J(Y ) is
4 (Y − j; μ4 ), (1)
a degree six polynomial function of Y , so Iiqj can be evaluated
where exactly in a similar manner. An approach to constructing a
b4 (ξ ; μ4 ) = (N4 (ξ − 3; μ4 ), N4 (ξ − 2; μ4 ), numerical quadrature rule of sufficient order is to use Romberg
N4 (ξ − 1; μ4 ), N4 (ξ ; μ4 )) integration (see the appendix). For the rule to return exact
values, K = 3 refinement steps are necessary, giving a rule (for
contains values of N4 (ξ ; μ4 ), and Ci j is a sub-matrix of C
each univariate integration) involving 2K + 1 = 9 integration
of dimension 4 × 4 containing spline coefficients ci+k, j+ ,
points that is exact for polynomials of degree less than 8.
k = 1, . . . , 4, = 1, . . . , 4, associated with B-spline basis
It follows, cf expression (A.1), that
functions that have support in the intervals Ii and J j .
q
9 9
9
Ii j = y ω J(Y ) = y ω x ωk F (Xk , Y ) ,
2
6. Parameter evaluation =1 =1 k=1
In the following, f (x, y) ≡ z(x, y) for an S–F surface or where Xk and Y denote uniformly-spaced integration points
f (x, y) ≡ r(x, y) for an S–L surface. For both S–F and in the intervals [i, i + 1] and [ j, j + 1], respectively. In matrix
S–L surfaces, the function f (x, y) takes the form of a bicubic form,
spline surface over a definition area [10, clause 3.1.10], i.e. Iiqj = x y ωK=3 F qi j ω
K=3 , (3)
a portion of the evaluation area in the xy-plane for defining
surface texture parameters, which is denoted by A. For an where ωK=3 is the vector of dimension 1 × 9 of integration
S–F surface, the definition area equals its evaluation area. For weights ωk and F qi j is the matrix of dimension 9 × 9 containing
an S–L surface, it also generally equals its evaluation area. the values F 2 (Xk , Y ).
However, for certain field height parameters (viz, Sp , Sv and The value F (Xk , Y ) is given by, cf expression (1),
Sz ), the definition area is a square of side λ. Values for these
parameters are determined as the arithmetic mean of values F (Xk , Y ) = b4 (Xk − i; μ4 )Ci j b
4 (Y − j; μ4 ).
calculated over each definition area within the evaluation area. Since the distribution of integration points Xk in the interval
The definition area is expressed as the union of rectangular [i, i + 1] is the same as that for the integration points Y in
regions Ai j defined by the knots of f (x, y): [ j, j + 1], so the matrix F i j of dimension 9 × 9 given by
A= Ai j , Ai j ≡ [μx,i , μx,i+1 ] × [μy, j , μy, j+1 ]. F i j = B4,K=3Ci j B
4,K=3 , (4)
i, j
The function f (x, y) reduces to a (smooth) bicubic polynomial contains the value F (Xk , Y ) as its (k, ) element, where the kth
surface defined on each rectangular region Ai j . row of B4,K=3 is the vector b4 (Xk − i; μ4 ). F qi j is then defined
as the component-wise product of F i j with itself.
6.1. Root mean square height For a general matrix F and integer n, use the notation
F ◦ · · · ◦ F ≡ F ◦n
The parameter Sq [10, clause 4.1.1] is defined by
to denote the matrix obtained by multiplying n times each
1 1
Sq = f (x, y) dx dy =
2 Iq , element of F with itself. Then,
A (x,y)∈A A i, j i j
F qi j = F i j ◦ F i j ≡ F ◦2
ij , (5)
where μy, j+1 μx,i+1 and combining expressions (3), (4) and (5) gives
Iiqj = f 2 (x, y) dx dy = f 2 (x, y) dx dy. ◦2
(x,y)∈Ai j μy, j μx,i Iiqj = x y ωK=3 B4,K=3Ci j B
4,K=3 ωK=3 ,
In terms of normalized variables (section 5.3),
j+1 i+1 in which the vector ωK=3 of integration weights, and the
q
Ii j = x y F 2 (X, Y ) dX dY. (2) matrix B4,K=3 of cubic B-spline basis functions evaluated at
j i the integration points, can be pre-computed.
5
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
6.4. Maximum peak height Proceeding as for Sp (section 6.4), it holds [23] that
min f (x, y) cvi j ,
The parameter Sp [10, clause 4.1.4] is defined as the largest (x,y)∈Ai j
peak height: where cvi j is the minimum value of the coefficients ck ,
Sp = max f (x, y) = max Iipj , Iipj = max f (x, y). k = i + 1, . . . , i + 4, = j + 1, . . . , j + 4. It also holds
(x,y)∈A i, j (x,y)∈Ai j that
The approach taken to evaluating Sp is to rule out those f v min f (x, y),
rectangular regions Ai j in which the maximum peak height (x,y)∈A
cannot occur, determine values Iipj by constrained optimization where f v is the minimum value of the surface heights fk
for the Ai j remaining, and evaluate the greatest of those values. contained in A. It follows that if
For the rectangular region Ai j , the cubic spline
cvi j > f v ,
surface f (x, y) is defined by the B-spline coefficients ck ,
6
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
the minimum value of f (x, y) on Ai j is calculated in terms of Small values of the numerical tolerance generally lead to more
the solution to the linearly constrained minimization problem refinement steps and a longer calculation time, but a value with
a greater numerical precision. In order to limit calculation
min F (X, Y ) subject to i X i + 1, j Y j + 1,
(X,Y ) times, approximations Iiaj (K) to Iiaj (K) for (i, j) ∈ G2 are
cf section 6.4. evaluated for a sequence of values of K up to a maximum
value Kmax . If the relative difference between Sa (Kmax ) and
Sa (Kmax − 1) exceeds
a , then the value Sa (Kmax ) is returned
6.6. Maximum height for Sa together with the corresponding relative difference as
The parameter Sz [10, clause 4.1.6] is defined as the sum of an indication of its numerical precision.
the maximum peak and maximum pit heights:
6.8. Autocorrelation length
Sz = Sp + Sv ,
The parameter Sal [10, clause 4.2.1] is defined by
using the values obtained in sections 6.4 and 6.5. $
Sal = min tx2 + ty2 ,
(tx ,ty )∈R
6.7. Arithmetical mean height
where
The parameter Sa [10, clause 4.1.7] is defined by
R = {(tx , ty ) : ρ(tx , ty ) s}
1
Sa = | f (x, y)| dx dy. and ρ(tx , ty ), the autocorrelation function, is defined by
A (x,y)∈A %
(x,y)∈A f (x, y) f (x − tx , y − ty ) dx dy
Proceeding as for Sq (section 6.1), ρ(tx , ty ) = % (7)
1 a (x,y)∈A f (x, y) f (x, y) dx dy
Sa = I , in terms of ‘lags’ tx in the x-direction and ty in the y-direction.
A i, j i j
For an S–F surface, −Lx tx Lx and −Ly ty Ly ; for an
where S–L surface, −Hx tx Hx and −Hy ty Hy . The value
j+1 i+1 0 < s < 1 is set by the user; the default value is s = 0.2.
Iiaj = x y |F (X, Y )| dX dY. The parameter Sal is calculated as the solution to the
j i
nonlinearly constrained minimization problem
Using Romberg integration with K > 0 refinement steps, $
min tx2 + ty2 subject to ρ(tx , ty ) − s = 0. (8)
Iiaj (K) = x y ωK B4,K Ci j B
Iiaj ≈
4,K ωK , (tx ,ty )
where ωK is a vector of dimension 1 × (2K + 1) of integration The minimization problem and its solution is described here
weights, B4,K is a matrix of dimension (2K + 1) × 4 containing in terms of unnormalized variables but, as for the other surface
the values of the cubic B-spline basis functions at the texture parameters, calculations are performed in terms of
integration points, and |F| denotes the matrix whose elements normalized variables: see section 5.3. Since ρ(0, 0) = 1 and
are the absolute values of the elements of F. ρ(±Lx , ±Ly ) = 0 (for an S–F surface), and by the continuity
The rectangular regions Ai j are divided into two groups. of the function ρ(tx , ty ) when f (x, y) takes the form of a
For those in the first group, defined by indices (i, j) ∈ G1 , (continuous) bicubic spline surface, it can be expected that the
F (X, Y ) 0 or F (X, Y ) 0 for all (X, Y ) ∈ [i, i + 1] × constraint ρ(tx , ty ) s is active at a solution and, consequently,
[ j, j+1], and |F (X, Y )| takes the form of a bicubic polynomial can be treated as an equality constraint. Problem (8) can be
surface. It follows that solved using a general-purpose optimization algorithm, for
example [30–32]. It is required to supply:
Iiaj =
Iiaj (1), (i, j) ∈ G1 .
(i) A function to evaluate for given values of tx and ty the
For those in the second group, defined by indices (i, j) ∈ G2 , objective function
F (X, Y ) takes positive and negative values in [i, i+1]×[ j, j + $
1], and |F (X, Y )| is not a smooth (polynomial) surface. It S(tx , ty ) = tx2 + ty2 ,
follows that no choice of K is guaranteed to return the exact and its gradient vector with components
value of Iiaj for (i, j) ∈ G2 . Instead, for those rectangular
∂S(tx , ty ) tx ∂S(tx , ty ) ty
regions, approximations Iiaj (K) to Iiaj are evaluated for a = , = .
∂tx S(tx , ty ) ∂ty S(tx , ty )
sequence of increasing values of K until the relative difference
7
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
(ii) A function to evaluate for given values of tx and ty the Step 1. Evaluate the sample autocorrelation matrix R for
nonlinear constraint function the matrix F of surface heights fi j .
c(tx , ty ) = ρ(tx , ty ) − s. Step 2. Determine from R contours corresponding to the
value s of the autocorrelation function, and identify the contour
Consideration is given to the evaluation of the that encloses the (central) element of R with value one and is
autocorrelation function ρ(tx , ty ). Firstly, since closest to that element. (The contours are defined by the x- and
ρ(−tx , −ty ) = ρ(tx , ty ), y-coordinates of points that are regarded as connected.)
Step 3. Determine the point on the identified contour that
it is only necessary to consider values for tx and ty within a half- is closest to the (central) element of R with value 1.
plane, e.g., that defined by tx 0. Secondly, the denominator A numerical tolerance is set that controls the termination
in the expression (7) is equal to A × Sq2 (section 6.1). It remains of the optimization algorithm. Small values of the numerical
to consider the evaluation of the numerator in expression (7). tolerance generally lead to more iterations in the optimization
As in section 6.1, the numerator can be decomposed as algorithm and a longer calculation time, but a solution with a
f (x, y) f (x − tx , y − ty ) dx dy = Iialj , greater numerical precision. The determination of a solution
(x,y)∈A i, j
to problem (8) can be difficult because the contours of the
constraint function c(tx , ty ) can be quite complicated, and they
where
can vary greatly for different surfaces. It follows that a large
Iialj = f (x, y) f (x − tx , y − ty ) dx dy number of iterations in the optimization algorithm can be
(x,y)∈A necessary to determine a solution. In order to limit calculation
μy, j+1 i j μx,i+1
times, a maximum number of iterations is set, and if that
= f (x, y) f (x − tx , y − ty ) dx dy. number is exceeded, the optimization algorithm terminates
μy, j μx,i
and the initial approximation (based on the data only) is used
However, unlike the treatment given in section 6.1, the to provide a solution.
integrand is not generally a bicubic polynomial surface over
the rectangular region Ai j , except when tx and ty are integer
6.9. Texture aspect ratio
multiples of, respectively, x and y . It is necessary to further
decompose Iialj as The parameter Str [10, clause 4.2.2] is defined by
4
$
min(tx ,ty )∈R tx2 + ty2
Ii j =
al
f (x, y) f (x − tx , y − ty ) dx dy, Str = $ ,
(x,y)∈Ai jk
k=1 max(tx ,ty )∈Q tx2 + ty2
where
where
Ai j = Ai jk .
k=1,...,4 R = {(tx , ty ) : ρ(tx , ty ) s}
Here,
⎧ and
⎪ [μx,i , μx,i + δx ] × [μy, j , μy, j + δy ], k = 1,
⎪
⎪ Q = {(tx , ty ) : ρ(tx , ty ) s}.
⎨ [μx,i + δx , μx,i+1 ] × [μy, j , μy, j + δy ], k = 2,
Ai jk =
⎪
⎪[μx,i , μx,i + δx ] × [μy, j + δy , μy, j+1 ], k = 3, The function ρ(tx , ty ) is defined by expression (7). The value
⎪
⎩ 0 < s < 1 is set by the user; the default value is s = 0.2.
[μx,i + δx , μx,i+1 ] × [μy, j + δy , μy, j+1 ], k = 4,
The parameter Str is calculated in terms of the solution to
where
* + * + the nonlinearly constrained minimization problem (8) together
tx ty with the solution to the problem
δx = tx − , δy = t y − ,
x y $
and z is z rounded to the nearest integer towards zero. min − tx2 + ty2 subject to ρ(tx , ty ) − s = 0.
(tx ,ty )
Over each region Ai jk , the integrand takes the form of a
bicubic polynomial surface, and the integration over that region An initial approximation to the solution is determined as in
can be evaluated exactly (as in section 6.1) using Romberg section 6.8 for the evaluation of the autocorrelation length,
integration with K = 3 refinement steps. However, unlike except that step 3 is replaced by:
the treatment given in section 6.1, as the one-dimensional Step 3. Determine the point on the identified contour that
integrations are undertaken over intervals with lengths that is furthest from the (central) element of R with value 1.
are different from x and y , the vector ωK=3 of integration
weights and the matrix B4,K=3 of cubic B-spline basis functions 6.10. Root mean square gradient
evaluated at the integration points, cannot be pre-computed.
Instead, since the intervals have lengths that depend on tx and ty , The parameter Sdq [10, clause 4.3.1] is defined by
integration weights and B-spline basis function values must be
1
computed for each evaluation of the autocorrelation function. ∂ f (x, y) 2 ∂ f (x, y) 2
Sdq = + dx dy.
An initial approximation to the solution to problem (8) is A (x,y)∈A ∂x ∂y
determined as follows:
8
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
9
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
10
Meas. Sci. Technol. 23 (2012) 105008 P M Harris et al
[9] ISO 4287:2000 Geometrical product specification [20] Zeng W, Jiang X and Scott P J 2010 Fast algorithm of the
(GPS)—Surface texture: profile method—Terms, definitions robust Gaussian regression filter for areal surface analysis
and surface texture parameters (Geneva: International Meas. Sci. Technol. 21 055108
Organization for Standardization) [21] ISO 16610-21:2011 Geometrical product specification
[10] ISO 25178-2:2012 Geometrical product specification (GPS)—Filtration—Part 21: linear profile filters: Gaussian
(GPS)—Surface texture: areal—Part 2: terms, definitions filters (Geneva: International Organization for
and surface texture parameters (Geneva: International Standardization)
Organization for Standardization) [22] Akima H 1970 A new method of interpolation and smooth
[11] Bui S H, Renegar T B, Vorburger T V, Raja J curve fitting based on local procedures J. Appl. Comput.
and Malburg M C 2004 Internet-based surface metrology Math. 17 589–602
algorithm testing system Wear 257 1213–8 [23] de Boor C 1978 A Practical Guide to Splines (New York:
[12] Bui S H and Vorburger T V 2007 Surface metrology algorithm Springer)
testing system Precis. Eng. 31 218–25 [24] Cox M G 1993 Algorithms for spline curves and surfaces
[13] Jung L, Spranger B, Krüger-Sehm R and Krystek M 2004 Fundamental Developments of Computer-Aided Geometric
Reference software for roughness analysis—features and Modelling ed L Piegl (London: Academic) 51–76
results Proc. 11th Int. Colloq. Surfaces (Chemnitz, [25] Cox M G 1972 The numerical evaluation of B-splines J. Inst.
Germany) pp 164–70 Math. Appl. 10 134–49
[14] Li T, Leach R K, Jung L, Jiang X and Blunt L A 2009 [26] de Boor C 1972 On calculating with B-splines J. Approx.
Comparison of type F2 software measurement standards for Theory 6 50–62
surface texture Technical Report ENG 16 (Teddington, UK: [27] Cox M G 1978 The numerical evaluation of a spline from its
National Physical Laboratory) B-spline representation J. Inst. Math. Appl. 21 135–43
[15] Leach R, Li T, Jiang X, Blunt L and Giusca C 2010 [28] Schoenberg I J and Whitney A 1953 On Pólya frequency
Comparison of commercial software packages for distributions III Trans. Am. Math. 74 246–59
calculating surface texture parameters Proc. Euspen Int. [29] Boehm W 1980 Inserting new knots into B-spline curves
Conf. (Delft) pp 87–90 Comput. Aided Des. 12 199–201
[16] Leach R and Haitjema H 2010 Bandwidth characteristics and [30] The MathWorks Inc. The MATLAB Optimization ToolboxTM
comparisons of surface texture measuring instruments Users Guide (Natick, MA)
Meas. Sci. Technol. 21 032001 [31] Numerical Algorithms Group NAG Library Manual (Oxford,
[17] Harris P M, Smith I M, Wang C, Giusca C and Leach R K UK)
2012 Software measurement standards for areal surface [32] Wächter A and Biegler L T 2006 On the implementation of a
texture parameters: part 2—comparison of software Meas. primal-dual interior point filter line search algorithm for
Sci. Technol. 23 105009 large-scale nonlinear programming Math. Program.
[18] ISO/DIS 25178-72 Geometrical product specification 106 25–57
(GPS)—Surface texture: areal—Part 72: XML file format [33] Romberg W 1955 Vereinfachte numerische Integration Det K.
X3P (Geneva: International Organization for Nor. Vidensk. Selsk. Forh. 28 30–6
Standardization) [34] Press W H, Flannery B P, Teukolsky S A and Vetterling W T
[19] Wiora G and Seewig J 2010 Free interchange of 3D measuring 1992 Numerical Recipes in FORTRAN: The Art of Scientific
data: X3P —a flexible, system-independent open source Computing 2nd edn (Cambridge: Cambridge University
data format Inspect 11 16–7 Press)
11