Technology & Architecture

Enterprise-grade infrastructure combining real-time satellite data, machine learning, and modern web technologies for polar maritime intelligence.

System Architecture

Three-tier architecture optimized for speed and scalability

Frontend Layer

React 18 • TypeScript • Mapbox GL JS • Vite

Interactive map-based interface with real-time updates via WebSocket. Click-to-draw route planning, vessel tracking, and ice data visualization. Mobile-optimized responsive design.

Backend Layer

FastAPI • Python 3.11+ • Uvicorn • Async/Await

RESTful API with WebSocket support for real-time streaming. Handles risk scoring, ice data processing, AIS vessel tracking, and Northwest Passage analysis.

Data Layer

PostgreSQL 15 • PostGIS • Redis • NSIDC Cache

Spatial database for route geometries and historical logs. Redis for session management and AIS caching. File-based cache for NSIDC GeoTIFF imagery.

Map Interface

Mapbox GL JS powers the interactive visualization with custom layers for ice concentration, risk heatmaps, and vessel positions.

Mapbox GL JS GeoJSON WebGL

Real-Time Streaming

WebSocket connections for live AIS data and continuous risk updates. Sub-second latency for vessel position updates.

WebSocket AISstream.io MMSI Filtering

Caching Layer

Multi-tier caching strategy reduces NSIDC queries by 90%. 1-hour TTL for ice data, 10-minute TTL for AIS positions.

Redis File Cache 90% Hit Rate

Spatial Database

PostGIS-enabled PostgreSQL for geographic queries, route geometry storage, and historical trend analysis.

PostgreSQL 15 PostGIS Spatial Indexing

Data Sources

Authoritative polar data from leading research institutions

🛰️ NSIDC (National Snow and Ice Data Center)

Primary source for ice concentration data from DMSP SSMIS and AMSR2 polar-orbiting satellites. Daily GeoTIFF imagery with global polar coverage.

Resolution
25km
Update Frequency
Daily
Processing Lag
2 days
Projection
EASE-Grid 2.0
Format
GeoTIFF
Coverage
Polar Regions

📡 AISstream.io

Live vessel position feed via WebSocket streaming. Global maritime traffic with filtering for polar regions (≥65°N, ≤-50°S). MMSI-based vessel identification.

Latency
<1 second
Protocol
WebSocket
Data Points
Position, Speed, Heading, Dest
Coverage
Global
Tracked Vessels
25+ Ice-Capable
Update Rate
Continuous

🔬 Synthetic Data

Development and testing datasets generated for scenarios where real data is unavailable. Clearly marked in API responses to ensure transparency. Used for model training augmentation.

Use Case
Development/Testing
Transparency
Flagged in Responses
Accuracy
Lower Confidence

Machine Learning Pipeline

PyTorch-powered risk prediction in under 2 seconds

1. Data Loading & Preprocessing

Load NSIDC GeoTIFF rasters, AIS vessel history, and environmental variables. Apply land masking and crop to route bounding box with 2° buffer.

bbox = calculate_route_bbox(waypoints, buffer=2.0) ice_raster = load_nsidc_geotiff(date=latest, bbox=bbox) ice_data = apply_land_mask(ice_raster)

2. Feature Engineering

Extract statistical features from spatial data including ice concentration metrics, edge proximity, temperature gradients, and vessel behavior patterns.

  • Ice concentration statistics (mean, max, min, variance)
  • Ice edge proximity calculations (normalized distance)
  • Sea surface temperature proxies
  • Vessel speed and heading change analysis
  • Spatial autocorrelation metrics

3. Model Inference

PyTorch feedforward neural network with multi-layer architecture. Input normalization to [-1, 1] range, dropout for regularization, sigmoid output for 0-1 risk score.

features = normalize_features(raw_features) with torch.no_grad(): risk_score = model(features) * 100 # Scale to 0-100 category = categorize_risk(risk_score) # low/moderate/high

4. Advisory Generation

Threshold-based categorization with context-aware recommendations. Vessel capability requirements determined by ice concentration and risk level.

  • Risk <40: Low risk, standard operations
  • Risk 40-70: Moderate risk, ice-class recommended
  • Risk >70: High risk, icebreaker escort advised
  • Ice >80%: Very heavy ice, icebreaker mandatory

5. Database Logging

Store prediction results in PostGIS database for historical analysis, trend detection, and model performance monitoring.

INSERT INTO risk_inference_logs (route_geom, risk_score, category, data_source, confidence_level, environmental_data, timestamp) VALUES (ST_GeomFromText(route_wkt), 62.3, 'moderate', 'nsidc', 'high', {...}, NOW())

API Endpoints

RESTful and WebSocket interfaces for developers

POST /risk

Calculate route risk score. Accepts array of coordinates, returns risk score (0-100), category, advisory, and environmental context.

GET /ships

List all tracked Arctic vessels with metadata including MMSI, name, type, ice class, and current position.

GET /vessel/{mmsi}/live

Get real-time position data for specific vessel by MMSI. Includes coordinates, speed, heading, and destination.

GET /ice-data

Fetch ice concentration GeoJSON for map visualization. Accepts bounding box parameter, returns cropped and transformed raster.

GET /northwest-passage/conditions

Analyze Northwest Passage traversability. Returns ice conditions for Northern/Southern routes, chokepoint status, and vessel requirements.

POST /follow_ship/{mmsi}

Start tracking specific vessel. Adds to follow-list persisted in Redis. Enables targeted notifications and alerts.

WebSocket /ws/ais

Live AIS stream for real-time vessel positions. Pushes updates as vessels move, filtered to polar regions.

WebSocket /ws/risk

Risk prediction stream with filtering by MMSI, risk range, or geographic bounding box. Continuous updates as conditions change.

View Full API Documentation

Deployment Architecture

Frontend (Vercel)

arcticrisk.me
Automatic deployment from Git with global CDN distribution. Environment variables for Mapbox token and API base URL.

Vercel CDN Auto-Deploy

Backend (Oracle Cloud)

api.arcticrisk.me
Ubuntu 22.04 VM with 2 OCPU, 8GB RAM. Nginx reverse proxy with SSL (Let's Encrypt). Systemd service for auto-start.

Ubuntu 22.04 Nginx SSL

Database (VM)

PostgreSQL 15 with PostGIS extension on same VM. Daily backups to cloud storage. Connection pooling for burst traffic.

PostgreSQL 15 PostGIS Daily Backups

Cache (Redis)

Redis 5.0+ for session management and AIS data caching. 10-minute TTL for vessel positions. Follow-list persistence.

Redis 5.0+ 10min TTL Session Mgmt

Build with Our API

Access Arctic Risk AI's powerful capabilities through our developer-friendly RESTful and WebSocket APIs.

API Documentation View Fleet Registry