Datteln-Hamm-Kanal

Real-time vessel tracking

Track vessel traffic on the Datteln-Hamm-Kanal in real time using AIS data from AISstream.io. Click a vessel for detailed information.

Vessels may take 1–2 minutes to appear, as AIS transponders broadcast position data only every few seconds to minutes. Only vessels with valid data within the bounding box are displayed.

Legend

Cargo vessel
Sports Boat / Sailboat
Tanker
Tugboat
📍 Canal endpoints
Connecting...
0
Vessels tracked
Waiting for vessel data...

Legend

Cargo vessel
Sports Boat / Sailboat
Tanker
Tugboat
📍 Canal endpoints

About the AIS Tracking System

The ship tracker uses the Automatic Identification System (AIS) to track vessel movements on the Datteln-Hamm-Kanal in real time. AIS transponders automatically broadcast position data, speed, course and further vessel information.

Data is collected via a global network of AIS receiving stations and provided through the WebSocket API of AISstream.io. This application visualises the data in real time on an interactive map based on OpenStreetMap.

Captured Data

  • Speed: In knots
  • Course: Heading in degrees
  • Vessel name: Registered name
  • MMSI: Unique identifier
  • Vessel type: Cargo, tanker, etc.
  • Call sign: Radio call sign
  • Destination: Port of destination

Technical Details

Data Source

  • Provider: AISstream.io
  • Technology: WebSocket API
  • Updates: Real-time
  • Coverage: Global AIS network
  • Filter: Bounding box DHK

Map Technology

  • Map engine: OpenLayers 8.2
  • Tiles: OpenStreetMap
  • Projection: Web Mercator
  • Interactive: Zoom, pan, click
  • Vessel icons: SVG with rotation

Coverage Area

  • Canal: Datteln-Hamm-Kanal
  • Length: ~47 km
  • Start: Datteln (51.65°N, 7.35°E)
  • End: Uentrop power plant (51.68°N, 7.97°E)
  • Bounding Box: 51.58-51.72°N, 7.20-8.05°E
  • Locks: Datteln, Henrichenburg, Hamm
  • Width: 12 m (navigable channel)

Backend

  • Server: Node.js + Express
  • WebSocket: ws library
  • Ping interval: 20 seconds
  • Message filter: Position + StaticData

Frontend

  • HTML5: Semantic markup
  • CSS3: Modern styling
  • JavaScript: Vanilla ES6+
  • Design: Design system
  • Responsive: Mobile optimised

Features

  • Live updates: Real-time positions
  • Automatic: No manual refresh needed
  • Detail view: Click on vessel
  • Data filter: Validated vessels only
  • Auto-cleanup: Stale data (>120 min)

Infrastructure

  • Hardware: Raspberry Pi 5
  • OS: Alpine Linux
  • Process manager: PM2
  • Auto-restart: PM2 crash recovery
  • Reverse proxy: lighttpd

Built by Sören Meier, 12/2025