Simini, F., Gonzalez, M.C., Maritan, A., Barabasi, A.L., 2012. A universal model for
mobility and migration patterns. Nature. doi:10.1038/nature10856
# load some points data
data(cents)
# plot the points to check they make sense
plot(cents)
class(cents)
#> [1] "SpatialPointsDataFrame"
#> attr(,"package")
#> [1] "sp"
# Create test population to model flows
set.seed(2050)
cents$population <- runif(n = nrow(cents), min = 100, max = 1000)
# estimate
flowlines_radiation <- od_radiation(cents, pop_var = "population")
#> Transforming to CRS +proj=aeqd +lat_0=53.81056376 +lon_0=-1.52916207 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80951653 +lon_0=-1.54646278 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80680749 +lon_0=-1.53533373 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80951653 +lon_0=-1.54646278 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81696834 +lon_0=-1.54863463 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80951653 +lon_0=-1.54646278 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.8189947 +lon_0=-1.54103979 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80951653 +lon_0=-1.54646278 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81919531 +lon_0=-1.53159824 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80951653 +lon_0=-1.54646278 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81265628 +lon_0=-1.53289014 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80951653 +lon_0=-1.54646278 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81353636 +lon_0=-1.53858754 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80951653 +lon_0=-1.54646278 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81056376 +lon_0=-1.52916207 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81161098 +lon_0=-1.51186137 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80785472 +lon_0=-1.51803303 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81161098 +lon_0=-1.51186137 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81801557 +lon_0=-1.53133393 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81161098 +lon_0=-1.51186137 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82004192 +lon_0=-1.52373908 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81161098 +lon_0=-1.51186137 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82024254 +lon_0=-1.51429754 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81161098 +lon_0=-1.51186137 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81370351 +lon_0=-1.51558944 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81161098 +lon_0=-1.51186137 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81458358 +lon_0=-1.52128684 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81161098 +lon_0=-1.51186137 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80680749 +lon_0=-1.53533373 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80409845 +lon_0=-1.52420469 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80785472 +lon_0=-1.51803303 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80409845 +lon_0=-1.52420469 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.8142593 +lon_0=-1.53750559 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80409845 +lon_0=-1.52420469 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81628566 +lon_0=-1.52991074 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80409845 +lon_0=-1.52420469 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81648627 +lon_0=-1.5204692 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80409845 +lon_0=-1.52420469 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80994724 +lon_0=-1.5217611 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80409845 +lon_0=-1.52420469 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81082732 +lon_0=-1.5274585 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80409845 +lon_0=-1.52420469 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81696834 +lon_0=-1.54863463 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82442015 +lon_0=-1.55080649 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81801557 +lon_0=-1.53133393 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82442015 +lon_0=-1.55080649 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.8142593 +lon_0=-1.53750559 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82442015 +lon_0=-1.55080649 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82644651 +lon_0=-1.54321164 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82442015 +lon_0=-1.55080649 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82664712 +lon_0=-1.5337701 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82442015 +lon_0=-1.55080649 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82010809 +lon_0=-1.535062 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82442015 +lon_0=-1.55080649 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82098817 +lon_0=-1.5407594 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82442015 +lon_0=-1.55080649 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.8189947 +lon_0=-1.54103979 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82847286 +lon_0=-1.5356168 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82004192 +lon_0=-1.52373908 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82847286 +lon_0=-1.5356168 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81628566 +lon_0=-1.52991074 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82847286 +lon_0=-1.5356168 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82644651 +lon_0=-1.54321164 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82847286 +lon_0=-1.5356168 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82867348 +lon_0=-1.52617525 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82847286 +lon_0=-1.5356168 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82213445 +lon_0=-1.52746715 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82847286 +lon_0=-1.5356168 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82301452 +lon_0=-1.53316455 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82847286 +lon_0=-1.5356168 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81919531 +lon_0=-1.53159824 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82887409 +lon_0=-1.51673371 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82024254 +lon_0=-1.51429754 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82887409 +lon_0=-1.51673371 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81648627 +lon_0=-1.5204692 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82887409 +lon_0=-1.51673371 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82664712 +lon_0=-1.5337701 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82887409 +lon_0=-1.51673371 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82867348 +lon_0=-1.52617525 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82887409 +lon_0=-1.51673371 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82233506 +lon_0=-1.51802561 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82887409 +lon_0=-1.51673371 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82321514 +lon_0=-1.52372301 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82887409 +lon_0=-1.51673371 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81265628 +lon_0=-1.53289014 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81579603 +lon_0=-1.51931751 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81370351 +lon_0=-1.51558944 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81579603 +lon_0=-1.51931751 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.80994724 +lon_0=-1.5217611 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81579603 +lon_0=-1.51931751 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82010809 +lon_0=-1.535062 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81579603 +lon_0=-1.51931751 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82213445 +lon_0=-1.52746715 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81579603 +lon_0=-1.51931751 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82233506 +lon_0=-1.51802561 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81579603 +lon_0=-1.51931751 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81667611 +lon_0=-1.52501491 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81579603 +lon_0=-1.51931751 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81353636 +lon_0=-1.53858754 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81755618 +lon_0=-1.53071231 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81458358 +lon_0=-1.52128684 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81755618 +lon_0=-1.53071231 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81082732 +lon_0=-1.5274585 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81755618 +lon_0=-1.53071231 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82098817 +lon_0=-1.5407594 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81755618 +lon_0=-1.53071231 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82301452 +lon_0=-1.53316455 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81755618 +lon_0=-1.53071231 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.82321514 +lon_0=-1.52372301 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81755618 +lon_0=-1.53071231 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81667611 +lon_0=-1.52501491 +x_0=0 +y_0=0 +ellps=WGS84
#> Transforming to CRS +proj=aeqd +lat_0=53.81755618 +lon_0=-1.53071231 +x_0=0 +y_0=0 +ellps=WGS84
flowlines_radiation$flow
#> [1] NA 28.5716171 199.1483930 45.6047446 7.5864754 21.5568487
#> [7] 41.2170441 105.2684494 24.7449354 NA 118.5268678 10.1879935
#> [13] 4.3086722 57.4515754 259.3003676 15.9131245 44.3764656 293.7173517
#> [19] NA 9.8773421 7.1271190 35.3137167 81.5452128 15.4279029
#> [25] 85.4088485 5.9374332 8.8651941 NA 84.9504273 35.9825242
#> [31] 26.8695174 53.6173692 1.8104829 1.2293437 0.7982433 84.9504273
#> [37] NA 19.6809596 2.7914752 1.2033517 27.3885572 106.4446453
#> [43] 44.4324793 34.6086394 100.2158728 NA 220.5555702 36.7618461
#> [49] 13.8249960 259.3003676 59.2543662 6.1879080 3.8213690 34.8945124
#> [55] NA 22.4008006 10.4091206 4.4967751 1.7164989 1.3797507
#> [61] 4.7760711 2.0211245 102.2283795 NA
sum(flowlines_radiation$flow, na.rm = TRUE) # the total flow in the system
#> [1] 2937.987
sum(cents$population) # the total inter-zonal flow
#> [1] 3450.191
plot(flowlines_radiation, lwd = flowlines_radiation$flow / 100)
points(cents, cex = cents$population / 100)