Technical documentation
Request accessIntroduction
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 |