Introduction#

This chapter sets the context for a UK replication of the French systèmes urbains régionaux cartogram (Géographie-cités / DATAR, 2011). We compare the original map with a schematic of our pipeline—from TTWA nodes and census flows to Nystuen–Dacey dominant-flow partitions and a final styled cartogram.

Previous: Project overview
Next: Data acquisition

suppressPackageStartupMessages({
  library(ggplot2)
  library(patchwork)
  library(ggraph)
  library(tidygraph)
  library(igraph)
  library(here)
  library(tibble)
  library(png)
  library(grid)
})
proj_dir <- here::here("projects", "uk-urban-systems-network")
data_dir <- file.path(proj_dir, "data")
fig_dir <- file.path(proj_dir, "figures")
dir.create(data_dir, recursive = TRUE, showWarnings = FALSE)
dir.create(fig_dir, recursive = TRUE, showWarnings = FALSE)

French inspiration and UK pipeline#

french_ref <- here::here(
  "_static", "uk-urban-systems-network", "french_datar_2011.png"
)

if (!file.exists(french_ref)) {
  stop(
    "Place french_datar_2011.png in _static/uk-urban-systems-network/ ",
    "(see _static/uk-urban-systems-network/README.md)."
  )
}

# Panel A: French reference cartogram
p_french <- ggplot() +
  annotation_custom(
    rasterGrob(png::readPNG(french_ref), interpolate = TRUE),
    xmin = -Inf, xmax = Inf, ymin = -Inf, ymax = Inf
  ) +
  theme_void() +
  labs(title = "France (Géographie-cités / DATAR, 2011)")
# Panel B: schematic UK pipeline (illustrative node–edge diagram)
pipeline_edges <- tibble::tibble(
  from = c("data", "data", "nodes", "edges", "edges"),
  to = c("nodes", "edges", "partition", "partition", "map")
)
pipeline_nodes <- tibble::tibble(
  name = c("data", "nodes", "edges", "partition", "map"),
  x = c(0, 1, 2, 3, 4),
  y = c(0, 1, 0, 1, 0)
)

g_pipe <- tbl_graph(nodes = pipeline_nodes, edges = pipeline_edges, directed = TRUE)

p_pipeline <- ggraph(g_pipe, layout = "linear") +
  geom_edge_link(
    arrow = arrow(length = unit(3, "mm"), ends = "last"),
    colour = "grey40"
  ) +
  geom_node_point(size = 8, colour = "#2c3e50") +
  geom_node_text(aes(label = name), colour = "white", size = 3) +
  labs(title = "UK build-up (schematic)") +
  theme_void()

p_compare <- p_french + p_pipeline + plot_layout(ncol = 2)

fig_out <- file.path(fig_dir, "01_pipeline_schematic.png")
ggsave(fig_out, p_compare, width = 12, height = 5, dpi = 300)
invisible(fig_out)
Warning message:
“Existing variables `x` and `y` overwritten by layout variables”

French reference and UK pipeline schematic

Methodology overview#

  • Nodes: Travel to Work Areas (TTWAs, 2011 definition) from the ONS Open Geography Portal.

  • Edges: Workplace-to-residence flows from the 2021 Census (NOMIS WU03UK), aggregated to TTWA pairs.

  • Partition: Nystuen–Dacey dominant-flow / nodal regions (Route B)—not Louvain or Infomap clustering.

  • Final map: Regional colours, choropleth TTWA fill, flow-weighted curved edges, and a London inset.

Data sources#


Next: Data acquisition →