13.3 Desire Lines
Desire lines connect origins and destinations, representing where people desire to go, typically between zones. They are often represented conveniently using zone centroids. Let’s just use the top 10:
<- bristol_od |>
(od_top10 ::slice_max(all, n = 10)) dplyr
## # A tibble: 10 × 7
## o d all bicycle foot car_driver train
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 E02003043 E02003043 1493 66 1296 64 8
## 2 E02003047 E02003043 1300 287 751 148 8
## 3 E02003031 E02003043 1221 305 600 176 7
## 4 E02003037 E02003043 1186 88 908 110 3
## 5 E02003034 E02003043 1177 281 711 100 7
## 6 E02003027 E02003043 1166 311 357 262 6
## 7 E02003036 E02003043 1099 115 868 54 5
## 8 E02003033 E02003043 1093 120 802 110 5
## 9 E02003019 E02003019 990 72 331 493 3
## 10 E02003050 E02003043 958 126 585 113 5
Walking is the most popular mode of transport among the top pairs
E02003043 is a popular destination (city center)
Also, intrazonal city center is number one
he percentage of each desire line that is made by these active modes:
<- bristol_od |>
(bristol_od mutate(Active = (bicycle + foot) / all * 100))
## # A tibble: 2,910 × 8
## o d all bicycle foot car_driver train Active
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 E02002985 E02002985 209 5 127 59 0 63.2
## 2 E02002985 E02002987 121 7 35 62 0 34.7
## 3 E02002985 E02003036 32 2 1 10 1 9.38
## 4 E02002985 E02003043 141 1 2 56 17 2.13
## 5 E02002985 E02003049 56 2 4 36 0 10.7
## 6 E02002985 E02003054 42 4 0 21 0 9.52
## 7 E02002985 E02003100 22 0 0 19 3 0
## 8 E02002985 E02003106 48 3 1 33 8 8.33
## 9 E02002985 E02003108 31 0 0 29 1 0
## 10 E02002985 E02003121 42 1 2 34 0 7.14
## # ℹ 2,900 more rows
Let’s separate interzonal from intrazonal
<- dplyr::filter(bristol_od, o == d)
od_intra <- dplyr::filter(bristol_od, o != d) od_inter
The next step is to convert the interzonal OD pairs into an sf
object
For real-world use one should use centroid values generated from projected data or, preferably, use population-weighted centroids
<- od2line(od_inter, zones_od) # creates centroids desire_lines
## Creating centroids representing desire line start and end points.
<- od2line(od_top10, zones_od) desire_lines_top10
## Creating centroids representing desire line start and end points.
tm_shape(desire_lines) +
tm_lines(palette = "plasma", breaks = c(0, 5, 10, 20, 40, 100),
lwd = "all",
scale = 9,
title.lwd = "Number of trips",
alpha = 0.1, # lightened to help emphasize the top 10
col = "Active",
title = "Active travel (%)"
+
) tm_shape(desire_lines_top10) +
tm_lines(lwd = 5, col = "green", alpha = 0.7) +
tm_scale_bar()
## Legend labels were too wide. Therefore, legend.text.size has been set to 0.61. Increase legend.width (argument of tm_layout) to make the legend wider and therefore the labels larger.
The map shows that the city center dominates transport patterns in the region, suggesting policies should be prioritized there, although a number of peripheral sub-centers can also be seen.