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 <keithp@keithp.com>
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) {
return f;
}
+ public AltosTimeSeries clip(AltosTimeSeries clip, double min, double max) {
+ for (AltosTimeValue v: values) {
+ double value = v.value;
+ if (value < min) value = min;
+ if (value > max) value = max;
+ clip.add(v.time, value);
+ }
+ return clip;
+ }
+
public AltosTimeSeries(String label, AltosUnits units) {
this.label = label;
this.units = units;