Icebergs in Motion - TRAJECTORY SIMPLIFICATION AND VISUAL ANALYTICS OF MASSIVE GEOSPATIAL DATA
The project starts with historical iceberg tracking data collected from public and scientific sources. These records are parsed into consistent trajectories, cleaned, ordered in time, and enriched with metadata such as dates and identifiers. Because raw paths can contain thousands of points, several simplification and smoothing methods are applied to reduce visual clutter while retaining the essential shape and behavior of the movement. The result is an interactive web-based view that makes it easier to compare methods, tune parameters, and understand how different preprocessing choices affect the final trajectory. This project focuses on trajectory simplification and smoothing techniques for geospatial movement data, exemplified to iceberg tracking.
Check out the interactive iceberg trajectory visualization: Icebergs and source on GithubThis project combines trajectory simplification, smoothing, and visual analytics to turn raw movement data into clear, interactive, and meaningful representations.
Check out the tool here
Iceberg trajectories reflect the interaction between ocean currents, wind, and climate dynamics, offering a powerful lens into environmental change. At the same time, the data is complex: long, noisy paths that are difficult to visualize and interpret at scale.
Check out the tool here
Data source and parsing
Data source
The project uses historical iceberg trajectory records collected from external tracking datasets. In practical terms, the raw data consists of timestamped geographic positions for individual icebergs, often spread across many files or records. At a high level, each iceberg becomes a trajectory: an ordered sequence of longitude-latitude locations over time.
Parsing and preparation
Before the data can be visualized, it needs to be transformed into a consistent structure.
The parsing pipeline typically includes:
reading raw records from the source files
grouping positions by iceberg identifier
sorting each iceberg trajectory by date
converting positions into a clean coordinate array
extracting first and last observation dates
removing invalid or incomplete records when needed
preparing optional metadata for filtering, styling, and interaction
This process turns raw observational data into analysis-ready trajectories that can be rendered efficiently in the browser.
Simplification methods
Trajectory simplification reduces the number of points while preserving the overall shape of the path. This improves performance, reduces visual clutter, and makes patterns easier to interpret.
Ramer–Douglas–Peucker (RDP)
Removes intermediate points that fall within a distance threshold from the straight line between their neighbors.
UI parameter:
Epsilon (km) — maximum allowed deviation from the original path
How it works: The algorithm recursively keeps only points that contribute significantly to the global shape. Points that lie close to straight segments are removed.
What to expect:
small epsilon: very close to original path, minimal reduction
large epsilon: aggressive simplification, only major turns remain
Use when: You want to preserve the overall structure and major direction changes with strong data reduction.
Visvalingam–Whyatt
Iteratively removes points that contribute the least local area.
UI parameter:
Area threshold (km²) — minimum triangle area a point must contribute to be preserved
How it works: Each point forms a triangle with its neighbors. Points with the smallest area (least visual importance) are removed first.
What to expect:
low threshold: gentle simplification
high threshold: smoother, more generalized paths
Use when: You want visually smooth simplification that avoids sharp artifacts and preserves natural flow.
Smoothing methods
Smoothing adjusts point positions to reduce noise and small-scale jitter while preserving the overall trajectory trend.
Savitzky–Golay
Fits a polynomial over a sliding window to smooth the trajectory.
UI parameters:
Window size — number of neighboring points used for smoothing
Polynomial order — flexibility of the fitted curve
How it works: Instead of averaging points, the method fits a local polynomial, which better preserves peaks and curvature.
What to expect:
larger window: smoother, less detail
smaller window: retains local variation
higher order: more flexible fit, but can introduce artifacts if too high
Use when: You want to reduce noise while keeping the characteristic shape of the trajectory.
Kalman Filter
Uses a motion model to estimate the most likely trajectory.
UI parameters:
Measurement σ (km) — assumed noise in observed positions
Acceleration σ (km/day²) — how much the trajectory is allowed to change dynamically
How it works: The filter balances observed positions with a physical motion model (constant velocity with allowed acceleration). It produces a smoothed, physically plausible path.
What to expect:
higher measurement σ: smoother result, less trust in raw data
higher acceleration σ: more responsive to rapid direction changes
Use when: You want physically realistic smoothing that accounts for motion dynamics, not just geometry.
Beyond icebergs
Although this project is centered on iceberg movement, the same methods are broadly useful for other trajectory datasets: ships, vehicles, aircraft, animals, storms, pedestrians, and many more. Any domain that works with long, noisy, spatiotemporal paths faces the same challenge: how to reduce complexity without losing meaning. Icebergs provide a compelling and visually rich case study, but the underlying methods are general-purpose tools for trajectory analysis and visualization.
Final thought
This project shows that trajectory preprocessing is not just a technical optimization step. It directly shapes what people can see, compare, and understand in movement data. By combining clear visual design with simplification and smoothing techniques, the site turns large raw iceberg tracks into a more interpretable analytic experience. In that sense, the work is relevant not only to climate and polar data, but to trajectory-based analytics more broadly.

