CARCELL

CARtes de Couverture des réseaux ELectroniques au Luxembourg.

[open data] [luxembourg] [experimental]
Last updated: 2025-03-01

Abstract

CARCELL presents Luxembourg's electronic network coverage data — mobile (2G, 4G, 5G) and fixed broadband (VHCN, DOCSIS, Fibre) — in a structured, searchable format. The project aggregates publicly available regulatory data from the Institut Luxembourgeois de Régulation (ILR) to provide a clear picture of network infrastructure across all 100 communes. It is aimed at anyone interested in Luxembourg's digital infrastructure coverage without navigating raw regulatory datasets.

Data Sources

SourceFormatLicensePeriod
Mobile coverage maps (ILR) CSV (semicolon-delimited) Open (data.public.lu) April 2025 (2025-S2)
Broadband coverage by commune (ILR) CSV (semicolon-delimited) Open (data.public.lu) April 2025 (2025-S2)
CACLR — Registre national Fixed-width text (ZIP) Open (data.public.lu) Current

Data freshness

ILR coverage data is published semiannually. The current dataset reflects Semester 2 of 2025 (measurement period: April 2025). The CACLR registry is updated continuously but downloaded as a point-in-time snapshot.

Known limitations

Methodology

1. Mobile coverage aggregation

Three CSV files (2G, 4G, 5G) are analysed offline. Each file contains one row per grid cell per operator, with the maximum theoretical speed for that cell. The grid has approximately 259,000 cells covering Luxembourg at ~100m × 100m resolution. Statistics are computed by counting cells where 1, 2, or 3 operators provide coverage, and by grouping cells by speed tier. These aggregates are presented as summary statistics in the page.

Periode;Technologie;IdGrid;Maxvitesse;operateur
202504;4G;8616;30;Proximus Luxembourg S.A.,
202504;5G;9518;300;Orange Communications Luxembourg S.A., Proximus Luxembourg S.A.,

2. Broadband coverage extraction

The broadband CSV contains one row per commune (100 total) with VHCN, DOCSIS, and Fibre coverage as percentages. These values use decimal commas and percent signs in the source (European format). The data is parsed, converted to numeric values, and embedded directly into the page as a JavaScript array literal. This avoids the need for runtime CSV parsing.

// Embedded data structure (100 communes)
var DATA = [
  ["Beaufort", 58.9, 0.0, 58.9],
  ["Luxembourg", 97.2, 94.6, 87.2],
  // ... 98 more
];

3. Tabular display with sort and search

The broadband table renders from the embedded array with three interactive features: column sorting (click any header to toggle ascending/descending), free-text search (case-insensitive substring on commune name), and numeric formatting (one decimal place). Sort direction is indicated with triangle arrows. The implementation is ~60 lines of vanilla JavaScript with no dependencies.

4. Decision: table over map

A map-based visualisation was considered but rejected for two reasons. First, the mobile coverage grid cells lack public geographic coordinates, making spatial display impossible without reverse-engineering the ILR grid. Second, the broadband data is at commune level (100 records) — a sortable table with search is more practical for comparison than a choropleth for this dataset size. A choropleth of broadband coverage could be added if commune boundary GeoJSON is integrated.

5. CACLR registry archival

The CACLR (Registre national des localités et des rues) is Luxembourg's official address registry. It uses a fixed-width format with 13 tables covering districts, cantons, communes, localities, streets, buildings, and postal codes. The data is archived in data/caclr/ for potential future use (e.g. street-level analysis or geographic enrichment) but is not displayed in the current interface.

// CACLR fixed-width format (LOCALITE table)
00001Luxembourg                              LUXEMBOURG
00002Esch-sur-Alzette                        ESCH-SUR-ALZETTE

Stack & Tooling

Key Observations & Limitations

What works

Known gaps

Possible future directions