Learn R Programming

⚠️There's a newer version (1.0.1) of this package.Take me there.

rnaturalearth

An R package to hold and facilitate interaction with Natural Earth map data.

Provides :

  1. access to a pre-downloaded subset of Natural Earth vector data commonly used in world mapping
  2. easy subsetting by countries and regions
  3. functions to download other Natural Earth vector and raster data
  4. a simple, reproducible and sustainable workflow from Natural Earth data to rnaturalearth enabling updating as new versions become available
  5. clarification of differences in world maps classified by countries, sovereign states and map units
  6. consistency with Natural Earth naming conventions so that rnaturalearth users can use Natural Earth documentation
  7. data in 'sf' or 'sp' formats

The Natural Earth website structures vector data by scale, category and type. These determine the filenames of downloads. rnaturalearth uses this structure to facilitate download (like an API).

Install rnaturalearth

You can install the development version from GitHub using devtools.

devtools::install_github("ropenscilabs/rnaturalearth")

Data to support much of the package functionality are stored in two data packages that you will be prompted to install when required if you do not do so here.

devtools::install_github("ropenscilabs/rnaturalearthdata")
install.packages("rnaturalearthhires",
                 repos = "http://packages.ropensci.org",
                 type = "source")

First Usage

Here using sp::plot as a simple, quick way to plot maps. Maps could also be made with ggplot2, tmap or other options. All retrieval functions accept an argument returnclass='sf' to return package sf (Simple Features) objects.

library(rnaturalearth)
library(sp)

#world countries
sp::plot(ne_countries())

#uk
sp::plot(ne_countries(country = 'united kingdom'))

#states, admin level1 boundaries
sp::plot(ne_states(country = 'spain')) 

Introductory vignette

vignette('rnaturalearth', package='rnaturalearth')

To download Natural Earth data not already in the package

There are a wealth of other data available at the Natural Earth website. rnaturalearth has functions to help with download of these data.

The data available are outlined in the two tables below and online here.

category   cultural 
                                type scale110 scale50 scale10
1                          countries     TRUE    TRUE    TRUE
2                          map_units     TRUE    TRUE    TRUE
3                       map_subunits    FALSE    TRUE    TRUE
4                        sovereignty     TRUE    TRUE    TRUE
5                     tiny_countries     TRUE    TRUE    TRUE
6                             states    FALSE    TRUE    TRUE
7                   populated_places     TRUE    TRUE    TRUE
8                boundary_lines_land     TRUE    TRUE    TRUE
9                  pacific_groupings     TRUE    TRUE    TRUE
10          breakaway_disputed_areas    FALSE    TRUE    TRUE
11     boundary_lines_disputed_areas    FALSE    TRUE    TRUE
12 boundary_lines_maritime_indicator    FALSE    TRUE    TRUE
13                          airports    FALSE    TRUE    TRUE
14                             ports    FALSE    TRUE    TRUE
15                       urban_areas    FALSE    TRUE    TRUE
16                             roads    FALSE   FALSE    TRUE
17                         railroads    FALSE   FALSE    TRUE

category   physical 
                          type scale110 scale50 scale10
1                    coastline     TRUE    TRUE    TRUE
2                         land     TRUE    TRUE    TRUE
3                        ocean     TRUE    TRUE    TRUE
4      rivers_lake_centerlines     TRUE    TRUE    TRUE
5                        lakes     TRUE    TRUE    TRUE
6              glaciated_areas     TRUE    TRUE    TRUE
7  antarctic_ice_shelves_polys     TRUE    TRUE    TRUE
8             geographic_lines     TRUE    TRUE    TRUE
9                 graticules_1     TRUE    TRUE    TRUE
10                graticules_5     TRUE    TRUE    TRUE
11               graticules_10     TRUE    TRUE    TRUE
12               graticules_15     TRUE    TRUE    TRUE
13               graticules_20     TRUE    TRUE    TRUE
14               graticules_30     TRUE    TRUE    TRUE
15          wgs84_bounding_box     TRUE    TRUE    TRUE
16                      playas    FALSE    TRUE    TRUE
17               minor_islands    FALSE   FALSE    TRUE
18                       reefs    FALSE   FALSE    TRUE

Specify the scale, category and type of the vector you want as in the examples below.

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

#rivers
rivers50 <- ne_download(scale = 50, type = 'rivers_lake_centerlines', category = 'physical')
sp::plot(rivers50)

Details of different country definitions and scales

vignette('what-is-a-country', package='rnaturalearth')

Reproducible download of Natural Earth data into the package

Script used to get data into the accompanying data packages.

Acknowledgements

Thanks to Lincoln Mullen for code structure inspiration from USAboundaries, Hadley Wickham for comments and prompting, Bob Rudis for answers to stackoverflow questions about downloading Natural Earth data into R. The Natural Earth team and Nathan Kelso for providing such a great resource.

Potential future work

potential additional data

  1. Country synonyms lookup

  2. Country larger regions lookup

potential additional functions

  1. facilitate joining of user data to country boundaries

  2. facilitate subsetting by country groupings

    • e.g. least developed countries etc.

Copy Link

Version

Install

install.packages('rnaturalearth')

Monthly Downloads

25,277

Version

0.1.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

March 21st, 2017

Functions in rnaturalearth (0.1.0)

ne_as_sf

coerce return object to sf if option set
ne_coastline

Get natural earth world coastline
ne_file_name

return a natural earth filename based on arguments
ne_load

load a Natural Earth vector that has already been downloaded to R using ne_download
countries

world country polygons from Natural Earth
get_data

Get data from within the package
check_rnaturalearthhires

Check whether to install rnaturalearthhires and install if necessary
check_scale

check that this scale is present in Natural Earth
ne_countries

Get natural earth world country polygons
ne_download

download data from Natural Earth and (optionally) read into R
rnaturalearth

rnaturalearth : world map data from Natural Earth
install_rnaturalearthdata

Install the naturalearthdata package after checking with the user
install_rnaturalearthhires

Install the naturalearthhires package after checking with the user
check_data_exist

check whether the requested data exist on Natural Earth
check_rnaturalearthdata

Check whether to install rnaturalearthdata and install if necessary
ne_states

Get natural earth world state (admin level 1) polygons