Cursor on Target (CoT) ist ein XML-basiertes Nachrichtenformat, das vom US Air Force Research Laboratory in den frühen 2000er Jahren entwickelt wurde, um ein spezifisches Problem zu lösen: Wie teilt man Position, Identität und Status eines Ziels oder einer Einheit zwischen heterogenen Militärsystemen, die nicht für Interoperabilität ausgelegt waren? Die Antwort war ein minimales, erweiterbares XML-Schema, das jedes System produzieren und konsumieren kann.

Zwei Jahrzehnte später ist CoT zum De-facto-Standard für Positionsmeldungen und Ereignisaustausch im taktischen Edge-Ökosystem geworden. ATAK, WinTAK, iTAK, TAK Server und Hunderte von Plugins sprechen CoT. Das FüInfoSysH der Bundeswehr nutzt CoT als Standard für die Integration taktischer Positionsdaten über Systemgrenzen hinweg.

XML-Struktur: Event-, Point- und Detail-Elemente

Eine CoT-Nachricht ist ein XML-Dokument mit einem einzelnen Wurzelelement: <event>. Jede CoT-Nachricht ist ein Ereignis, unabhängig davon ob es eine Positionsaktualisierung, einen Sensorbericht, eine Chatnachricht oder eine Missionsaufgabe beschreibt.

Ein minimaler CoT-Positionsbericht:

<event version="2.0"
       uid="BRAVO-1-KpFhr"
       type="a-f-G-U-C"
       how="m-g"
       time="2026-05-11T08:30:00.000Z"
       start="2026-05-11T08:30:00.000Z"
       stale="2026-05-11T08:31:00.000Z">
  <point lat="52.5200"
         lon="13.4050"
         hae="35.0"
         ce="10.0"
         le="5.0"/>
  <detail>
    <contact callsign="BRAVO-1-KpFhr"/>
    <group name="Blue" role="Team Leader"/>
    <track speed="0.0" course="90.0"/>
  </detail>
</event>

uid: Globally eindeutiger Bezeichner der Entität. Wird über alle Meldungen für dieselbe Entität aufrechterhalten.

type: Hierarchischer String, der die Entitätsklassifikation kodiert. a-f-G-U-C = Atom, feindlich, Boden, Einheit, Kampf. a-h-A = Atom, feindlich, Luft.

stale: Zeit, nach der der Bericht als veraltet gilt. Auf etwa 2× das erwartete Aktualisierungsintervall setzen.

point: Position der Entität in WGS84-Koordinaten. hae ist Höhe über WGS84-Ellipsoid in Metern (nicht MSL). ce und le sind kreisförmige und lineare Fehler in Metern.

CoT-Typen: Klassifikationshierarchie

a-f-G (Eigene Bodentruppe): Dargestellt mit blauem Rechteck gemäß MIL-STD-2525.

a-h-G (Feindliche Bodentruppe): Dargestellt mit rotem Diamant.

a-u-G (Unbekannte Bodenkontakt): Dargestellt mit gelbem Fragezeichen.

a-f-A (Eigenes Luftfahrzeug): Eigene UAVs, Hubschrauber und Flächenflugzeuge.

TAK Server: Routing, Filterung und Föderierung

TAK Server ist die serverseitige Komponente des TAK-Ökosystems. Er empfängt CoT-Nachrichten von verbundenen Clients und leitet sie basierend auf konfigurierbaren Regeln an andere Clients weiter.

Gruppen schränken ein, welche Clients welche Ereignisse sehen können. Föderierung verbindet mehrere TAK-Server-Instanzen — der Mechanismus, durch den Positionen niedrigerer Ebenen in COP-Systemen höherer Ebenen sichtbar werden. In Bundeswehr-Programmen ermöglicht die Föderierung die Integration von Bataillons-TAK-Servern mit Brigadeebene ohne direkte Client-Verbindungen.

Implementierung in Python: CoT parsen und generieren

Die pytak-Bibliothek bietet eine vollständige Implementierung der CoT-Ereignisgenerierung. Für das Parsen reicht Pythons Standard-xml.etree.ElementTree. Die Verbindung zu einem TAK Server über TCP erfordert eine TCP-Socket-Verbindung zum Port 8087 (oder TLS auf 8089) und das Schreiben des XML-Strings gefolgt von einem Null-Terminator-Byte. Die pytak-Bibliothek abstrahiert dies und unterstützt auch Multicast-UDP für lokale Netzwerkbereitstellungen.

Stale-Zeit-Leitfaden: Stale-Zeit auf etwa 2× das erwartete Aktualisierungsintervall setzen. Für einen dismounted Soldaten, der alle 30 Sekunden aktualisiert, sollte stale 60 Sekunden betragen. Eine zu lange Stale-Zeit führt dazu, dass Geisterspuren im Lagebild persistieren, nachdem eine Entität offline gegangen ist.