Skip to about & data
radioguardSWITZERLAND
Map
Using this map Radiation levels Everyday devices Health & research Networks & glossary International data
About & data Terms
ABOUT RADIOGUARD

Clarity over
certainty.

An independent, non-commercial interface for exploring Switzerland's radio environment, built from official federal data.

OpenStreetMap + BAKOM inventory · 5G + 4G + 3G · automatic per-site model

How the map is built

Antenna positions come from the official Swiss inventory of mobile installations published by the Federal Office of Communications (BAKOM), loaded here as a local snapshot of that dataset: 22,482 register rows — one per installation and technology group, over 20,853 distinct coordinates — with their coordinates, operator, technology generations and permitted power class. 21,261 of those rows carry a generation this map models and are drawn. The other 1,221 are 2G-only, and all 1,201 SBB railway installations are among them: the map draws no 2G, so those appear on no dot, in no popup and in no figure. See What is included, and what is not below. The basemap is OpenStreetMap. The shaded field is computed in your browser from those two inputs.

Two things are computed from that model, and the settings panel chooses which is drawn. Per-mast fans is one threshold contour per antenna: an edge you can trace back to a single installation. Combined field (the default) is the sum of every mast, painted and contoured as the ground actually receives it, which is the same quantity the popups, the pointer readout and the settlement figures use. See Fans, or the summed field below for what the two look like side by side.

Loading official inventory…

22,482registered installations · 21,261 drawn
Strongest site in the inventoryCalculating…

For every site the model takes the permitted power class, the sector azimuths from the bundled sector snapshot, an assumed 65° half-power panel width and a free-space path-loss model, then adds the contributions of all nearby sectors at each point on the screen. On top of that horizontal pattern it applies a vertical one: the beam is assumed tilted 6° below the horizon from a 16 m mast with a 10° vertical beam, so the beam's axis meets the ground about 140 m out, the modelled field is strongest a little closer in, near 85 m, and the point directly beneath a mast is a weak position rather than the strongest one. Each sector's fan is that sector's own threshold contour, solved along every ray instead of drawn as a wedge: it closes on the modelled contour rather than on a cut edge, its base reaches the full 120° arc wherever the field still crosses the threshold there, and nothing is painted outside that arc. The beam's tilt is what puts the strongest part of a fan in a ring a hundred-odd metres out, under a 20 dB vertical floor, which is why a small clearing under a mast is the weakest place near it. Because the sector snapshot carries directions but not beamwidth, height, down-tilt or per-sector power, those remain assumptions, and they are labelled as such wherever they appear.

The path-loss model is selectable, and the default is Automatic: each mast is given one of the three profiles from how built up its surroundings are, counted as the number of other masts within 700 m — an isolated mast is read as open country, a sparse cluster as rural, a dense cluster as a town centre. That uses no dataset beyond the inventory itself, the panel reports how many masts each profile was chosen for, and because every profile attenuates at least as much as free space beyond the shared 25 m reference, the automatic field is never larger than the free-space one: the map keeps its worst-case reading and gains a shape that follows the country. Selecting Free-space baseline instead applies the least attenuating profile everywhere, which draws the largest fans and is the most conservative single-profile reading of the inventory.

