UC5 — Graph-Based Classification of AIS Time-Series Data

Objectives

  • Understand how AIS vessel tracking data is structured

  • Learn why graph representations outperform flat time series for vessel classification

  • Compare three GNN architectures: GCN, GraphSAGE, GAT

  • See how the framework supports both CPU and GPU training

Repository: wp7-UC5-ais-classification-gnn Contributors: Xue-Cheng Tai, Gro Fonnes (NORCE Research)

The Problem

Maritime surveillance generates large volumes of Automatic Identification System (AIS) data — position, speed, heading, and identity for thousands of vessels. A key task is classifying vessel activities, particularly distinguishing fishing from non-fishing behavior, which matters for:

  • Fisheries management and quota enforcement

  • Environmental monitoring

  • Maritime safety

Traditional approaches use hand-crafted features and thresholds, but vessel movement patterns are complex and context-dependent.

Key Insight: Graphs Instead of Sequences

Instead of treating AIS data as a flat time series, UC5 transforms each vessel’s trajectory into a graph structure:

        graph LR
    subgraph "Traditional Approach"
        A[t1] --> B[t2] --> C[t3] --> D[t4] --> E[t5]
    end
    subgraph "UC5 Graph Approach"
        F((t1)) --- G((t2))
        F --- H((t3))
        G --- H
        G --- I((t4))
        H --- I
        I --- J((t5))
    end
    

Representation

Captures

Flat time series

Temporal order only

Graph structure

Spatial + temporal relationships between trajectory points

Nodes represent time steps. Edges encode spatial and temporal relationships between points. This richer representation captures patterns that flat sequences miss.

GNN Architectures

Three graph neural network architectures were evaluated:

Model

Architecture

Description

GCN

Graph Convolutional Network

Spectral-based graph convolutions

GraphSAGE (GSG)

Sample and Aggregate

Inductive representation learning

GAT

Graph Attention Network

Attention-weighted neighbor aggregation

All models are built on the Deep Graph Library (DGL) and support both CPU and GPU training with CUDA 11.8.

Results

Model

Test Accuracy

GCN

94.4%

GraphSAGE

94.4%

GAT

93.1%

GraphSAGE achieved the best performance at 94.4% test accuracy on fishing vs. non-fishing classification.

The key finding: representing AIS data as graphs instead of sequences mattered more than the choice of GNN architecture. The same idea applies to other domains with spatial-temporal data.

Framework Features

Feature

Details

Data pipeline

AIS CSV → graph construction → DGL dataset

Training

Configurable via YAML (model type, learning rate, epochs)

Evaluation

Accuracy, precision, recall, F1-score

GPU support

CUDA 11.8 with automatic fallback to CPU

Validation

Pydantic-based configuration validation

Quick Start

git clone https://github.com/NAICNO/wp7-UC5-ais-classification-gnn.git
cd graph-based-classification-of-ais-time-series-data
pip install -r requirements.txt
jupyter notebook demonstrator-v1.orchestrator.ipynb

Keypoints

  • AIS data tracks vessel position, speed, heading, and identity

  • Transforming trajectories into graphs captures spatial-temporal patterns flat time series miss

  • Three GNN architectures evaluated: GCN, GraphSAGE, GAT

  • GraphSAGE achieves 94.4% accuracy on fishing vs. non-fishing classification

  • Data representation mattered more than model architecture choice

  • Built on DGL with CPU and GPU (CUDA 11.8) support