Introduction to rnaturalearth.

Andy South

2017-03-20

This vignette is an introduction to rnaturalearth, an R package to hold and facilitate interaction with natural earth vector map data. rnaturalearth is a data package designed to provide map data that can be visualised using other R packages.

Natural Earth is a public domain map dataset including vector country and other administrative boundaries.

rnaturalearth does two main things.

  1. Contains pre-downloaded vector maps for :
  2. Has ne_download() function to facilitate download of other vector and raster maps.

This vignette uses sp::plot as a simple, quick way to show how different data can be accessed.rnaturalearth is designed to provide data allowing creation of more elaborate maps in other visualisation packages (e.g. ggplot2, tmap and choroplethr).

load required packages

library(rnaturalearth)
library(sp)

1. Maps in the package.

Pre-downloaded maps can be accessed with :

  1. ne_countries() for country (admin-0) boundaries
  2. ne_states() for boundaries within countries (admin-1)
  3. ne_coastline() for world coastline
# world at small scale (low resolution)
sp::plot(ne_countries(type = 'countries', scale = 'small'))

# countries, UK undivided
sp::plot(ne_countries(country = 'united kingdom', type='countries'))

# map_units, UK divided into England, Scotland, Wales and Northern Ireland
sp::plot(ne_countries(country = 'united kingdom', type='map_units'))

# countries, small scale
sp::plot(ne_countries(country = 'united kingdom', scale = 'small'))   

# countries, medium scale
sp::plot(ne_countries(country = 'united kingdom', scale = 'medium'))

# not evaluated because rely on rnaturalearthhires data which are on rOpenSci so CRAN check likely to fail

# countries, large scale
sp::plot(ne_countries(country = 'united kingdom', scale = 'large'))

# states country='united kingdom'
sp::plot(ne_states(country = 'united kingdom'))  
# states geounit='england'
sp::plot(ne_states(geounit = 'england')) 

# states country='france'
sp::plot(ne_states(country = 'france'))
# coastline of the world
# subsetting of coastline is not possible because the Natural Earth data are not attributed in that way
sp::plot(ne_coastline())

2. Downloading other Natural Earth vectors with ne_download().

Each Natural Earth dataset is characterised on the website according to scale, type and category. rnaturalearth allows you to specify scale, type and category and will construct the url and download the corresponding file.

# lakes
lakes110 <- ne_download(scale = 110, type = 'lakes', category = 'physical')
sp::plot(lakes110, col = 'blue')

# rivers
rivers110 <- ne_download(scale = 110, type = 'rivers_lake_centerlines', category = 'physical')
sp::plot(rivers110, col = 'blue')