All three profiles are calibrated at the same 25 m reference distance, which is the distance the rest of the model already uses for its nearest point. Each one therefore returns exactly the free-space value at 25 m and strictly less beyond it: rural sits below free space at every distance and urban below rural at every distance, with no crossover anywhere. Their fans are ordered the same way, so a per-site fan is never larger than the free-space baseline and never smaller than an urban one. (An earlier calibration measured each profile's clutter against a 1 km reference instead, which let the rural profile paint a larger fan than free space for weak masts — a contradiction that has since been removed.)

Where the antenna directions come from

The official BAKOM download used here is a site-level inventory: coordinates, operator, technology, power class, site type and installation limit value. Field by field it contains no antenna direction at all — no azimuth, no frequency, no sector identifier, no beamwidth, no down-tilt, no mast height and no per-sector power. That is why a map built from that file alone can only place points, however much detail it appears to show.

The azimuths this map draws come from a second public source: the sector geometry that public map services publish in their own vector tiles, decoded into a local snapshot. The register and that snapshot ship together as one file, data/antennas.json — nothing about this map is fetched from a third party at run time. Assembled from public sources; see Getting the underlying data below for what those are and the licences that apply. Horizontal beamwidth is not part of that format, so a 65° half-power panel is assumed, and a site with no matching record is drawn as an undirected disc rather than a guess at which way it faces. The width of the fan drawn here is a modelling choice and not a measured pattern: a sector is modelled across a 120° arc that fades to the standard −20 dB side-lobe floor at its edge, and is cut to nothing outside it.

That snapshot covers 96.9% of the official coordinates — 20,201 of 20,853, matched to a median of 10 m. The whole country is covered: the z8 tile block is fetched for every tile Switzerland touches, not just the ones a viewer had happened to load. The remaining 3.1% — 652 of the 20,853 coordinates — is not a geographic hole and not a zooming problem. 571 of those 652 are SBB's own railway installations and 579 of them are 2G-only, neither of which the reference dataset carries; asking its server for the same locations at a deeper zoom returns no new site, and the leftovers lie in the middle of the country rather than at any edge. Those installations are in the register with a coordinate and a power class — it is their direction the snapshot lacks. What keeps them off the map at all is a second and separate fact: every SBB installation is registered as 2G-only, and this map draws no 2G layer. See What is included, and what is not below.

That snapshot is development scaffolding. A permissioned BAKOM sector export can replace it without touching anything else, because the loader and the model accept either — the direction list is the only thing that changes.

Municipal boundaries and population

The municipality ranking uses the official swisstopo swissBOUNDARIES3D release — layer TLM_HOHEITSGEBIET, records of type Gemeindegebiet — giving 2,123 municipal boundaries with their official area and resident population. The boundaries are simplified to about 280 m, far finer than they are ever drawn at, and the tool that builds the file ships with the project.

Each municipality is sampled at up to 16 interior points on a uniform area grid, and the figure shown is the median of those samples. A mean over an area would be dominated by whichever sample happened to fall a few tens of metres from a mast, because the model falls off with the square of distance; the median is the typical point instead. It remains an area statistic rather than a per-resident one, which is why the population is shown next to it.

The centre of a municipality — the point its exposure-at-centre figure and its green disk are measured from — is the coordinate OpenStreetMap labels the settlement with (place=city|town|village|hamlet), ranked by place class and then by population, so a municipality holding a town and four hamlets is centred on the town. That is the built-up area by construction; the geometric centroid of a boundary is an area property and in many municipalities lands in fields while the village sits at an edge. 2,109 of the 2,123 municipalities take an OpenStreetMap settlement inside their boundary, 11 take the nearest one outside it, and 3 fall back to the centroid. The disks are drawn as a filled circle whose rim is the same one-pixel stroke the fan contours use, and a disk's radius is the distance from that centre to the nearest modelled contour — so a disk stops exactly where the closest fan begins, which is a claim you can check with a ruler against the map. Two things follow from what a disk is. Overlapping disks are filled as one union, so the shared ground takes the same tint rather than doubling it, and no rim is drawn across another disk's fill: that shared ground is not a boundary the model measured, and a line through it would read as one. Each rim therefore draws only the arcs that still stand against the open map.

The model is an upper bound

The field assumes every sector transmits its permitted maximum, continuously, in the direction of every point, from one assumed mast height, tilt and vertical beam for the whole country. Real networks transmit far less, almost never at the permitted maximum, and are blocked by buildings, terrain and vegetation. The map is therefore useful for comparing places, directions and technologies, and is not a prediction of the field strength at an address. Read it that way and it is informative; read it as a measurement and it will mislead you. As a yardstick for how far above reality it sits: the median settlement on this map reads about 0.2 V/m, against measured medians of 0.08–0.09 V/m and a highest-ever recorded value of 0.48 V/m in Switzerland.

What is included, and what is not

  • Included: every registered mobile installation of the three Swiss operators and of other site owners, with power class, technology, coordinates and sector azimuths — 21,261 of the 22,482 register rows, this being every row that carries 5G, 4G or 3G.
  • Not drawn — the 2G layer: the 1,221 2G-only installations in the register, of which 1,201 are operated by SBB, the railway base stations. This map models 5G, 4G and 3G, so a site registered as 2G-only is neither plotted nor summed: no dot, no fan, no popup, no figure. Its coordinates, power class and installation limit value are in the register and can be read above; what no bundled source carries for them is a direction, because the sector snapshot holds no 2G record at all.
  • Not included: broadcast transmitters, high-voltage lines, radar, the railways' own dedicated radio network and other radio sources. They exist, they are regulated separately, and this build does not draw them.
  • Not included: official measurement points. Cantonal and federal measurement programmes collect those, and they are the reference to compare against.

What the missing 2G layer means for a quiet reading. A 2G-only installation contributes to nothing on this map, so where the nearest mast is one of those 1,221 the figure shown is lower than the register allows. That matters most where a reader is looking for reassurance: a place drawn as empty is a place no modelled generation reaches, and if a 2G-only site stands there the accurate reading is "not modelled here" rather than "nothing here". What is missing is bounded and modest — 1,157 of the 1,201 SBB installations are registered in one of the two lowest power classes (≤6 W or ≤500 W), 44 in the medium class and none in the highest — and 2G is the oldest layer in the register, a voice service rather than a data one. Every figure on this map is a model output rather than a measurement, and a low one near a 2G-only site is no exception.

Getting the underlying data

This build is assembled from public sources, and those sources keep their own licences. The antenna register is open government data, published on map.geo.admin.ch and opendata.swiss; the federal installation limits and the measurement reports come from the same federal offices, and the cantonal environmental offices publish their own measurement programmes. The settlement points, place names, boundaries where OpenStreetMap supplies them and the basemap come from openstreetmap.org under the ODbL licence, which requires the attribution shown on the map and any reuse of that data to keep the same licence. The official municipal boundaries and population figures come from the swisstopo open-data release named above. The direction snapshot is decoded from publicly published map tiles.

Where the same ground is covered by other open collections — the crowdsourced OpenCelliD database at opencellid.org holds several hundred thousand Swiss cell records, and several cantons publish their own measurement programmes — this build still reads the federal register and the published tiles rather than those collections, and quotes them only where a page says it does. They are named here because a reader comparing this map with another source should know which of them share an origin and which do not. See International data for what an open, worldwide collection of that kind contains and what it does not.

If you want the numbers behind this map rather than the map itself, start with the federal mobile-antenna open-data layers, then compare what you find there with the cantonal and federal measurement reports.

Accessibility

The field is drawn on canvases that assistive technology cannot read, so nothing meaningful is only in the picture: the inventory count, the modelled peak, the selected threshold and the units are all written out in the panel, every control is a real form element with a label, the map itself is a keyboard-focusable region with a text label, and all text meets contrast requirements against the translucent panels. Fan opacity is user-controlled precisely because a fixed shading is not readable for everyone.

Found something wrong?

Model assumptions, dataset quirks and rendering behaviour are documented in the project README, including the known limits of the sector snapshot. Corrections are welcome — an exposure map is only as good as its willingness to be checked.

RadioGuard is a research lab of the ATRAC Institute — the radio-frequency field-mapping arm that estimates environmental exposure from every registered mobile installation in Switzerland. No measurements, no verdicts, no hype: modelled upper bounds, stated as such.

Map About & data Terms atrac.org