Skip to main content

Smoothing & Objekt-Klassen-Filter

· 3 min read
Trajectory Trace Team
Entwicklungsteam

Smoothing

In unserer Verkehrsdatenplattform werden jetzt Trajektorien geschmeidig und sauber visualisiert, ohne dass die Rohdaten geändert werden oder neue Daten erzeugt werden. Dies geschieht maßgeblich im Backend für historische Daten, aber auch im Frontend für ein geschmeidiges Gleiten zwischen den Wegpunkten für historische und Live-Daten.

Im Ergebnis heißt das: weniger Rauschen, weniger redundante Punkte, flüssigere Bewegungen bei niedriger Frequenz und bessere Performance bei hoher Frequenz. Gleichzeitig kann weiterhin jederzeit zwischen Originaldaten und geglätteter Darstellung umgeschaltet werden.

Backend-Smoothing

Im Backend werden bei aktiviertem Smoothing zur Laufzeit (on-the-fly ohne permanente Datenerzeug) zusätzliche Prozessierungs-Schritte durchgeführt und per GraphQL dem Frontend zur Verfügung gestellt.

Zuerst entfernt suppress_micro_movements fiktive Mikrobewegungen, wie sie typischerweise durch Detektionsrauschen bei stationären Objekten entstehen. Dabei wird pro Objekt ein Positionsanker gehalten. Liegt ein neuer Messpunkt innerhalb einer Dead-Zone um diesen Anker und das Objekt wirkt stationär, wird die Position auf den Anker zurückgesetzt. So entstehen weder künstliche Bewegungen noch unnötige Heading-Rotationen. Die Logik ist geschwindigkeitsabhängig: bei velocity ≤ 0.3 m/s wird bei dist < 1.0 m gesnappt, bei velocity > 0.3 m/s nie, und wenn keine Geschwindigkeitsinformation vorliegt, bei dist < 2.0 m. Dieser Schritt läuft bewusst vor der Punktreduktion, damit spätere Heuristiken auf bereits bereinigten Positionsdaten arbeiten.

Danach folgt mit reduce_high_frequency_points eine adaptive Reduktion hochfrequenter Datensätze. Statt uniformem Downsampling bleiben Punkte dort erhalten, wo sich etwas Relevantes ändert – etwa bei Bewegungsstart, Bewegungsende oder Richtungsänderungen. In stationären oder geradlinigen Abschnitten werden dagegen redundante Punkte entfernt. Die effektiven Raten liegen bei 0.5 Hz für stationäre Segmente, 2 Hz für gerade Strecken mit heading Δ < 5° und 10 Hz für normale Bewegung. Dadurch bleibt die wesentliche Dynamik erhalten, während die Datenmenge teils deutlich sinkt.

Im letzten Schritt apply_smoothing wird die Trajektorie geometrisch geglättet. Dafür kombinieren wir Ramer-Douglas-Peucker zur Vereinfachung der Punktfolge mit Chaikin zur Glättung der resultierenden Geometrie. Das reduziert kleine Unsauberkeiten weiter und sorgt für ruhigere, konsistentere Verläufe.

Frontend-Smoothing

Smoothing Video

Ergänzend dazu gibt es jetzt auch eine Smoothing-Logik im Frontend. Für historische und Live-Daten werden automatisch zusätzliche Waypoints eingefügt, damit Objekte zwischen zwei Messpunkten nicht springen, sondern gleiten. Gerade bei niedrigfrequenten Datenquellen macht das einen deutlichen Unterschied, weil Bewegungen ohne Interpolation oft abgehackt wirken.

Zusätzlich wird auch das Heading im Frontend geglättet. Dadurch wirken Rotationen und Richtungswechsel ruhiger, besonders bei Daten mit wenigen Messpunkten oder leichtem Positionsrauschen. Im Ergebnis profitieren beide Seiten:

Die Darstellung für hochfrequente Datensätze wird performanter, für niedrigfrequente Datensätze wird sie flüssiger

Die geglättete Darstellung ist optional. Über einen neuen Smoothing-Toggle kann direkt zwischen Originaldaten und geglätteten Daten gewechselt werden: Smoothing Toggle

Weitere Änderungen

Die aktuellen Toggle-Einstellungen können nun in den Settings unter Visualization dauerhaft gespeichert werden: Store Toggles

Außerdem gibt es links nun Toggles für alle Verkehrsteilnehmerklassen. Klassen, die im gewählten Zeitraum nicht aktiv sind, werden automatisch grau dargestellt. Der Filter wirkt nicht nur auf die Karte, sondern auch auf das Histogramm. Im Bild sieht man beispielsweise, dass Autos aktuell deselektiert wurden.

Object Class TogglesObject Class Histogram
EFS Logo

© 2026 Trajectory Trace. All rights reserved.