cercospora

A R package for determining the timing of Cercospora beticola epidemics in sugar beet

https://github.com/paulmelloy/cercospora

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
Last synced: 9 months ago · JSON representation

Repository

A R package for determining the timing of Cercospora beticola epidemics in sugar beet

Basic Info
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 4
  • Releases: 2
Created over 3 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog License Codemeta

README.md

cercospoRa

cercospoRa website repo status CRAN status <!-- badges: end -->

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

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

All Time
  • Total Commits: 329
  • Total Committers: 4
  • Avg Commits per committer: 82.25
  • Development Distribution Score (DDS): 0.085
Past Year
  • Commits: 91
  • Committers: 2
  • Avg Commits per committer: 45.5
  • Development Distribution Score (DDS): 0.022
Top Committers
Name Email 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
documentation (7) enhancement (4) wontfix (3) bug (3) improvement (3) question (2) invalid (1) help wanted (1)
Pull Request Labels

Dependencies

DESCRIPTION cran
  • Rdpack * imports
  • data.table * imports
  • epiphytoolR * imports
  • lubridate * imports
  • stats * imports
  • knitr * suggests
  • rmarkdown * suggests
  • testthat >= 3.0.0 suggests