efourier_norm
normalizes Fourier coefficients for rotation,
tranlation, size and orientation of the first ellipse.
efourier_norm(ef, start = FALSE)
list
. A list containing $a_n$, $b_n$, $c_n$ and
$d_n$ Fourier coefficients, such as returned by efourier
.logical
. Whether to conserve the position of the first
point of the outline.A
vector of $A_{1->n}$ normalized harmonic coefficients
B
vector of $B_{1->n}$ normalized harmonic coefficients
C
vector of $C_{1->n}$ normalized harmonic coefficients
D
vector of $D_{1->n}$ normalized harmonic coefficients
size
Magnitude of the semi-major axis of the first
fitting ellipse
theta
angle, in radians, between the starting
point and the semi-major axis of the first fitting ellipse
ao
ao harmonic coefficient
co
co Harmonic coefficient
lnef
a list with A, B, C and D concatenated in a vector.
Sometimes shapes do not 'align' well each others, and this is usually detectable
on a morphospace on a regular PCA. You mat find 180 degrees rotated shapes or bizarre clustering.
Most of the time this is due to a poor normalization on the matrix of coefficients, and the
variability you observe may mostly be due to the variability in the alignment of the
'first' ellipsis which is defined by the first harmonic, used for the normalization. In that
case, you should align shapes before efourier and with norm = FALSE
. You
have several options: coo_align, coo_aligncalliper, fgProcrustes either directly on
the coordinates or on some landmarks along the outline or elsewhere on your original shape, depending of
what shall provide a good alignment. Have a look to Momocs' vignette for some illustration of these pitfalls
and how to manage them.
Ferson S, Rohlf FJ, Koehn RK. 1985. Measuring shape variation of two-dimensional outlines. Systematic Biology 34: 59-68.
efourier_i
,
efourier_shape
, efourier
data(bot)
q <- efourier(bot[1], 24)
efourier_i(q) # equivalent to efourier_shape(q$an, q$bn, q$cn, q$dn)
efourier_norm(q)
efourier_shape(nb.h=5, alpha=1.2)
efourier_shape(nb.h=12, alpha=0.9)
Run the code above in your browser using DataLab