Anomalie-Engine: AIS-Treffen live erkennen
Ein internes Forschungsprodukt, das Live-AIS-Schiffsdaten mit Geohash-Zellen-Clustering und einer Graphdatenbank verfolgt und unerwartete Näherungs- und Treffen-Ereignisse meldet.
Herausforderung
Maritime AIS-Feeds liefern einen ständigen Strom von Schiffspositionsmeldungen. Ein relevantes Ereignis in diesem Strom zu erkennen, zwei Schiffe treffen sich auf See, ohne dass eines im Hafen liegt, ist ein Suchproblem, kein Dashboard-Problem. Wir haben in einem eigenen Forschungsprojekt, nicht im Kundenauftrag, getestet, ob sich diese Art von Treffen und Näherungsanomalie nahezu in Echtzeit erkennen lässt.
Die eigentliche Schwierigkeit war der Maßstab. Jedes Schiff bei jedem Update gegen jedes andere zu vergleichen, bleibt nicht schnell, wenn die Flotte wächst.
Lösung
Wir haben die Ingest- und Verarbeitungspipeline auf Java 21 und Spring WebFlux gebaut, die Live-AIS-Updates über Kafka streamt. Schiffspositionen werden Geohash-Zellen zugeordnet, sodass Näherungsprüfungen nur gegen nahegelegene Schiffe laufen, nicht gegen die gesamte Flotte. Ein Neo4j-Graph speichert die Beziehungen zwischen Schiffen, sodass sich ein Treffen-Muster über mehrere Begegnungen hinweg verfolgen lässt, nicht nur als Momentaufnahme.
- Kafka-basiertes Streaming-Ingest von Live-AIS-Daten
- Geohash-Zellen-Clustering, das Näherungsvergleiche begrenzt
- Neo4j-Graphmodell zur Verfolgung von Mehrfachbegegnungen zwischen Schiffen
- Reaktive Verarbeitungspipeline auf Spring WebFlux
Ergebnis
Die Engine verarbeitet Live-AIS-Ströme und meldet Näherungs- und Treffen-Ereignisse zwischen Schiffen, sobald sie auftreten. Der Geohash-Zellen-Ansatz hält die Vergleiche begrenzt, auch wenn das Schiffsvolumen wächst. Sie läuft als internes Forschungsprodukt, nicht an einen Kundenauftrag gebunden.
Galerie
Projektdaten
- Auftraggeber
- Koddata R&D
- Standort
- Denizli, Türkiye
- Technologien
- Java 21, Spring WebFlux, Kafka, Neo4j, Docker
- Fertigstellung
- 04/2026
- Kategorie
- Daten & KI