MetricViewer
MetricViewer
Professional RF Drive Test Analyzer
{{ files.length }} files
{{ mapFilteredData.length }} pts
v0.7
Files on Server
Available files stored on the server
{{ serverFiles.length }} file(s)
Name Comment Size Date Actions
{{ sf.name }} {{ formatBytes(sf.size) }} {{ formatServerDate(sf.modified) }}
No files on the server or could not connect.
Files loaded in viewer
Active datasets currently available for visualization
{{ files.length }} loaded
# Operator File Rows With GPS Route Size Actions
{{ idx + 1 }} Active {{ f.carrier }} {{ f.name }} {{ f.tableData.length }} {{ countGpsRows(f) }} {{ formatBytes(f.fileSize) }}
No files loaded. Import a file from the server or add a local `.ndjson`.
Total points
{{ combinedData.length }}
Points with GPS
{{ gpsData.length }}
Avg RSRP
{{ avgRsrpLabel }}
Avg RSSI/dBm
{{ avgRssiLabel }}
Active file:{{ activeFile ? (activeFile.name + ' · ' + activeFile.carrier) : '—' }}
Comment:
Sources: All · None {{ files.filter(f => f.visible).length }}/{{ files.length }} active
Map
Chart {{ selectedMetric.toUpperCase() }}
Color by signal quality. Axis adjusted automatically to the actual visible range.
Bad
Good
{{ metricRangeLabel }}
{{ selectedMetric.toUpperCase() }} Histogram
{{ q.name }} {{ q.range }}
{{ selectedMetric.toUpperCase() }} Quality Distribution
{{ q.name }} {{ q.range }}
RSRP vs SINR
Operator Comparison
Combined table{{ combinedFilteredData.length }} filtered rows
Time Operator Network Tech Band Lat Lon RSRP RSSI RSRQ SINR Cell Speed Brand/Model OS
{{ formatTime(row.time) }} {{ row.operator || row.carrier || '—' }} {{ row.network_type || '—' }} {{ row.tech || '—' }} {{ row.band || '—' }} {{ formatCoord(row.lat) }} {{ formatCoord(row.lon) }} {{ valueOrDash(row.rsrp) }} {{ valueOrDash(row.rssi) }} {{ valueOrDash(row.rsrq) }} {{ valueOrDash(row.sinr) }} {{ row.cellId || '—' }} {{ row.speed != null ? row.speed.toFixed(1) + ' km/h' : '—' }} {{ [row.brand, row.model].filter(Boolean).join(' ') || '—' }} {{ row.osVersion ? 'Android ' + row.osVersion : '—' }}
Showing the first 800 rows to maintain performance.