From: Keith Packard Date: Sat, 17 Oct 2020 22:29:11 +0000 (-0700) Subject: altoslib: Clip accelerometer-based speed to >= 0 X-Git-Tag: 1.9.6~1^2~6 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=c507e143aac0bc251b02bbe3c812bf81b7026ff7 altoslib: Clip accelerometer-based speed to >= 0 Negative vertical speeds computed by axial acceleration aren't sensible, so just clip them to zero so that plots are more useful. Signed-off-by: Keith Packard --- diff --git a/altoslib/AltosFlightSeries.java b/altoslib/AltosFlightSeries.java index 38256f0e..d9d59f1b 100644 --- a/altoslib/AltosFlightSeries.java +++ b/altoslib/AltosFlightSeries.java @@ -348,8 +348,12 @@ public class AltosFlightSeries extends AltosDataListener { else accel_series.integrate(temp_series); + AltosTimeSeries clip_series = make_series(speed_name, AltosConvert.speed); + + temp_series.clip(clip_series, 0, Double.POSITIVE_INFINITY); + accel_speed_series = make_series(speed_name, AltosConvert.speed); - temp_series.filter(accel_speed_series, 0.1); + clip_series.filter(accel_speed_series, 0.1); } if (alt_speed_series != null && accel_speed_series != null) { diff --git a/altoslib/AltosTimeSeries.java b/altoslib/AltosTimeSeries.java index 80720f15..d12fbe70 100644 --- a/altoslib/AltosTimeSeries.java +++ b/altoslib/AltosTimeSeries.java @@ -342,6 +342,16 @@ public class AltosTimeSeries implements Iterable, Comparable max) value = max; + clip.add(v.time, value); + } + return clip; + } + public AltosTimeSeries(String label, AltosUnits units) { this.label = label; this.units = units;