portalcasting
portalcasting: Supporting automated forecasting of rodent populations - Published in JOSS (2022)
Science Score: 59.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
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
✓Committers with academic emails
1 of 8 committers (12.5%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Model development, deployment, and evaluation for forecasting Portal ecosystem dynamics
Basic Info
- Host: GitHub
- Owner: weecology
- License: other
- Language: R
- Default Branch: main
- Homepage: https://weecology.github.io/portalcasting
- Size: 44.9 MB
Statistics
- Stars: 8
- Watchers: 4
- Forks: 10
- Open Issues: 28
- Releases: 79
Topics
Metadata Files
README.md
Supporting automated forecasting of rodent populations
Overview
The portalcasting package offers a comprehensive system for developing, deploying, and evaluating ecological models that forecast changes in ecological systems over time. It particularly focuses on the long-term study of mammal population and community dynamics, known as the Portal Project.
Core Depedencies
The portalcasting package depends on the PortalData and portalr packages.
- PortalData is the collection of all the Portal project data.
- portalr is a collection of functions to summarize the Portal data.
The portalcasting package integrates the PortalData repository and the portalr data management package into a streamlined pipeline. This pipeline is used to forecast.
The functionality of portalcasting extends beyond its deployment, as its functions are portable. This allows users to establish a fully-functional replica repository on either a local or remote machine, facilitating the development and testing of new models within a sandbox environment.
Current deployment:
The Portal-forecasts houses tools that leverage the portalcasting pipeline to generate weekly forecasts. The forecasts are then showcased on the Portal Forecasts website. This website offers users an interactive interface to explore the forecasting results. The source code for this website is hosted on GitHub. Additionally, the portal-forecasts repository archives the forecasts on both GitHub and Zenodo
Docker Container
We leverage a Docker container to enable reproducibility of the Portal forecasting.
Presently, we use a Docker image of the software environment to create a container for running the code.
The image is automatically rebuilt when there is a new portalcasting release, tagged with both the latest and version-specific (vX.X.X) tags, and pushed to DockerHub.
Because the latest image is updated with releases, the current main branch code in portalcasting is typically, but not necessarily always, being executed within the predictions repository.
The API is actively developed and welcomes any contributors.
Installation
You can install the package from github:
r
install.packages("remotes")
remotes::install_github("weecology/portalcasting")
You will need to install rjags and JAGS.
MacOS users are recommended to install rjags after reading the instructions on the package's README file, or use the JAGS discussion forum thread for help under the MacOS installation of JAGS.
r
install.packages("rjags", configure.args="--enable-rpath")
Production environment
If you wish to spin up a local container from the latest portalcasting image (to ensure that you are using a copy of the current production environment for implementation of the portalcasting pipeline), you can run
sudo docker pull weecology/portalcasting
from a shell on a computer with Docker installed.
Usage
Get started with the "how to set up a Portal Predictions directory" vignette.
If you are interested in adding a model to the preloaded set of models, see the "adding a model and data" vignette. That document also details how to expand the datasets available to new and existing models.
Developer and Contributor notes
We welcome any contributions in form of models or pipeline changes.
For the workflow, please checkout the contribution and code of conduct pages.
Acknowledgements
This project is developed in active collaboration with DAPPER Stats.
The motivating study—the Portal Project—has been funded nearly continuously since 1977 by the National Science Foundation, most recently by DEB-1622425 to S. K. M. Ernest. Much of the computational work was supported by the Gordon and Betty Moore Foundation’s Data-Driven Discovery Initiative through Grant GBMF4563 to E. P. White.
We thank Heather Bradley for logistical support, John Abatzoglou for assistance with climate forecasts, and James Brown for establishing the Portal Project.
Owner
- Name: Weecology
- Login: weecology
- Kind: organization
- Website: http://weecology.org
- Repositories: 93
- Profile: https://github.com/weecology
CodeMeta (codemeta.json)
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"@type": "SoftwareSourceCode",
"identifier": "portalcasting",
"description": "Create a directory, populate it with data, build models, forecast rodent populations, and visualize the results. This package provides the functionality underlying the Portal Predictions forecasts Project <https://github.com/weecology/portal-forecasts> as well as support for exploring and developing new models in sandbox environments.",
"name": "portalcasting: Functions Used in Predicting Portal Rodent Dynamics",
"relatedLink": "https://weecology.github.io/portalcasting/",
"codeRepository": "https://github.com/weecology/portalcasting",
"issueTracker": "https://github.com/weecology/portalcasting/issues",
"license": "https://spdx.org/licenses/MIT",
"version": "0.51.0",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "R",
"url": "https://r-project.org"
},
"runtimePlatform": "R version 4.2.2 (2022-10-31 ucrt)",
"author": [
{
"@type": "Person",
"givenName": [
"Juniper",
"L."
],
"familyName": "Simonis",
"email": "juniper.simonis@weecology.org",
"@id": "https://orcid.org/0000-0001-9798-0460"
},
{
"@type": "Person",
"givenName": [
"Glenda",
"M."
],
"familyName": "Yenni",
"@id": "https://orcid.org/0000-0001-6969-1848"
},
{
"@type": "Person",
"givenName": [
"Ellen",
"K."
],
"familyName": "Bledsoe",
"@id": "https://orcid.org/0000-0002-3629-7235"
},
{
"@type": "Person",
"givenName": [
"Erica",
"M."
],
"familyName": "Christensen",
"@id": "https://orcid.org/0000-0002-5635-2502"
},
{
"@type": "Person",
"givenName": "Henry",
"familyName": "Senyondo",
"@id": "https://orcid.org/0000-0001-7105-5808"
},
{
"@type": "Person",
"givenName": "Hao",
"familyName": "Ye",
"@id": "https://orcid.org/0000-0002-8630-1458"
},
{
"@type": "Person",
"givenName": [
"Ethan",
"P."
],
"familyName": "White",
"@id": "https://orcid.org/0000-0001-6728-7745"
},
{
"@type": "Person",
"givenName": [
"S. K.",
"Morgan"
],
"familyName": "Ernest",
"@id": "https://orcid.org/0000-0002-6026-8530"
}
],
"maintainer": [
{
"@type": "Person",
"givenName": [
"Juniper",
"L."
],
"familyName": "Simonis",
"email": "juniper.simonis@weecology.org",
"@id": "https://orcid.org/0000-0001-9798-0460"
}
],
"softwareSuggestions": [
{
"@type": "SoftwareApplication",
"identifier": "pkgdown",
"name": "pkgdown",
"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=pkgdown"
},
{
"@type": "SoftwareApplication",
"identifier": "testthat",
"name": "testthat",
"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"
}
],
"softwareRequirements": {
"1": {
"@type": "SoftwareApplication",
"identifier": "R",
"name": "R",
"version": ">= 3.5.0"
},
"2": {
"@type": "SoftwareApplication",
"identifier": "forecast",
"name": "forecast",
"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=forecast"
},
"3": {
"@type": "SoftwareApplication",
"identifier": "hypergeo",
"name": "hypergeo",
"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=hypergeo"
},
"4": {
"@type": "SoftwareApplication",
"identifier": "tscount",
"name": "tscount",
"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=tscount"
},
"5": {
"@type": "SoftwareApplication",
"identifier": "arrow",
"name": "arrow",
"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=arrow"
},
"6": {
"@type": "SoftwareApplication",
"identifier": "bslib",
"name": "bslib",
"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=bslib"
},
"7": {
"@type": "SoftwareApplication",
"identifier": "coda",
"name": "coda",
"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=coda"
},
"8": {
"@type": "SoftwareApplication",
"identifier": "english",
"name": "english",
"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=english"
},
"9": {
"@type": "SoftwareApplication",
"identifier": "htmltools",
"name": "htmltools",
"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=htmltools"
},
"10": {
"@type": "SoftwareApplication",
"identifier": "httr",
"name": "httr",
"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=httr"
},
"11": {
"@type": "SoftwareApplication",
"identifier": "jsonlite",
"name": "jsonlite",
"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=jsonlite"
},
"12": {
"@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"
},
"13": {
"@type": "SoftwareApplication",
"identifier": "markdown",
"name": "markdown",
"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=markdown"
},
"14": {
"@type": "SoftwareApplication",
"identifier": "portalr",
"name": "portalr",
"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=portalr"
},
"15": {
"@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"
},
"16": {
"@type": "SoftwareApplication",
"identifier": "runjags",
"name": "runjags",
"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=runjags"
},
"17": {
"@type": "SoftwareApplication",
"identifier": "scoringRules",
"name": "scoringRules",
"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=scoringRules"
},
"18": {
"@type": "SoftwareApplication",
"identifier": "shiny",
"name": "shiny",
"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=shiny"
},
"19": {
"@type": "SoftwareApplication",
"identifier": "stats",
"name": "stats"
},
"20": {
"@type": "SoftwareApplication",
"identifier": "viridis",
"name": "viridis",
"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=viridis"
},
"21": {
"@type": "SoftwareApplication",
"identifier": "yaml",
"name": "yaml",
"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=yaml"
},
"SystemRequirements": "JAGS 4.x.y; libcurl; gsl"
},
"fileSize": "1602.8KB",
"citation": [
{
"@type": "ScholarlyArticle",
"datePublished": "2022",
"author": [
{
"@type": "Person",
"givenName": [
"Juniper",
"L."
],
"familyName": "Simonis"
},
{
"@type": "Person",
"givenName": [
"Glenda",
"M."
],
"familyName": "Yenni"
},
{
"@type": "Person",
"givenName": [
"Ellen",
"K."
],
"familyName": "Bledsoe"
},
{
"@type": "Person",
"givenName": [
"Erica",
"M."
],
"familyName": "Christensen"
},
{
"@type": "Person",
"givenName": "Henry",
"familyName": "Senyondo"
},
{
"@type": "Person",
"givenName": [
"Shawn",
"D."
],
"familyName": "Taylor"
},
{
"@type": "Person",
"givenName": "Hao",
"familyName": "Ye"
},
{
"@type": "Person",
"givenName": [
"Ethan",
"P."
],
"familyName": "White"
},
{
"@type": "Person",
"givenName": [
"S.",
"K.",
"Morgan"
],
"familyName": "Ernest"
}
],
"name": "portalcasting: Supporting automated forecasting of rodent populations",
"identifier": "10.21105/joss.03220",
"pagination": "3220",
"@id": "https://doi.org/10.21105/joss.03220",
"sameAs": "https://doi.org/10.21105/joss.03220",
"isPartOf": {
"@type": "PublicationIssue",
"issueNumber": "72",
"datePublished": "2022",
"isPartOf": {
"@type": [
"PublicationVolume",
"Periodical"
],
"volumeNumber": "7",
"name": "Journal of Open Source Software"
}
}
}
],
"releaseNotes": "https://github.com/weecology/portalcasting/blob/master/NEWS.md",
"readme": "https://github.com/weecology/portalcasting/blob/main/README.md",
"contIntegration": [
"https://github.com/weecology/portalcasting/actions/workflows/check-release.yaml",
"https://github.com/weecology/portalcasting/actions/workflows/docker-publish.yml",
"https://codecov.io/github/weecology/portalcasting/branch/main"
],
"developmentStatus": [
"https://lifecycle.r-lib.org/articles/stages.html",
"https://www.repostatus.org/#active"
],
"keywords": [
"ecology",
"forecasting",
"portal",
"r",
"r-package",
"r-stats",
"reproducible-research",
"shiny",
"workflow"
]
}
GitHub Events
Total
- Release event: 1
- Push event: 8
- Pull request event: 4
- Create event: 3
Last Year
- Release event: 1
- Push event: 8
- Pull request event: 4
- Create event: 3
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| juniperlsimonis | d****s@g****m | 1,462 |
| henry senyondo | h****e@g****m | 32 |
| Glenda | g****i | 22 |
| Ethan White | e****n@w****g | 16 |
| Hao Ye | l****d@g****m | 13 |
| skmorgane | m****n@w****g | 2 |
| Pat Dumandan | p****a@u****u | 1 |
| Arfon Smith | a****n | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 23
- Total pull requests: 90
- Average time to close issues: 10 months
- Average time to close pull requests: 7 days
- Total issue authors: 4
- Total pull request authors: 6
- Average comments per issue: 0.7
- Average comments per pull request: 0.49
- Merged pull requests: 65
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 4
- Average time to close issues: N/A
- Average time to close pull requests: 2 days
- Issue authors: 0
- Pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.5
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- juniperlsimonis (20)
- nicholasjclark (1)
- henrykironde (1)
- himanshu-02 (1)
Pull Request Authors
- juniperlsimonis (54)
- henrykironde (29)
- gmyenni (4)
- ha0ye (3)
- ethanwhite (2)
- skmorgane (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 81
proxy.golang.org: github.com/weecology/portalcasting
- Documentation: https://pkg.go.dev/github.com/weecology/portalcasting#section-documentation
- License: other
-
Latest release: v0.60.7
published 10 months ago
Rankings
Dependencies
- R >= 3.5.0 depends
- coda * imports
- forecast * imports
- httr * imports
- jsonlite * imports
- portalr * imports
- runjags * imports
- scoringRules * imports
- tscount * imports
- viridis * imports
- yaml * imports
- english * suggests
- knitr * suggests
- markdown * suggests
- pkgdown * suggests
- rmarkdown * suggests
- testthat * suggests
- actions/checkout v2 composite
- crazy-max/ghaction-docker-meta v1 composite
- docker/build-push-action ad44023a93711e3deb337508980b4b5e9bcdc5dc composite
- docker/login-action 28218f9b04b4f3f62068d7b6ce6ca5b26e35336c composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
- rocker/tidyverse latest build
- actions/checkout v3 composite
- r-lib/actions/check-r-package v2 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
- actions/checkout v3 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
- actions/checkout v3 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite