A free, vendor-neutral 5G NR PRB interference visualizer for RAN engineers. Import structured CSV or XLSX counters, map the columns, and inspect a full-bandwidth heatmap, per-PRB statistics, multi-cell comparisons, and exportable summaries.
The complete PRB range fits the available width by default, including 273 PRBs. Every value remains available for exact hover inspection. Zoom, pan, and Fit full bandwidth controls support closer analysis without making horizontal scrolling the default.
Desktop view of synthetic PRB interference data
Selected files are read with browser APIs and parsed in a local Web Worker. The engine does not upload the file, its name, headers, cell identifiers, or values. Parsing and visualization libraries are built into the local application assets, with no analysis-time CDN dependency.
The engine emits optional browser-only usage events containing fixed action and context codes. A host can use them for consented product analytics without receiving imported data or file metadata. The live HiCellTek page may count these actions only after analytics consent. See Local processing for the exact boundary and verification method.
- CSV and XLSX import
- Wide, long, and single-snapshot layouts
- Dynamic PRB header detection for compact, numeric, and prefixed counter names such as
PRB_0,RB0,7, andUL.Interference.Avg.PRB7(dBm) - Comma, semicolon, and tab delimiters
- Point and unambiguous decimal comma support
- Modifiable column mapping with worksheet selection and row preview
- dBm, dB, raw counter, and custom units
- Correct linear-power averaging for dBm
- Automatic or manual color scales, thresholds, direction, palettes, cell and time filters, and aggregation intervals
- Canvas heatmap with sparse tick labels, exact hover values, zoom, pan, and full-bandwidth reset
- Persistent cell selector with indexed switching and a bounded compact multi-cell overview
- Switchable PRB and time profiles with minimum, mean, median, maximum, P95, and threshold-exceedance summaries
- PNG heatmap export, safe CSV summary export, and print view
- Synthetic demo datasets and a deterministic sample generator
- Empty wide and long CSV templates available directly from the import panel
- File-size, row-count, and measurement-count safety limits
Requirements: Node.js 22.13 or later.
git clone https://github.com/tsebai/nr-prb-interference-visualizer.git
cd nr-prb-interference-visualizer
npm ci
npm run generate:samples
npm run devVite prints the local URL. The production build uses the canonical path /tools/nr-prb-interference-visualizer/.
- Export PRB interference counters from the gNB or OSS.
- Remove or anonymize sensitive identifiers.
- Open the tool.
- Select CSV or XLSX.
- Map the columns.
- Choose the unit and threshold.
- Generate and export the heatmap.
The tool visualizes the counters provided. It does not validate a manufacturer's counter definition and does not replace analysis by an RF engineer.
Wide layout:
timestamp,cell_id,PRB_0,PRB_1,PRB_2 2026年01月01日T10:00:00Z,CELL_A,-111.2,-103.8,-109.4
Long layout:
timestamp,cell_id,prb,interference 2026年01月01日T10:00:00Z,CELL_A,0,-111.2 2026年01月01日T10:00:00Z,CELL_A,1,-103.8
A wide row without a timestamp is treated as a snapshot. PRB indices do not need to be continuous and the engine does not assume a fixed PRB count. See Data formats and the files in samples/.
Exports with separate Date and Time columns are supported. The automatic mapper prefers an exact Cell Name, cell_id, or equivalent identifier and does not treat descriptive fields such as a duplex-mode indication as the cell selector.
If you are preparing an export from scratch, use Download wide CSV template or Download long CSV template in the import panel. Both files contain headers only. Extend the wide template with the PRB columns present in your own counter export.
The repository includes:
- 273 PRBs with persistent narrowband interference
- temporary broadband interference with semicolon delimiters and decimal commas
- long-format measurements for several cells
- controlled missing and invalid values
- a multi-sheet XLSX workbook
All examples are synthetic. They do not reproduce a customer, vendor, gNB, or OSS export.
Regenerate them with:
npm run generate:samples
npm run format:check npm run lint npm run typecheck npm run test:unit npm run build npm run test:e2e npm run audit
The test suite covers format and PRB detection, CSV and XLSX parsing, separators and decimals, dBm and raw averaging, median and P95, missing values, thresholds, multiple cells, snapshots, invalid files, actionable error recovery, safe CSV exports, browser interaction, responsive full-bandwidth fitting, keyboard use, and network privacy sentinels.
Invalid input is shown as a fixed NR-* error code with a short explanation, corrective steps, and the relevant recovery control. Cases include empty or malformed CSV files, unreadable XLSX workbooks, incomplete column mappings, datasets with no valid measurements, browser safety limits, empty time filters, invalid manual scales, worker failures, and PNG export failures.
Raw parser messages never cross the Web Worker boundary and are never included in usage events. Only a fixed allowlisted failure context can be exposed to a consenting host analytics integration. See Error handling.
The generic engine is exposed as the custom element <nr-prb-visualizer>. Its build emits a stable JavaScript entry, a stable stylesheet, and a hashed Web Worker. The official site vendors versioned assets and verifies their SHA-256 values. See Integration.
This is an independent, vendor-neutral visualization tool. Compatibility depends on the structure and meaning of the exported counters.
NR transmission bandwidth configurations vary with channel bandwidth and subcarrier spacing. Section 5.3.2 of ETSI TS 138 104 V18.13.0 includes 273 PRBs for 100 MHz with 30 kHz subcarrier spacing in FR1. This engine detects the PRB indices present in the file instead of hardcoding 273.
Read CONTRIBUTING.md, SECURITY.md, and CODE_OF_CONDUCT.md before submitting changes. Runtime dependency notices are in THIRD_PARTY_NOTICES.md.
MIT License. Copyright 2026 tsebai.