Learn R Programming

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

mapmate

mapmate (map animate) is an R package for map animation. It is used to generate and save a sequence of plots to disk as a still image sequence intended for later use in data animation production.

Install

devtools::install_github("leonawicz/mapmate")

This installs the current early development version. Functionality is highly subject to change.

Example videos that based on mapmate

Historical and projected global temperature anomalies

Global UAF/SNAP Shiny Apps web traffic

Flat map great circle animation example

Introduction and basic example

The mapmate package is used for map- and globe-based data animation pre-production. Specifically, mapmate functions are used to generate and save to disk a series of map graphics that make up a still image sequence, which can then be used in video editing and rendering software of the user's choice. This package does not make simple animations directly within R, which can be done with packages like animation. mapmate is more specific to maps, hence the name, and particularly suited to 3D globe plots of the Earth. Functionality and fine-grain user control of inputs and outputs are limited in the current package version.

library(mapmate)
library(dplyr)
data(annualtemps)
annualtemps
#> # A tibble: 55,080 × 4
#>          lon      lat  Year     z
#>        <dbl>    <dbl> <int> <dbl>
#> 1  -176.6667 53.66633  2010  1.09
#> 2  -176.6667 66.99967  2010  3.21
#> 3  -176.6667 73.66633  2010  2.76
#> 4  -170.0000 53.66633  2010  0.91
#> 5  -170.0000 60.33300  2010  2.47
#> 6  -170.0000 66.99967  2010  2.73
#> 7  -163.3333 20.33300  2010  0.19
#> 8  -163.3333 53.66633  2010  0.79
#> 9  -163.3333 60.33300  2010  1.43
#> 10 -163.3333 66.99967  2010  1.28
#> # ... with 55,070 more rows

library(RColorBrewer)
pal <- rev(brewer.pal(11, "RdYlBu"))

temps <- mutate(annualtemps, frameID = Year - min(Year) + 1)
frame1 <- filter(temps, frameID == 1)  # subset to first frame

save_map(frame1, z.name = "z", ortho = FALSE, col = pal, type = "maptiles", 
    save.plot = FALSE, return.plot = TRUE)
save_map(frame1, z.name = "z", col = pal, type = "maptiles", save.plot = FALSE, 
    return.plot = TRUE)

The above is only a very basic initial example of static 2D and 3D maps. See the introduction vignette for more complete and more typical usage examples:

  • Generate a data frame containing monthly map data (optionally seasonal or annual aggregate average data) in the form of an n-year moving or rolling average based on an input data frame of raw monthly data.
  • Generate a sequence of still frames of:
    • map data for use in a flat map animation.
    • dynamic/temporally changing map data projected onto a static globe (3D Earth)
    • static map data projected onto rotating globe
    • dynamic map data projected onto rotating globe
    • non-map data (time series line growth)
  • Parallel processing examples using mclapply
  • Comparison of map tiles, map lines, and polygons
browseVignettes(package = "mapmapte")

Other features and functionality will be added in future package versions.

Copy Link

Version

Version

0.0.1

License

GPL (>= 2)

Maintainer

Matthew Leonawicz

Last Published

May 6th, 2018

Functions in mapmate (0.0.1)

borders

Global national political borders
pad_frames

Pad the end of list of data frames
runOrtho

Run Shiny app example
project_to_hemisphere

Identidy visible points on an arbitrary global hemishpere view.
save_map

Save maps to disk
do_projection

Project points onto globe
save_ts

Save time series plots
annualtemps

2010-2099 global projected annual average temperature anomalies
bathymetry

Spatially aggregated example global bathymetry surface
get_ma

Obtain moving average map series
monthlytemps

2010-2099 single map grid cell projected monthly average temperatures anomalies
get_clim

Obtain a list of monthly climatologies
get_lonlat_seq

Generate a sequence of coordinates