animate_frames creates an animation from moveVis frames computed with frames_spatial, frames_graph or join_frames.

animate_frames(
  frames,
  out_file,
  fps = 25,
  width = 700,
  height = 700,
  res = 100,
  end_pause = 0,
  display = TRUE,
  overwrite = FALSE,
  verbose = TRUE,
  ...
)

Arguments

frames

an object of class moveVis created with frames_spatial.

out_file

character, the output file path, e.g. "/dir/to/file.mov". The file extension must correspond to a file format known by the available renderers of the running system. Use suggest_formats to get a vector of suggested known file formats.

fps

numeric, the number of frames to be displayed per second. Default is 2.

width

numeric, width of the output animation in pixels.

height

numeric, height of the output animation in pixels.

res

numeric, resolution of the output animation in ppi.

end_pause

numeric, defining how many seconds the last frame of the animation should be hold to add a pause at the the end of the animation. Default is 0 seconds to not add a pause.

display

logical, whether the animation should be displayed after rendering or not.

overwrite

logical, wether to overwrite an existing file, if out_file is already present.

verbose

logical, if TRUE, messages and progress information are displayed on the console (default).

...

additional arguments to be passed to the render function.

Value

None or the default image/video viewer displaying the animation

Details

An appropriate render function is selected depending on the file extension in out_file: For .gif files, gifski::save_gif is used, for any other (video) format, av::av_capture_graphics is used.

Author

Jakob Schwalb-Willmann

Examples

library(moveVis)
library(move)

data("move_data", "basemap_data")
# align movement
m <- align_move(move_data, res = 4, unit = "mins")
#> Temporal resolution of 4 [mins] is used to align trajectories.

# create spatial frames with frames_spatial:
r_list <- basemap_data[[1]]
r_times <- basemap_data[[2]]

if (FALSE) {
frames <- frames_spatial(m, r_list = r_list, r_times = r_times, r_type = "gradient",
                         fade_raster = TRUE)

# customize
frames <- add_colourscale(frames, type = "gradient",
                          colours = c("orange", "white", "darkgreen"), legend_title = "NDVI")
frames <- add_northarrow(frames, position = "bottomleft")
frames <- add_scalebar(frames, colour = "white", position = "bottomright")

frames <- add_progress(frames)
frames <- add_timestamps(frames, m, type = "label")

# check available formats
suggest_formats()

# animate frames as GIF
animate_frames(frames, out_file = tempfile(fileext = ".gif"))

# animate frames as mov
animate_frames(frames, out_file = tempfile(fileext = ".gif"))
}