Technical documentation
Introduction
This page provides technical details about the GEM architecture, data formats, and system components for developers and technical users.
System architecture
GEM consists of several integrated components:
GEM dashboard application (UI)
- Framework: Web-based interactive interface
- Deployment: Hosted on Dashboard (my.tomtom.com/gem)
- Authentication: Microsoft Entra ID (Azure AD)
- Authorization: Role-based access control
Backend services
- Map Matching Engine: Advanced algorithms for road network matching
- Pipeline Orchestration: Automated job processing and management
- Job Management: Status tracking and results generation
- Storage: Secure cloud storage for data management
Authorization and security
Access control
GEM uses role-based access control for secure operations:
Permission Levels:
| Permission | Capabilities |
|---|---|
READ | • View job run data • Download results |
READ_WRITE | • All Read Access permissions • Trigger new job runs • Upload data to storage |
Resource Authorization:
- Job runs: Users can only access their own jobs
- Storage: Access controlled by your organization's permissions
- Credentials: Temporary, scoped to specific operations
Authentication flow
- User Authentication: Microsoft Entra ID via Dashboard
- Storage Authorization: System validates storage access
- Credential Generation: Temporary tokens for Azure CLI
Performance metrics
System performance
Based on production metrics:
- Uptime: ≥99% (continuously monitored)
- Processing Speed: ~100,000 road segments matched per hour
- Matching Accuracy: >85% confidence scores for high-quality input data
- System Availability: Deployed on production cluster with Helm
Performance monitoring
Performance is continuously monitored to ensure:
- High system uptime
- Fast job execution
- Accurate matching results
- Minimal errors
Metrics tracked:
- System uptime
- Job execution time
- Matching accuracy
- Error rates
Access requirements
Access to GEM is controlled by your organization and project assignments. Access the service at my.tomtom.com/gem. Contact your system administrator if you need access to GEM.
Matching algorithms
AI-driven matching
GEM uses advanced algorithms for map matching:
- Algorithm Type: AI-driven road network matching
- Matching Strategy: Geometry-based with topological validation
- Confidence Scoring: Probabilistic confidence for each match
- Sub-Segment Precision: Linear referencing for detailed attribution
Matching types
Currently supported:
ROAD_MATCHING: Match road network data to Overture Maps road segmentsLANE_LEVEL_MATCHING: Match lane-level data to Overture Maps lane segments (in progress)
Reference map data
Overture Maps integration
GEM matches against Overture Maps Foundation datasets:
- GERS IDs: Global Entity Reference System identifiers
- Road Network: Comprehensive global road coverage
- Update Frequency: Periodic releases from Overture Foundation
- Data Quality: Community-validated and continuously improved
Technical requirements
Client requirements
- Azure CLI: Latest version installed locally
- Network: Stable internet connection for large file transfers
- Storage: Sufficient local disk space for data files
- Browser: Modern web browser for UI access (Chrome, Firefox, Safari, Edge)
Data requirements
- Input Size: No theoretical limit (Azure CLI handles any file size)
- Format Compliance: Must be valid Parquet with required schema
- Geometry Format: Valid WKT LineString geometries
- Data Quality: Better input quality leads to higher matching confidence
Security and compliance
Data security
- Encryption in Transit: TLS 1.2+ for all communications
- Encryption at Rest: Azure Blob Storage encryption
- Credential Security: Temporary tokens with limited scope
- Access Logging: Comprehensive audit trails
Compliance
- Quality Assurance: Enterprise-grade code quality scanning
- Security Scanning: Regular vulnerability detection and patching
- Database Security: Encrypted storage with network isolation
Error handling
Common error scenarios
| Error | Cause | Resolution |
|---|---|---|
| Authentication Failed | Invalid credentials | Verify Client ID and Secret |
| Upload Failed | Network or permission issue | Check storage access and retry |
| Job Submission Failed | Invalid input format | Validate Parquet schema |
| Matching Failed | Data quality or system error | Contact support |
| Download Failed | Expired credentials | Re-authenticate and retry |