polyline.rdp() function
polyline.rdp()
is experimental and subject to change at any time.
polyline.rdp()
applies the Ramer Douglas Peucker (RDP) algorithm to input data to downsample curves composed
of line segments into visually indistinguishable curves with fewer points.
Function type signature
(
<-tables: stream[A],
?epsilon: float,
?retention: float,
?timeColumn: string,
?valColumn: string,
) => stream[B] where A: Record, B: Record
Parameters
valColumn
Column with Y axis values of the given curve. Default is _value
.
timeColumn
Column with X axis values of the given curve. Default is _time
.
epsilon
Maximum tolerance value that determines the amount of compression.
Epsilon should be greater than 0.0
.
retention
Percentage of points to retain after downsampling.
Retention rate should be between 0.0
and 100.0
.
tables
Input data. Default is piped-forward data (<-
).
Examples
- Downsample data using the RDP algorithm
- Downsample data using the RDP algorithm with an epsilon of 1.5
- Downsample data using the RDP algorithm with a retention rate of 90%
Downsample data using the RDP algorithm
When using polyline.rdp()
, leave both epsilon
and retention
unspecified
to automatically calculate the maximum tolerance for producing a visually
indistinguishable curve.
import "experimental/polyline"
data
|> polyline.rdp()
Downsample data using the RDP algorithm with an epsilon of 1.5
import "experimental/polyline"
data
|> polyline.rdp(epsilon: 1.5)
Downsample data using the RDP algorithm with a retention rate of 90%
import "experimental/polyline"
data
|> polyline.rdp(retention: 90.0)
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.