viz

You are currently browsing the archive for the viz category.

The raw trips maps is now corrected!! Every arc in this map of Santiago is coloured by how much the raw mobile network data was wrong. Red means under-counted. Blue means over-represented. Width is corrected trip volume.

The striking thing is that the map is overwhelmingly red. Not just at the periphery, where sparse tower coverage is expected to introduce bias. Even the thick, dominant corridors are red.

The reason is likely geometry. The flows that rank highest visually are the ones that combine high volume with long distance, and long-distance commuting in Santiago almost always has at least one endpoint in a less-covered area outside the dense urban core. That is exactly where tower density drops, detection probability falls, and the network starts to miss trips.

This is the corrected origin-destination matrix for the Santiago metropolitan region (the raw one is here), derived from mobile phone (XDR) data and reweighted using inverse probability weighting (IPW) to account for heterogeneous tower density. The colour of each arc is the log-ratio of corrected to raw trips for that specific corridor, *not the trip count itself*.

We do this here:
– Ferres, L., & Elejalde, E. (2026). Systematic biases in mobile phone mobility data from heterogeneous tower density. Zenodo. https://doi.org/10.5281/zenodo.19484460

I’ll write more about the statistical fraamework we used, but the detaills are there and in the associated github.

The literature has treated cell towers as isotropic light bulbs since 2008. They’re really not (that’s why sometimes you don’t have a mobile phone signal!).


Left: Voronoi tessellation of 1,292 BTS across Santiago (R13), ~6 km window over the downtown core. Each tower owns every point closer to it than any other mast, with 360° coverage assumed.

Right: the same towers, drawn as directional sector wedges built from the azimuth field that has always been in the catalog. Most masts carry three antennas radiating ~120° beams; a few carry six.

Dropping the isotropic assumption pulls the median effective radius from 504 m to 375 m region-wide, and from 245 m to 181 m inside this window. Sub-kilometre spatial resolution from a column already in the data.

The black gaps in the right panel are not missing values. They are the map being honest about where no antenna is aiming.

I’m working on a series of blog posts and “spinoffs” of this paper:

Ferres, L., & Elejalde, E. (2026). Systematic biases in mobile phone mobility data from heterogeneous tower density. Zenodo. https://zenodo.org/records/19484460

Next, I’ll try to explain the statistical methods we used, and how we can correct the values.

Tags: , , ,

This is one of the most complete pictures of a city’s daily movement that money can buy. Eigh hundred and ninety million trips.

Origin-destination matrix from mobile phone data (XDR records) in Santiago, Chile. 658k H3 hex-to-hex pairs, 6.5 weeks of observations, top 2,000 flows ranked by log(volume) x sqrt(distance).

Each arc is a quadratic Bezier between H3 resolution-8 cell centroids (~460 m edges). Hexagons colored by log10 of total trip throughput. Dark background, no basemap, just the data.

Tower density in Santiago varies by two orders of magnitude between urban core and rural periphery, which means short-distance and rural trips are systematically invisible. These are three stylistic variations (amber, electric, and magenta/pink) of the uncorrected picture.

– Code: https://github.com/leoferres/mobilens
– Preprint: https://zenodo.org/records/19484460

Tags: , , ,