cercospora
A R package for determining the timing of Cercospora beticola epidemics in sugar beet
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
2 of 4 committers (50.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.9%) to scientific vocabulary
Repository
A R package for determining the timing of Cercospora beticola epidemics in sugar beet
Basic Info
- Host: GitHub
- Owner: PaulMelloy
- License: other
- Language: R
- Default Branch: main
- Homepage: http://paul.melloy.com.au/cercospoRa/
- Size: 12.9 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 4
- Releases: 2
Metadata Files
README.md
cercospoRa
This R package, cercospoRa, takes steps to automate the epidemiological
modelling of Cercospora leaf spot (CLS) epidemics in Cercospora beticola in
sugar beet farms.
The package contains functions to use remotely sensed spatially explicit empirical
data to estimate leaf area index (LAI) when the crop canopy closes.
Crop canopy closure is one key variable in estimating when growers need to be
vigilant, and commence scouting their crops for CLS disease incidence.
Once CLS epidemic incidence shows at lease 50 % of leaves with one or more
lesions, 'epidemic onset' is deemed to have occured.
This negative prognosis model attempts to estimate the earliest possible date
when 'epidemic onset' is likely to occur, based on weather conditions.
Farmers can be reasonably confident an epidemic has not occured prior to the
dates estimated by this model.
Once epidemic onset has occured a decision to protect their crop with fungicides is needed to prevent yield limiting Cercospora leaf spot epidemic.
cercospoRa uses functions described by Wolf and Verreet (2005) "Factors
Affecting the Onset of Cercospora Leaf Spot Epidemics in Sugar Beet and
Establishment of Disease-Monitoring Thresholds" Phytopathology
Installation
Install the stable release version from CRAN
install.packages("cercospoRa")
... or the development version from github
remotes::install_github(repo = "PaulMelloy/cercospoRa", ref = "dev")
Getting started
Format weather data
```r library(data.table) library(cercospoRa)
Inspect raw weather station data
head(cercospoRa::weathr) ```
weathr is a data.table containing weather data recorded at a sugar beet field
trial observing the spread and severity of C. beticola.
```r
Make a copy of the data so we can modify the formatting without affecting the
raw data
wthr <- data.table(weathr)
Format times to POSIXct time with UTC timezone
wthr[,Time := as.POSIXct(paste0(Datum, " ",Stunde,":00"),tz = "UTC")]
Nominate Latitude and Longitude location of the weather station.
While not needed in cercospoRa some plant disease models will use location to
decide the closest weather station to pull weather from
wthr[, c("lon","lat") := list(9.916,51.41866)]
Weather is hourly and will error if we don't specify a standard deviation of
weather direction. This is intentional to force the user to decide how variable
the wind direction data could be.
wthr[, wd_std := 20]
Remove all data after September as it contains missing data
wthr <- wthr[Datum < as.POSIXct("2022-10-01")]
Set NA wind speed values to zero
wthr[is.na(WG200),WG200 := 0]
Set NA wind direction values to 20 degrees. Wind is not important for this model
wthr[is.na(WR200),WR200 := 20]
format_weather() formats weather data to
hourly and checks for missing data or any issues that may cause downstream faults
in the model.
wthr <-
formatweather(wthr,
POSIXcttime = "Time",
timezone = "UTC",
temp = "T200",
rain = "N100",
rh = "F200",
wd = "WR200",
ws = "WG200",
station = "Station",
lon = "lon",
lat = "lat",
wdsd = "wdstd",
datacheck = FALSE # this stops the function from checking for faults
)
```
Calculate the proportional progress towards an epidemic
```r
Resistant cultivar
calcepidemiconset(cclosure = as.POSIXct("2022-07-30"), weather = wthr, cultivarsus = 3)
Susceptible cultivar
calcepidemiconset(cclosure = as.POSIXct("2022-07-30"), weather = wthr, cultivarsus = 6)
``
This returns aPOSIXct` date for the onset of an epidemic for the susceptible
and more resistant cultivar.
If the input weather data does not provide a window where a epidemic onset date
is met, the proportional progress towards an epidemic is returned.
calc_epidemic_onset() is a wrapper for calc_DIV() which implements the effect
of the cultivar susceptibility on the epidemic onset date.
calc_DIV() however returns a data.table detailing the daily contribution
towards the "daily infection values" (Wolf and Verreet, 2005) and is agnostic of
cultivar susceptibility.
For more detailed output of daily infection values call calc_DIV()
Calculate daily infection values
r
calc_DIV(dat = wthr)
This produces a data.table detailing the daily infection value for each day using
the method described in Wolf and Verreet (2005).
Note: Missing humidity values do not prevent the model from running and these days are assumed to not progress the model.
Notes for contributors
The main branch is the production branch and is the version available on CRAN.
The main branch is locked, please contribute to the dev branch.
The plus_racca (development) branch also includes functions to recreate other
C. beticola mechanistic models published by Racca and Jörg (2007) and auxiliary
functions which might be helpful for future versions.
References
Wolf, P. F., & Verreet, J. A. (2005). Factors Affecting the Onset of Cercospora Leaf Spot Epidemics in Sugar Beet and Establishment of Disease-Monitoring Thresholds. Phytopathology, 95(3), 269-274.
Racca, P., and Jörg, E. (2007). CERCBET 3 – a forecaster for epidemic development of Cercospora beticola. EPPO Bulletin, 37(2), 344-349.
Owner
- Name: Paul Melloy
- Login: PaulMelloy
- Kind: user
- Location: Gatton
- Company: The University of Queensland
- Website: https://paulmelloy.github.io/
- Twitter: PaulMelloy
- Repositories: 31
- Profile: https://github.com/PaulMelloy
Plant disease modeller for the University of Queensland
CodeMeta (codemeta.json)
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"@type": "SoftwareSourceCode",
"identifier": "cercospoRa",
"description": "Estimates sugar beet canopy closure with remotely sensed leaf area index and estimates when action might be needed to protect the crop from a Cercospora leaf spot (_Cercospora beticola_) epidemic with a negative prognosis model based on the work of Wolf and Verreet (2005) Phytopathology, 95, no.3, 269-74.",
"name": "cercospoRa: Process Based Epidemiological Model for Cercospora Leaf Spot of Sugar Beet",
"relatedLink": [
"https://paul.melloy.com.au/cercospoRa/",
"http://paul.melloy.com.au/cercospoRa/"
],
"codeRepository": "https://github.com/PaulMelloy/cercospoRa",
"issueTracker": "https://github.com/PaulMelloy/cercospoRa/issues",
"license": "https://spdx.org/licenses/MIT",
"version": "0.0.0.9003",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "R",
"url": "https://r-project.org"
},
"runtimePlatform": "R version 4.4.2 (2024-10-31)",
"author": [
{
"@type": "Person",
"givenName": "Paul",
"familyName": "Melloy",
"email": "paul@melloy.com.au",
"@id": "https://orcid.org/0000-0003-4253-7167"
},
{
"@type": "Person",
"givenName": "Rene",
"familyName": "Heim",
"email": "heim@ifz-goettingen.de",
"@id": "https://orcid.org/0000-0002-0666-2588"
}
],
"contributor": [
{
"@type": "Person",
"givenName": "Nathan",
"familyName": "Okole",
"email": "okole@ifz-goettingen.de",
"@id": "https://orcid.org/0000-0002-5375-2420"
},
{
"@type": "Person",
"givenName": "Facundo Ramn",
"familyName": "Ispizua Yamati",
"email": "ispizua@ifz-goettingen.de",
"@id": "https://orcid.org/0000-0001-5775-3554"
},
{
"@type": "Person",
"givenName": "Anne-Katrin",
"familyName": "Mahlein",
"@id": "https://orcid.org/0000-0003-1091-3690"
},
{
"@type": "Person",
"givenName": "Facundo Ramn",
"familyName": "Ispizua Yamati",
"email": "ispizua@ifz-goettingen.de",
"@id": "https://orcid.org/0000-0001-5775-3554"
},
{
"@type": "Person",
"givenName": "Paul",
"familyName": "Melloy",
"email": "paul@melloy.com.au",
"@id": "https://orcid.org/0000-0003-4253-7167"
}
],
"copyrightHolder": [
{
"@type": "Person",
"givenName": "Paul",
"familyName": "Melloy",
"email": "paul@melloy.com.au",
"@id": "https://orcid.org/0000-0003-4253-7167"
},
{
"@type": "Person",
"givenName": "Rene",
"familyName": "Heim",
"email": "heim@ifz-goettingen.de",
"@id": "https://orcid.org/0000-0002-0666-2588"
},
{
"@type": "Person",
"givenName": "Nathan",
"familyName": "Okole",
"email": "okole@ifz-goettingen.de",
"@id": "https://orcid.org/0000-0002-5375-2420"
},
{
"@type": "Person",
"givenName": "Anne-Katrin",
"familyName": "Mahlein",
"@id": "https://orcid.org/0000-0003-1091-3690"
}
],
"maintainer": [
{
"@type": "Person",
"givenName": "Paul",
"familyName": "Melloy",
"email": "paul@melloy.com.au",
"@id": "https://orcid.org/0000-0003-4253-7167"
}
],
"softwareSuggestions": [
{
"@type": "SoftwareApplication",
"identifier": "knitr",
"name": "knitr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=knitr"
},
{
"@type": "SoftwareApplication",
"identifier": "rmarkdown",
"name": "rmarkdown",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=rmarkdown"
},
{
"@type": "SoftwareApplication",
"identifier": "testthat",
"name": "testthat",
"version": ">= 3.0.0",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=testthat"
},
{
"@type": "SoftwareApplication",
"identifier": "lubridate",
"name": "lubridate",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=lubridate"
},
{
"@type": "SoftwareApplication",
"identifier": "remotes",
"name": "remotes",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=remotes"
},
{
"@type": "SoftwareApplication",
"identifier": "stats",
"name": "stats"
}
],
"softwareRequirements": {
"1": {
"@type": "SoftwareApplication",
"identifier": "data.table",
"name": "data.table",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=data.table"
},
"2": {
"@type": "SoftwareApplication",
"identifier": "Rdpack",
"name": "Rdpack",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=Rdpack"
},
"3": {
"@type": "SoftwareApplication",
"identifier": "sf",
"name": "sf",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=sf"
},
"4": {
"@type": "SoftwareApplication",
"identifier": "terra",
"name": "terra",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=terra"
},
"5": {
"@type": "SoftwareApplication",
"identifier": "minpack.lm",
"name": "minpack.lm",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=minpack.lm"
},
"6": {
"@type": "SoftwareApplication",
"identifier": "circular",
"name": "circular",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=circular"
},
"7": {
"@type": "SoftwareApplication",
"identifier": "R",
"name": "R",
"version": ">= 4.0.0"
},
"SystemRequirements": null
},
"fileSize": "3375.129KB",
"releaseNotes": "https://github.com/PaulMelloy/cercospoRa/blob/master/NEWS.md",
"readme": "https://github.com/PaulMelloy/cercospoRa/blob/main/README.md",
"developmentStatus": "https://www.repostatus.org/#active"
}
GitHub Events
Total
- Create event: 8
- Commit comment event: 1
- Release event: 2
- Issues event: 19
- Delete event: 3
- Issue comment event: 21
- Push event: 103
- Pull request review event: 2
- Pull request event: 24
Last Year
- Create event: 8
- Commit comment event: 1
- Release event: 2
- Issues event: 19
- Delete event: 3
- Issue comment event: 21
- Push event: 103
- Pull request review event: 2
- Pull request event: 24
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| PaulMelloy | p****l@m****u | 301 |
| Nathan Okole | n****e@s****e | 21 |
| Rene Heim | h****m@i****e | 5 |
| Paul Melloy | u****o@u****u | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 27
- Total pull requests: 15
- Average time to close issues: 6 months
- Average time to close pull requests: 7 days
- Total issue authors: 4
- Total pull request authors: 2
- Average comments per issue: 1.11
- Average comments per pull request: 0.27
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 10
- Pull requests: 13
- Average time to close issues: 22 days
- Average time to close pull requests: 8 days
- Issue authors: 4
- Pull request authors: 1
- Average comments per issue: 0.8
- Average comments per pull request: 0.23
- Merged pull requests: 9
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- PaulMelloy (18)
- ReneHeim (7)
- nathanokole (3)
- Facuriy (1)
Pull Request Authors
- PaulMelloy (25)
- nathanokole (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- Rdpack * imports
- data.table * imports
- epiphytoolR * imports
- lubridate * imports
- stats * imports
- knitr * suggests
- rmarkdown * suggests
- testthat >= 3.0.0 suggests
