Sider med ekstra påfyll

onsdag 4. desember 2019

Slik endrer bilbruken seg i Europa

Klikk for å se større.

Kartene over her viser hvordan bruken av bil har endret seg i Europa i løpet av tiårsperioden fra 2007 til 2017. I en god del land i Nordvest-Europa har bilbruken faktisk gått ned, relativt sett, mens bilbruken skal ha økt i Norge. Bilbruken ser ut til å ha økt i både Sør-Europa og Øst-Europa, men at Tyrkia skiller seg kraftig ut.

Kartene er basert på hvor stor andel av alle de kilometrene som passasjerer reiser i løpet av et år som er med bil. Dette kan illustreres med disse (hypotetiske) regnestykkene:

I 2007 var det ti personer som til sammen reiste 72 000 km (såpass blir det hvis alle ti pendler 15 km hver vei fem ganger i uka 48 uker i året). 59 000 av de kilometrene var med bil. Altså er bilandelen av passasjerkilometrene 82 prosent (59 000 / 72 000).

På kartene under her kan du se de prosenttallene for 2007 og 2017.
Klikk for å se større
Datakilde er Eurostat, via R-pakken deres som bare heter Eurostat. Jeg har ikke satt meg nok inn i datamaterialet til å kunne si i hvor stor grad disse kartene viser reelle endringer i bilbruken, eller om det har vært endringer i datainnsamlingen fra 2007 til 2017. Kanskje jeg får lage en tidsseriegraf for å se om det er noen merkelige hopp i datasettet.

Kartene er laget i R, og her er syntaksen. Fine i denne anledning er at du trenger ikke noen lokale filer for å lage disse kartene. Du laster ned både statistikk og geodata i selve skriptet!


library(tidyverse)
library(eurostat)
library(tmap)
library(sf)
# Import spatial units from Eurostat
map <- eurostat_geodata_60_2016
# Get a tidy selection of subnational units, that does not
# include far off islands in the Atlantic ocean etc, then dissolve it
map_1 <- map %>%
filter(LEVL_CODE == 1) %>%
filter(geo != "PT2" & geo != "PT3" & geo != "ES7" & geo != "FRY") %>%
st_union()
# Select on the country-level spatial units
map_country1 <- map %>%
filter(LEVL_CODE == 0) %>%
select(-id, -FID, -NUTS_ID) # Remove redundant columns
# Remove the far-off Atlantic ocean areas from the final country-level map
map_country <- st_intersection(map_country1, map_1)
# Double-check that everything looks in order.
tm_shape(map_country) +
tm_polygons()
# Get som transport data. Following this tutorial: https://ropengov.github.io/eurostat/articles/eurostat_tutorial.html
id <- search_eurostat("Modal split of passenger transport",
type = "table")$code[1]
dat <- get_eurostat(id, time_format = "num")
data01 <- dat %>%
filter(time == 2017 | time == 2007) %>%
filter(vehicle == "CAR") %>%
select(geo, time, values)
# Back to following my own accumulated amount of R knowledge from now on.
data_wide <- spread(data01, time, values)
# Rename a couple of columns and estimate a couple of new variables
data <- data_wide %>%
rename(car_07 = '2007',
car_17 = '2017') %>%
mutate(cardif_07_17 = car_17 - car_07, # Get the change from 2007 to 2017 in percentage points.
cardif_07_17_perc = cardif_07_17 / car_07 * 100) # Get the percentage change
# Join statistics and the spatial units
mapstat <- left_join(map_country, data, by = "geo")
# Make some maps
car_07 <- tm_shape(mapstat) +
tm_polygons(col = "car_07")
car_17 <- tm_shape(mapstat) +
tm_polygons(col = "car_17")
car_abs <- tm_shape(mapstat) +
tm_polygons(col = "cardif_07_17")
car_rel <- tm_shape(mapstat) +
tm_polygons(col = "cardif_07_17_perc")
# Pretty much a copy + paste from Roger Bivand's spatial data visualisation lecture in the PhD course Spatial Data Analysis
# (https://rsbivand.github.io/ECS530_h19/ECS530_IV.html)
maps <- tm_shape(mapstat) +
tm_facets(free.scales = FALSE) +
tm_borders(lwd =0.5, alpha = 0.4) +
tm_layout(panel.labels = c("Car share of km per passenger 2007", "Car share of km per passenger 2017",
"Percentage point change in car share 07-17", "Percentage change in car share 07-17"))
maps_change01 <- tm_shape(mapstat) +
tm_facets(free.scales = FALSE) +
tm_borders(lwd =0.5, alpha = 0.4) +
tm_layout(panel.labels = c("Percentage point change in car share 07-17", "Percentage change in car share 07-17"))
maps_status <- maps + tm_fill(c("car_07", "car_17"), n=6, style="pretty", title="Car share of all kilometres \n travelled per passenger")
maps_change <- maps_change01 + tm_fill(c("cardif_07_17", "cardif_07_17_perc"), n=6, style="pretty", title = "Change in car share of total \n kilometres travelled per passenger")
# To see the final product.
maps_change
view raw gistfile1.txt hosted with ❤ by GitHub