ascotraceR is an R package of the ‘ascotraceR’ model developed to simulate the spread of Ascochyta blight in a chickpea field over a growing season. Parameters and variables used in the model were mostly derived from the literature and were subjected to validation in the field. The model uses daily weather data to simulate disease spread and a set of weather data is included with the package for demonstration purposes.
Load the libraries.
library("ascotraceR")
library("lubridate")
library("ggplot2")
library("data.table")
Import the weather data
# weather data
Billa_Billa <- fread(
system.file(
"extdata",
"2020_Billa_Billa_weather_data_ozforecast.csv",
package = "ascotraceR"
)
)
# format time column
Billa_Billa[, local_time := dmy_hm(local_time)]
# specify the station coordinates of the Billa Billa weather station
Billa_Billa[, c("lat", "lon") := .(-28.1011505, 150.3307084)]
head(Billa_Billa)
## day local_time assessment_number mean_daily_temp wind_ km_h ws
## 1: 1 2020-06-04 00:00:00 NA 4.1 0.9 0.25
## 2: 1 2020-06-04 00:15:00 NA 3.9 0.6 0.17
## 3: 1 2020-06-04 00:30:00 NA 3.9 2.0 0.56
## 4: 1 2020-06-04 00:45:00 NA 4.3 1.2 0.33
## 5: 1 2020-06-04 01:00:00 NA 3.7 2.4 0.67
## 6: 1 2020-06-04 01:15:00 NA 3.5 1.3 0.36
## ws_sd wd wd_sd cummulative_rain_since_9am rain_mm wet_hours location
## 1: NA 215 NA 0 0 NA Billa_Billa
## 2: NA 215 NA 0 0 NA Billa_Billa
## 3: NA 215 NA 0 0 NA Billa_Billa
## 4: NA 215 NA 0 0 NA Billa_Billa
## 5: NA 215 NA 0 0 NA Billa_Billa
## 6: NA 215 NA 0 0 NA Billa_Billa
## lat lon
## 1: -28.10115 150.3307
## 2: -28.10115 150.3307
## 3: -28.10115 150.3307
## 4: -28.10115 150.3307
## 5: -28.10115 150.3307
## 6: -28.10115 150.3307
A function, format_weather()
, is provided to convert raw weather data into the format appropriate for the model. It is mandatory to format weather data before running the model. Time zone can also be set manually using time_zone
argument. If latitude and longitude are not supplied in the raw weather data, a a separate CSV file listing latitude and longitude can be supplied to meet this requirement (see ?format_weather
for more details).
Billa_Billa <- format_weather(
x = Billa_Billa,
POSIXct_time = "local_time",
temp = "mean_daily_temp",
ws = "ws",
wd_sd = "wd_sd",
rain = "rain_mm",
wd = "wd",
station = "location",
time_zone = "Australia/Brisbane",
lon = "lon",
lat = "lat"
)
A function, trace_asco()
, is provided to simulate the spread of Ascochyta blight in a chickpea field over a growing season. The inputs needed to run the function include weather data, paddock length and width, sowing and harvest dates, chickpea growing points replication rate, primary infection intensity, latent period, number of conidia produced per lesion and the location of primary infection foci (centre or random). The model output is a nested list with items for each day of the model run. See the help file for trace_asco()
for more information.
# Predict Ascochyta blight spread for the year 2020 at Billa Billa
traced <- trace_asco(
weather = Billa_Billa,
paddock_length = 20,
paddock_width = 20,
initial_infection = "2020-07-17",
sowing_date = "2020-06-04",
harvest_date = "2020-10-27",
time_zone = "Australia/Brisbane",
seeding_rate = 40,
gp_rr = 0.0065,
spores_per_gp_per_wet_hour = 0.6,
latent_period_cdd = 150,
primary_inoculum_intensity = 100,
primary_infection_foci = "centre"
)
Functions tidy_trace()
and summarise_trace()
have been provided to tidy up and summarise the model output
tidied <- tidy_trace(traced)
tidied
## i_day i_date day x y new_gp susceptible_gp exposed_gp
## 1: 1 2020-06-04 156 1 1 40.00000000 40.000 0
## 2: 1 2020-06-04 156 1 2 40.00000000 40.000 0
## 3: 1 2020-06-04 156 1 3 40.00000000 40.000 0
## 4: 1 2020-06-04 156 1 4 40.00000000 40.000 0
## 5: 1 2020-06-04 156 1 5 40.00000000 40.000 0
## ---
## 58796: 147 2020-10-28 302 20 16 0.03382666 4980.241 0
## 58797: 147 2020-10-28 302 20 17 0.03382666 4980.241 0
## 58798: 147 2020-10-28 302 20 18 0.03382666 4980.241 0
## 58799: 147 2020-10-28 302 20 19 0.03382666 4980.241 0
## 58800: 147 2020-10-28 302 20 20 0.03382666 4980.241 0
## infectious_gp cdd cwh cr gp_standard
## 1: 0 0.000 0 0 40.000
## 2: 0 0.000 0 0 40.000
## 3: 0 0.000 0 0 40.000
## 4: 0 0.000 0 0 40.000
## 5: 0 0.000 0 0 40.000
## ---
## 58796: 0 2215.577 74 97 4980.241
## 58797: 0 2215.577 74 97 4980.241
## 58798: 0 2215.577 74 97 4980.241
## 58799: 0 2215.577 74 97 4980.241
## 58800: 0 2215.577 74 97 4980.241
summarised <- summarise_trace(traced)
summarised
## i_day new_gp susceptible_gp exposed_gp infectious_gp i_date day
## 1: 1 16000.00000 16000.00 0 0 2020-06-04 156
## 2: 2 1108.59107 17108.59 0 0 2020-06-05 157
## 3: 3 1334.03497 18442.63 0 0 2020-06-06 158
## 4: 4 1492.26177 19934.89 0 0 2020-06-07 159
## 5: 5 1793.24969 21728.14 0 0 2020-06-08 160
## ---
## 143: 143 30.57255 1992024.53 3 614 2020-10-24 298
## 144: 144 22.04597 1992046.58 3 614 2020-10-25 299
## 145: 145 19.99162 1992066.57 3 614 2020-10-26 300
## 146: 146 15.39628 1992078.97 0 617 2020-10-27 301
## 147: 147 14.05252 1992093.02 0 617 2020-10-28 302
## cdd cwh cr gp_standard AUDPC
## 1: 0.00000 0 0.0 40.00000 42441.5
## 2: 10.74583 0 0.0 42.77148 42441.5
## 3: 22.84583 0 0.0 46.10657 42441.5
## 4: 35.41042 0 0.0 49.83722 42441.5
## 5: 49.38958 1 0.6 54.32034 42441.5
## ---
## 143: 2133.81645 65 76.2 4980.06672 42441.5
## 144: 2154.64770 73 94.4 4980.12110 42441.5
## 145: 2176.49562 73 94.4 4980.17042 42441.5
## 146: 2195.63104 73 94.4 4980.20748 42441.5
## 147: 2215.57687 74 97.0 4980.24131 42441.5
Plot the number of infectious growing points on day 132.
ggplot(data = subset(tidied, i_day == 132),
aes(x = x, y = y, fill = infectious_gp)) +
geom_tile()