simplifyXY: Simplify XY coordinates to minimal line segments

simplifyXYR Documentation

Simplify XY coordinates to minimal line segments

Description

Simplify XY coordinates to minimal line segments

Usage

simplifyXY(xy, minN = 3, restrictDegrees = NULL, ...)

Arguments

xy

numeric matrix of two columns x,y

minN

integer minimum number of consecutive points to cause compression to occur. It requires at least 3 points inherent to the algorithm.

restrictDegrees

numeric vector of allowed angles in degrees (range 0 to 360) of angles allowed to be compressed, when supplied all other angles will not be compressed.

...

additional arguments are ignored.

Details

This function takes a numeric matrix of x,y coordinates and returns the minimal matrix of x,y coordinates that represents the same line segments. It is intended in cases where there is a long repeated line segment that could be represented by far fewer points.

See Also

Other jam spatial functions: bgaPlotly3d(), compressPolygonM(), dfWide2segments(), spline3d()

Examples

xy <- cbind(
   x=c(1,1:15,1),
   y=c(0,0,0,0,1,2,3,4,5,5,5,5,6,0,0));
par("mfrow"=c(1,1));
plot(xy, cex=2);
points(simplifyXY(xy), pch=20, col="orange", cex=3);
points(simplifyXY(xy, restrictDegrees=c(0,180)), pch=17, col="purple");
legend("topleft", pch=c(1, 20, 17),# box.col="black", border="black",
   pt.cex=c(2, 3, 1),
   col=c("black", "orange", "purple"),
   legend=c("all points", "simplified points", "only simplified horizontal"));


jmw86069/jambio documentation built on April 21, 2024, 2:48 p.m.