library(geomorph)
data(ligophorus_tpsdata)
#A data processing step to parse out the orientation of landmarks
#from samples of L.parvicopulatrix
O <- matrix(0, length(ligophorus_tpsdata$parvicopulatrix), 4)
for(w in 1:length(ligophorus_tpsdata$parvicopulatrix)){
result <- mapply(function(k)
anglePolygon(matrix2list(ligophorus_tpsdata$parvicopulatrix[[w]][(11*(k-1)+1):(11*k),]),
degree=TRUE), k=1:4)
result_angle <- mapply(function(k) list(result[[2*k-1]]), k=1:4)
result_orientation <- mapply(function(k) list(result[[2*k]]), k=1:4)
names(result_angle) <- names(result_orientation) <- c("VR","VL","DR","DL")
O[w,] <- unlist(result_orientation)
}
mdir <- apply(O, 2, function(k) which(k == "m") )
pdir <- apply(O, 2, function(k) which(k == "p") )
e <- 1 #Ventral right anchor
result <- procrustesFit(ligophorus_tpsdata$parvicopulatrix, e,
list(mdir[[e]], pdir[[e]]), PrinAxes=TRUE, showplot=TRUE)
#Standardize the x-coordinate of Landmark 7 by rotating the x-coordinate
#of its mean GPA xy-coordinate to x=0.
coordinates <- stdLM(result$coords, reflect=FALSE, swap=TRUE, sgn=c(1,-1))
plotLM(coordinates, "VR", pointscale=0.8,axispointscale=0.8,
meansize=1.2,polygon.outline=TRUE,c(-.6,.6),c(-.6,.6) )
Run the code above in your browser using DataLab