---
title: Mapping Simulations
author: Adam H. Sparks
output:
  rmarkdown::html_document:
    theme: journal
vignette: >
  %\VignetteIndexEntry{Mapping Simulations}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
  %\VignetteDepends{ggplot2}
  %\VignetteDepends{ggspatial}
---

<!-- STOP! Do not edit this file. This file is generated from multiples.Rmd.orig -->



You may wish to compare the effects of different establishment dates, different seasons or different locations on disease levels.
This vignette details how you can automate several runs of {epicrop} in R and visualise them on maps.

## Map of AUDPC at multiple locations

In this example we will fetch data for the Mekong River Delta and Red River Delta in Vietnam; Prachin Buri, Thailand; Chennai, India and Nueva Ecija, in the Philippines for the wet season (second half of the year) in 2000.
The map will show a point, with the size relative to the AUDPC value for that location using the latitude and longitude values that were supplied to fetch the weather data.

The [{ggspatial}](https://paleolimbot.github.io/ggspatial/) package is used to provide a base layer of countries using [Open Street Map](https://www.openstreetmap.org/) map baselayer data and labelling capabilities.


``` r
library(epicrop)
library(ggplot2)
library(ggspatial)

locations <- list(
  "Mekong River" = c(105.5943, 10.0634),
  "Red River" = c(105.9700, 20.9034),
  "Prachin Buri" = c(101.6601, 14.0421),
  "Chennai" = c(80.2707, 13.0827),
  "Neuva Ecija" = c(121.1113, 15.5784)
)

year <- 2000
emergence_date <- "06-30"
ymd <- build_epicrop_emergence(years = year, month_day = emergence_date)

wth_list <- fetch_epicrop_weather_list(
  lonlat = locations,
  start_date = "2000-06-30",
  duration = 120L,
  years = year,
  mode = "cross"
)
#> Error in `data.table::rbindlist()`:
#> ! Item 1 of input is not a data.frame, data.table or list

bb <- run_epicrop_model(
  model = bacterial_blight,
  emergence = ymd,
  wth_list = wth_list,
  window_days = 120L,
  output = "full"
)
#> Warning: Skipping 2000-06-30: no weather for required year 2000 (window
#> 2000-06-30–2000-10-27).

# helper fn to create a data.table with location, emergence and location
bb <- audpc_dt(bb)
#> Error in `audpc_dt()`:
#> ! `x` must contain AUDPC value as attribute
#> ℹ This should be automatically added by `seir()`

ggplot(bb, aes(x = lon, y = lat)) +
  annotation_map_tile(type = "cartolight", zoomin = 0) +
  geom_spatial_point(aes(size = AUDPC)) +
  geom_spatial_label_repel(
    aes(label = paste(location, round(AUDPC, 0), sep = ", ")),
    box.padding = 1,
    size = 3
  ) +
  theme(
    legend.position = "inside",
    legend.position.inside = c(0.025, 0.025),
    legend.justification = c("left", "bottom"),
    legend.box.just = "right",
    legend.margin = margin(3, 3, 3, 3),
    legend.direction = "horizontal",
    legend.spacing.y = unit(0, "mm"),
    panel.border = element_rect(colour = "black", fill = NA),
    axis.text = element_text(colour = 1, size = 12),
    legend.background = element_blank(),
    legend.key = element_blank(),
    legend.box.background = element_rect(colour = "black")
  ) +
  labs(
    x = "Longitude",
    y = "Latitude"
  ) +
  ylim(c(0, 25)) +
  xlim(c(75, 127)) +
  coord_sf(crs = 4326)
#> Error in `ggplot2::geom_point()`:
#> ! Problem while computing aesthetics.
#> ℹ Error occurred in the 3rd layer.
#> Caused by error:
#> ! object 'AUDPC' not found
```
