Title: | The Ramer-Douglas-Peucker Algorithm |
Version: | 0.3.0 |
Description: | Pretty fast implementation of the Ramer-Douglas-Peucker algorithm for reducing the number of points on a 2D curve. Urs Ramer (1972), "An iterative procedure for the polygonal approximation of plane curves" <doi:10.1016/S0146-664X(72)80017-0>. David H. Douglas and Thomas K. Peucker (1973), "Algorithms for the Reduction of the Number of Points Required to Represent a Digitized Line or its Caricature" <doi:10.3138/FM57-6770-U75U-7727>. |
License: | GPL-3 |
URL: | https://github.com/robertdj/RDP |
Encoding: | UTF-8 |
RoxygenNote: | 7.2.1 |
LinkingTo: | Rcpp |
Imports: | Rcpp |
Suggests: | testthat, withr, zeallot |
NeedsCompilation: | yes |
Packaged: | 2023-07-05 21:57:55 UTC; robert |
Author: | Robert Dahl Jacobsen [aut, cre] |
Maintainer: | Robert Dahl Jacobsen <cran@dahl-jacobsen.dk> |
Repository: | CRAN |
Date/Publication: | 2023-07-05 22:13:04 UTC |
RDP
package
Description
Implementation of the Ramer-Douglas-Peucker algorithm.
Author(s)
Maintainer: Robert Dahl Jacobsen cran@dahl-jacobsen.dk
References
Urs Ramer (1972), "An iterative procedure for the polygonal approximation of plane curves". Computer Graphics and Image Processing 1, 244–256. doi:10.1016/S0146-664X(72)80017-0.
David H. Douglas and Thomas K. Peucker (1973), "Algorithms for the Reduction of the Number of Points Required to Represent a Digitized Line or its Caricature". Cartographica 10, 112–122. doi:10.3138/FM57-6770-U75U-7727.
See Also
Useful links:
Simplify a curve using the Ramer-Douglas-Peucker algorithm.
Description
Implements the Ramer-Douglas-Peucker algorithm for reducing the number of points on a curve.
Usage
RamerDouglasPeucker(x, y, epsilon, keep_index = FALSE)
Arguments
x |
|
y |
|
epsilon |
|
keep_index |
|
Details
If there are no more than two points it does not make sense to simplify.
In this case the input is returned without further checks of x
and y
.
In particular, the input is not checked for NA
values.
Value
A data.frame
with x
and y
values of the simplified curve.
Examples
RDP::RamerDouglasPeucker(x = c(0, 1, 3, 5), y = c(2, 1, 0, 1), epsilon = 0.5)
RDP::RamerDouglasPeucker(x = c(0, 1, 3, 5), y = c(2, 1, 0, 1), epsilon = 0.5, keep_index = TRUE)