From the output of the function run_experiment with display, create a .gif file of the output for one specific columns. One gif will be created for each experiment (rows in the input object).

make_movie(exp, name_col, output_path = NULL, autoplay = TRUE,
  interval = 0.01, loop = TRUE, autobrowse = FALSE, ...)

Arguments

exp

an object of class experiment.

name_col

character string, name of the column containing the display information (format .png).

output_path

path to store the .gif file generated, if NULL will take the path store in the attributes of each data frame contained in the column output.

autoplay

logical, whether to autoplay the animation when the HTML page is loaded (default to be TRUE).

interval

a positive number to set the time interval of the animation (unit in seconds); default to be 0.01.

loop

logical or numeric, Number of times the GIF animation is to cycle; default TRUE (infinite loop)

autobrowse

logical: whether auto-browse the animation page immediately after it is created?; default to be FALSE

...

arguments in tag = value form, or a list of tagged values. The tags usually come from the animation parameters.

Value

path the gif file(s) invisibly.

Details

The function uses the package animation to generate the .gif file(s). Please take a look at the documentation of the package and to the website https://yihui.name/animation for more information on the usage and the installation of this package.

The arguments autoplay, interval, loop, autobrowse and ... are used to control the behaviour of the animation, see ?animation::ani.options for more details..

Examples

# Load an experiment exp <- load_experiment("prey_predator", system.file("models/predator_prey/models", "predator_prey.gaml", package = "rama"))
#> Loading experiment "prey_predator" from file "predator_prey.gaml"...
#>
#> Periods of observation ("obsrates") are converted into integers.
#>
#> Final time step ("tmax") is converted into integer.
#>
#> Seed is converted into numeric.
#>
#> Parameters' types are cast according to model definition
#>
# to explore the parameters and the observed variables parameters(exp)
#> p_Initial_number_of_preys_ p_Prey_max_energy_ p_Prey_max_transfert_ #> 1 200 1 0.1 #> p_Prey_energy_consumption_ p_Initial_number_of_predators_ #> 1 0.05 20 #> p_Predator_max_energy_ p_Predator_energy_transfert_ #> 1 1 0.5 #> p_Predator_energy_consumption_ p_Prey_probability_reproduce_ #> 1 0.02 0.01 #> p_Prey_nb_max_offsprings_ p_Prey_energy_reproduce_ #> 1 5 0.5 #> p_Predator_probability_reproduce_ p_Predator_nb_max_offsprings_ #> 1 0.01 3 #> p_Predator_energy_reproduce_ #> 1 0.5
#> r_Number_of_preys r_Number_of_predators r_main_display r_info_display #> 1 1 1 1 1 #> r_Population_information #> 1 1
# to set the experiment exp$p_Initial_number_of_preys_ <- 990L exp$p_Initial_number_of_predators_ <- 100L exp$p_Predator_probability_reproduce_ <- 0.1 exp$tmax <- 100L # to run the experiment out <- run_experiment(exp, hpc = 2, display = TRUE)
#> if "display" equal TRUE, "save" is automatically set to TRUE.
#>
#> Outputs are saved to "/Users/mac/Desktop/rama/docs/reference" by default.
#>
#> Outputs are saved in " /Users/mac/Desktop/rama/docs/reference/prey_predator_1 ".
#>
#> Running experiment plan...
# to visualize the output with(out$output[[1]], plot(Step, `r_Number_of_preys`, type = "l", lwd = 2, col = "red"))
# to make a movie path_movie <- make_movie(out, "r_main_display") # to print the result, it is necessary to have the package `magick` magick::image_read(path_movie)
#> # A tibble: 100 x 7 #> format width height colorspace matte filesize density #> <chr> <int> <int> <chr> <lgl> <int> <chr> #> 1 GIF 500 500 sRGB FALSE 3573428 72x72 #> 2 GIF 500 500 sRGB FALSE 3573428 72x72 #> 3 GIF 500 500 sRGB FALSE 3573428 72x72 #> 4 GIF 500 500 sRGB FALSE 3573428 72x72 #> 5 GIF 500 500 sRGB FALSE 3573428 72x72 #> 6 GIF 500 500 sRGB FALSE 3573428 72x72 #> 7 GIF 500 500 sRGB FALSE 3573428 72x72 #> 8 GIF 500 500 sRGB FALSE 3573428 72x72 #> 9 GIF 500 500 sRGB FALSE 3573428 72x72 #> 10 GIF 500 500 sRGB FALSE 3573428 72x72 #> # … with 90 more rows