GC.OS Logo
GC.OS Brandmark

pykalman

pykalman ist eine Open-Source-Python-Bibliothek für Kalman-Filter, Glättung und Zustandsraummodelle.

Zurück zu Projekten

pykalman ist eine schlanke Open-Source-Python-Bibliothek für Kalman-Filterung, Kalman-Glättung und Zustandsschätzung in Zeitreihen. Sie stellt effiziente Algorithmen für lineare und nichtlineare dynamische Systeme bereit und eignet sich für sequenzielle Datenmodellierung und Parameterschätzung.

Die Bibliothek ist bewusst einfach gehalten und richtet sich sowohl an Anwender in Praxis und Forschung als auch an Lernende, die Zustandsraummodelle verstehen und einsetzen möchten.

Zielsetzung

Viele Anwendungen erfordern eine robuste Schätzung verborgener Zustände aus verrauschten Messdaten – etwa in Signalverarbeitung, Zeitreihenanalyse oder Regelungstechnik. pykalman wurde entwickelt, um diese Aufgaben mit einer klaren, leicht verständlichen API und bewährten mathematischen Verfahren zu lösen.

Der Fokus liegt auf Einfachheit, Zuverlässigkeit und reproduzierbaren Ergebnissen.

Zentrale Merkmale

  • Kalman Filter für lineare Zustandsraummodelle

  • Kalman Smoother zur rückwärtsgerichteten Zustandsschätzung

  • Unscented Kalman Filter für nichtlineare Dynamiken

  • EM-Algorithmus zur Parameterschätzung

  • Unterstützung fehlender Messwerte

  • Online- und sequentielle Zustandsschätzung

  • Numerisch robuste Square-Root-Filter

Lineare Zustandsraummodelle

Kalman Filter

Der klassische Kalman Filter ermöglicht die rekursive Schätzung von Zuständen in linearen dynamischen Systemen mit Gaußschem Rauschen.

Kalman Smoother

Zusätzlich zur Vorwärtsfilterung erlaubt der Kalman Smoother eine verbesserte Zustandsschätzung durch Nutzung zukünftiger Beobachtungen.

Parameterschätzung

EM-Algorithmus

pykalman integriert den Expectation-Maximization-Algorithmus, um Modellparameter automatisch aus beobachteten Daten zu lernen. Dies erleichtert die Anwendung in realen Szenarien, in denen Systemparameter unbekannt sind.

Nichtlineare Modelle

Unscented Kalman Filter

Für nichtlineare Übergangs- oder Beobachtungsfunktionen unterstützt pykalman den Unscented Kalman Filter, der nichtlineare Effekte besser approximiert als lineare Ansätze.

Fehlende Daten und Online-Schätzung

Umgang mit fehlenden Messwerten

Die Bibliothek unterstützt explizit fehlende oder maskierte Beobachtungen und bleibt auch bei unvollständigen Zeitreihen stabil.

Online State Estimation

pykalman erlaubt inkrementelle Updates der Zustandsschätzung, wodurch es für Streaming-Daten und Echtzeitanwendungen geeignet ist.

Numerische Stabilität

Square-Root-Filter

Für erhöhte numerische Robustheit stehen Square-Root-Varianten wie der Cholesky Kalman Filter zur Verfügung, die besonders bei langen Zeitreihen oder schlecht konditionierten Problemen Vorteile bieten.

Einsatzgebiete

  • Zeitreihenanalyse und Signalverarbeitung

  • Zustands- und Trajektorienschätzung

  • Dynamische Systeme und Regelungstechnik

  • Tracking- und Sensordatenfusion

  • Forschung, Lehre und Prototyping

Open Source

pykalman ist freie Open-Source-Software und steht unter der BSD 3-Clause License. Die Bibliothek wurde ursprünglich von Daniel Duckworth entwickelt und wird heute von einer aktiven Community weiter gepflegt.

GC.OS unterstützt pykalman als Open-Source-Projekt für transparente, robuste und mathematisch fundierte Zustands- und Zeitreihenmodellierung.