Aan de slagGa gratis aan de slag

Waarom is Groenland zo groot?

Kijk eens goed naar de plot. Waarom lijkt Groenland groter dan de aaneengesloten VS, terwijl het in werkelijkheid maar ongeveer een derde zo groot is?

Als je lengtegraden en breedtegraden op de x- en y-as van een plot zet, behandel je 1 graad lengte overal als even groot. Maar omdat de aarde ruwweg bolvormig is, hangt de afstand die overeenkomt met 1 graad lengte af van je breedtegraad: die varieert van 111 km op de evenaar tot 0 km aan de polen.

De manier waarop je posities op een bol naar een tweedimensionaal vlak tekent, heet een projectie. De standaard die je hier gebruikt (ook wel een equirectangular projection genoemd) vervormt de breedte van gebieden dicht bij de polen. Elke projectie introduceert een bepaalde vervorming (een bol is nu eenmaal geen vlak!), maar verschillende projecties proberen verschillende eigenschappen te behouden (bijv. oppervlakte, hoeken of afstanden).

In tmap accepteert tm_shape() een argument projection waarmee je de projectie voor de plot kunt wisselen.

(Opmerking: de projectie van een ggplot2-plot verander je met de functie coord_map(). Zie ?coord_map() voor meer details.)

Deze oefening maakt deel uit van de cursus

Georuimtelijke data visualiseren in R

Cursus bekijken

Oefeninstructies

Om je de verschillen tussen projecties te laten zien, hebben we een tm_grid()-laag toegevoegd die gelijkmatig verdeelde lengte- en breedtelijnen aan de plot toevoegt.

Binnen je tm_shape()-aanroep:

  • Probeer een Hobo–Dyer-projectie (projection = "hd"), ontworpen om oppervlakte te behouden.
  • Probeer in een tweede plot een Robinson-projectie (projection = "robin"), bedoeld als compromis tussen het behouden van lokale hoeken en oppervlakte.
  • Gewoon voor de leuk: herhaal de vorige plot, maar voeg tm_style("classic") toe om te zien hoe tmap alle aspecten van de kaartweergave kan aansturen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

library(sp)
library(tmap)

# Switch to a Hobo–Dyer projection
tm_shape(countries_spdf) +
  tm_grid(n.x = 11, n.y = 11) +
  tm_fill(col = "population", style = "quantile")  +
  tm_borders(col = "burlywood4") 

# Switch to a Robinson projection
tm_shape(countries_spdf) +
  tm_grid(n.x = 11, n.y = 11) +
  tm_fill(col = "population", style = "quantile")  +
  tm_borders(col = "burlywood4") 

# Add tm_style("classic") to your plot
Code bewerken en uitvoeren