This project currently analyzes synthetic data generated in the internal schema. Real drive-test support should be added through explicit parser adapters rather than by forcing vendor exports directly into the analyzer.
Current validation status: synthetic-data validated; real operator drive-test validation pending.
Future adapters could support CSV or Excel exports from tools such as:
- TEMS Investigation / TEMS Discovery
- Nemo Outdoor / Nemo Analyze
- QualiPoc
- Rohde & Schwarz scanner exports
- Generic UE diagnostic exports where the required KPIs are available
No real parser is included yet because vendor exports differ by product version, license options, technology layer, and export template.
Parser adapters should map vendor columns into these internal fields:
| Internal Column | Meaning |
|---|---|
timestamp |
Measurement timestamp |
latitude, longitude |
WGS84 GPS coordinate |
serving_cell_id |
Anonymized serving cell or sector identifier |
frequency_band |
LTE/NR band label |
pci |
LTE PCI or NR PCI |
technology |
LTE, 5G NSA, or 5G SA |
rsrp_dbm |
RSRP in dBm |
rsrq_db |
RSRQ in dB |
sinr_db |
SINR in dB |
rssi_dbm |
RSSI if available |
dl_throughput_mbps |
Application or PHY downlink throughput |
ul_throughput_mbps |
Application or PHY uplink throughput |
latency_ms |
Ping/RTT or session latency |
handover_event |
Boolean serving-cell change or decoded HO event |
dropped_session |
Boolean dropped call/session/RLF indicator |
speed_kmh |
GPS or UE-reported speed |
route_distance_km |
Calculated cumulative route distance |
Optional but useful real-world fields:
- neighbor PCI/SSB information
- EARFCN/NR-ARFCN
- cell global identity after anonymization
- event type, for example A3, A5, B1, RLF, or re-establishment
- serving beam or SSB index for NR
- device model and logging tool version
- test script or service type
Each vendor adapter should:
- Read the export with a strict input encoding and delimiter strategy.
- Normalize column names into a vendor-neutral mapping table.
- Validate units, for example Mbps vs kbps and milliseconds vs seconds.
- Convert timestamps to ISO format.
- Preserve only analysis-safe columns.
- Add derived fields such as
route_distance_km, RF score, and coverage class. - Fail loudly if required KPIs are missing.
Do not guess silently when a vendor export has ambiguous columns. A bad parser is worse than no parser because it can create misleading RF conclusions.
Real drive-test data may include confidential network or subscriber information. Before committing or sharing any real export:
- remove IMSI, IMEI, MSISDN, device serial numbers, and user identifiers
- anonymize operator name, PLMN, TAC, eNB/gNB IDs, cell names, and site names
- generalize or mask exact customer routes if they reveal sensitive locations
- remove internal comments, engineer names, ticket IDs, and project identifiers
- confirm that sharing is allowed by employer, operator, customer, and NDA terms
For a public portfolio, synthetic data is the safer default.
Real drive-test ingestion should be considered incomplete until it is validated against known-good exports. At minimum:
- compare row counts before and after parsing
- verify KPI units and ranges
- manually inspect several known poor and good locations
- confirm handover events against serving-cell changes
- compare map output with the original route
- document any vendor-specific assumptions
Only after this work should the project claim real drive-test support.