{"id":32203599,"url":"https://github.com/kuadrat/growr","last_synced_at":"2026-03-05T18:38:43.641Z","repository":{"id":196864360,"uuid":"697326094","full_name":"kuadrat/growR","owner":"kuadrat","description":"R implementation of the grassland model ModVege.","archived":false,"fork":false,"pushed_at":"2024-08-29T14:55:22.000Z","size":20827,"stargazers_count":4,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-25T08:08:41.139Z","etag":null,"topics":["agronomy","grass","grassland","modelling","simulation-modeling"],"latest_commit_sha":null,"homepage":"https://kuadrat.github.io/growR/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kuadrat.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-09-27T13:57:32.000Z","updated_at":"2025-02-25T14:16:31.000Z","dependencies_parsed_at":"2023-12-13T11:43:46.602Z","dependency_job_id":"d71eb381-3984-461f-9705-53172bfc10ac","html_url":"https://github.com/kuadrat/growR","commit_stats":{"total_commits":89,"total_committers":1,"mean_commits":89.0,"dds":0.0,"last_synced_commit":"cf292b0cc5bc4a7315047249b3e38c8b40245b64"},"previous_names":["kuadrat/rmodvege"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kuadrat/growR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuadrat%2FgrowR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuadrat%2FgrowR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuadrat%2FgrowR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuadrat%2FgrowR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kuadrat","download_url":"https://codeload.github.com/kuadrat/growR/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuadrat%2FgrowR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30143199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T16:58:46.102Z","status":"ssl_error","status_checked_at":"2026-03-05T16:58:45.706Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agronomy","grass","grassland","modelling","simulation-modeling"],"created_at":"2025-10-22T04:43:28.454Z","updated_at":"2026-03-05T18:38:43.591Z","avatar_url":"https://github.com/kuadrat.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"# growR - R implementation of the grassland model ModVege[^1]\n\n\u003c!-- badges: start --\u003e\n  [![Documentation](https://badgen.net/badge/Documentation/github.io/cyan)](https://kuadrat.github.io/growR/)\n  [![R-CMD-check](https://github.com/kuadrat/growR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/kuadrat/growR/actions/workflows/R-CMD-check.yaml)\n  [![codecov](https://codecov.io/gh/kuadrat/growR/graph/badge.svg?token=65OACJW5FV)](https://app.codecov.io/gh/kuadrat/growR)\n  [![status](https://joss.theoj.org/papers/bd4b3a207a8d4de1dc784dba702e38fc/status.svg)](https://joss.theoj.org/papers/10.21105/joss.06260)\n\u003c!-- badges: end --\u003e\n\n![](man/figures/logo.png)\n\nThis `R` implementation of the grassland model `ModVege` by [Jouven et \nal.](https://doi.org/10.1111/j.1365-2494.2006.00515.x)[^1] is based off an \n`R` implementation created by Pierluigi Calanca[^2].\n\nThe implementation in this package contains a few additions to the above \ncited version of ModVege, such as simulations of management decisions, and \ninfluences of snow cover. As such, the model is fit to simulate grass growth \nin mountainous regions, such as the Swiss Alps.\n\nThe package also contains routines for calibrating the model and helpful \ntools for analysing model outputs and performance.\n\n## Contents\n\n1. [What is this for?](#what-is-this-for?)\n2. [Installation](#installation)\n3. [Getting Started](#getting-started)\n4. [Contributing](#contributing)\n5. [Contact](#contact)\n6. [Glossary](#glossary)\n7. [Footnotes and References](#footnotes-and-references)\n\n## What is this for?\n\nThis `R` package allows simulation of grass growth.\n\n### Why simulate grass growth?\n\nGrasslands constitute one of Earth's most widespread terrestrial \necosystems[^3] and a core element in global agriculture, providing roughly \nhalf the feed inputs for global livestock systems \n[^4].\nBeside their contribution to global food production, they provide a catalogue \nof other ecosystem services, such as water flow and erosion regulation, \npollination service, carbon sequestration and climate regulation \n[^3].\nThe latter have become particularly important in light of anthropogenic \nclimate change [^5].\n\nUnderstanding the functioning of grassland ecosystems and their responses to \nexternal changes is therefore of significant interest.\nVegetation models provide a powerful platform for such studies.\n\n### How does this compare to other grass and vegetation models?\n\nThe number of grassland models is large and ever-growing.\nWe can therefore not give a comprehensive list, but will try to make a couple \nof representative comparisons to illustrate where `growR` has its niche.\nFor the most part, an advantage of `growR` over other, similar models and \ntheir implementations is its distribution as `R` package via CRAN.\n\n- The [Hurley Pasture Model](https://sites.massey.ac.nz/hurleypasturemodel/hurley-pasture-model/) [^6]\n  is a detailed mechanistic model for managed pastures. It is implemented in \n  the *Advanced continuous simulation language (ACSL)* and the source code is \n  available on request.\n- [BASGRA](https://github.com/davcam/BASGRA/) [^7] \n  and its descendant [BASGRA_N](https://github.com/MarcelVanOijen/BASGRA_N) \n  [^8] are multi-year grassland models which include tiller dynamics.\n  They are also implemented in `R` with the source code freely available. \n  However, they do not come packaged, as `growR` does.\n- PROGRASS [^9] was developed to capture the interactions in grass/clover \n  mixtures. As of this writing, no accessible implementation was found.\n- The focus of PaSim [^10] is the investigation of livestock production, \n  which is not directly covered in `growR`, under climate change conditions.\n\n## Installation\n\n### From CRAN\n\nThis is the preferred installation route for most users.\n\nThis `R` package can be installed as usual from \n[CRAN](https://cran.r-project.org/) by issuing the following at the prompt of \nan `R` session:\n```\ninstall.packages(\"growR\")\n```\n\n### From source\n\nInstalling from source might make sense if...\n\n- you intend on making changes to the model[^11],\n- you want to contribute to package development and maintenance,\n- you want to get access to the cutting edge version, which may have changes\n  not yet available on the CRAN version but is also likely less stable,\n- for some reason installation from CRAN is not an option for you.\n\nIn this case, start by cloning this repository\n```\n$ git clone git@github.com:kuadrat/growR.git\n```\nor via https:\n```\n$ git clone https://github.com/kuadrat/growR.git\n```\nThis will create a directory `growR` in your file system.\n    \nIf you don't have or don't want to use *git*, you could alternatively copy \nthe source code as a .zip file from \n[github](https://github.com/kuadrat/growR/archive/refs/heads/master.zip).\nUnzip the contents into a directory `growR`.\n\n#### Alternative A\n\nYou can now install your local version of *growR* by issuing\nthe following at the prompt of an `R` session:\n```\ninstall.packages(\"/full/path/to/growR\", repos = NULL)\n```\nYou should replace `\"/full/path/to/\"` with the actual path to the `growR` \ndirectory on your computer. Also, replace slashes (`/`) with backslashe (`\\`) \nif you're on Windows.\n\n`growR` should now be installed and available in `R` through `library(growR)`.   \nIf you make changes to the source files in the `growR` directory, just \nuninstall the current version (issue `remove.packages(\"growR\")` in `R`) \nand repeat this step.\n\n#### Alternative B\n\nIf you make frequent changes to the code, it might be\nunpractical to uninstall and reinstall the changed version each time. In that\ncase, `devtools` comes in very handy (if needed, install it with\n`install.packages(\"devtools\")`). It allows you to load a package into an active\n`R` session without the need of it being properly installed. The following has\npractically the equivalent result as the method described in \n[alternative A](#alternative-a):\n```\nlibrary(devtools)\ndevtools::load_all(\"/full/path/to/growR\")\n```\nThe notes about `\"/full/path/to\"` as in [Alternative A](#alternative-a) apply here as well.\n   \n### Non-package version\n\nIf you just want to focus on using and adjusting the ModVege model and feel \nthat the structure of an `R` package is more of a hindrance than a help to \nyour cause, there is a third option.\nSimply use the pre-`R`-package version of `growR`, called `rmodvege`, \nwhich is essentially a collection of `R` scripts.\nSome users might be more familiar or comfortable working in this manner \ninstead of working with package code.\n\nGo to https://github.com/kuadrat/rmodvege-scripts to access the script-based \nimplementation of ModVege. Note, however, that the script based version is \nnot maintained and might therefore lack some functionality which is provided \nby the `growR` package.\n\n## Getting Started\n\nThe package documentation is hosted on github pages: \nhttps://kuadrat.github.io/growR/.\nHave a look to find an introductory tutorial, further information as well as \nthe complete package reference.\n\nAlternatively (in case github pages are down or you prefer an offline \nsolution), you can find the same information under *Reference manual* and \n*Vignettes* on the CRAN package homepage: \nhttps://cran.r-project.org/web/packages/growR/index.html\n\nFinally, it's also possible to directly access the package documentation and \nvignettes from an `R` interpreter, using the `?` and `vignette()` tools, e.g.\n```\n\u003e library(growR)\n# Get help on a function or object\n\u003e ?growR_run_loop\n# some output...\n\n# List available vignettes\n\u003e vignette(package = \"growR\")\nVignettes in package ‘growR’:\n\nparameter_descriptions  \n                        Parameter Descriptions (source, html)\ngrowR                   Tutorial (source, html)\n\n# Inspect a vignette\n\u003e vignette(\"growR\")\n```\n\n## Contributing\n\nAll forms of contributions to this project are warmly welcome. You are invited to:\n- provide direct feedback over e-mail.\n- submit bug reports and feature requests via [github issues](https://github.com/kuadrat/growR/issues).\n- make changes and additions to the code and submit [pull requests](https://www.howtogeek.com/devops/what-are-git-pull-requests-and-how-do-you-use-them/) to let your contributions become part of future versions.\n- suggest improvements for or write documentation and tutorials.\n- reference work that made use of `growR` here.\n\nIf you intend to collaborate in a regular and ongoing manner, best get in touch with [Kevin Kramer](#contact).\n\n## Contact\n\n[Kevin Kramer](https://www.physik.uzh.ch/~kekram/): kevin.pasqual.kramer@protonmail.ch\n\n\n## Glossary\n\nTerms used in this project\n\n- `growR`\nName of this project and the corresponding R package. The shown \ncapitalization is adhered to even when used in function or object names in \nthe code base.\n- `ModVege`\nThe basis for the underlying grassland model implemented here. The naming \nconvention of objects overrides the capitalization shown here, when the model \nname is referred to in function and object names.\n- `rmodvege`\nEarly name of this project and still the name of a legacy project that was \nnot factored as an R package, but rather as a collection of R scripts. Still \navailable, though unmaintained at https://github.com/kuadrat/rmodvege-scripts/.\n\n## Footnotes and References\n\n[^1]: Jouven, M., P. Carrère, und R. Baumont. „Model Predicting Dynamics of \nBiomass, Structure and Digestibility of Herbage in Managed Permanent \nPastures. 1. Model Description“. Grass and Forage Science 61, Nr. 2 (2006): \n112–24. [doi:10.1111/j.1365-2494.2006.00515.x](https://doi.org/10.1111/j.1365-2494.2006.00515.x).\n\n[^2]: Calanca, Pierluigi, Claire Deléglise, Raphaël Martin, Pascal Carrère, \nund Eric Mosimann. „Testing the Ability of a Simple Grassland Model to \nSimulate the Seasonal Effects of Drought on Herbage Growth“. Field Crops \nResearch 187 (Februar 2016): 12–23. \n[doi:10.1016/j.fcr.2015.12.008](https://doi.org/10.1016/j.fcr.2015.12.008).\n\n[^3]: Zhao, Yuanyuan, Zhifeng Liu, and Jianguo Wu. “Grassland Ecosystem \nServices: A Systematic Review of Research Advances and Future Directions.” \nLandscape Ecology 35, no. 4 (April 1, 2020): 793–814. \n[doi:10.1007/s10980-020-00980-3](https://doi.org/10.1007/s10980-020-00980-3).\n\n[^4]: Herrero, Mario, Petr Havlík, Hugo Valin, An Notenbaert, Mariana C. \nRufino, Philip K. Thornton, Michael Blümmel, Franz Weiss, Delia Grace, and \nMichael Obersteiner. “Biomass Use, Production, Feed Efficiencies, and \nGreenhouse Gas Emissions from Global Livestock Systems.” Proceedings of the \nNational Academy of Sciences 110, no. 52 (December 24, 2013): 20888–93. \n[doi:10.1073/pnas.1308149110](https://doi.org/10.1073/pnas.1308149110).\n\n[^5]: IPCC Report 2022, Chapter 5.\n\n[^6]: Thornley, J. H. M. Grassland Dynamics: An Ecosystem Simulation Model. \nCAB International, 1998.\n\n[^7]: Van Oijen, M., M. Höglind, D.R. Cameron, and S.M. Thorsen. \n“BASGRA_2014.” Zenodo, August 13, 2015. https://doi.org/10.5281/zenodo.27867.\n\n[^8]: Höglind, Mats, David Cameron, Tomas Persson, Xiao Huang, and Marcel van \nOijen. “BASGRA_N: A Model for Grassland Productivity, Quality and Greenhouse \nGas Balance.” Ecological Modelling 417 (February 1, 2020): 108925. \n[doi:10.1016/j.ecolmodel.2019.108925](https://doi.org/10.1016/j.ecolmodel.2019.108925).\n\n[^9]: Lazzarotto, P., P. Calanca, and J. Fuhrer. “Dynamics of Grass–Clover \nMixtures—An Analysis of the Response to Management with the PROductive \nGRASsland Simulator (PROGRASS).” Ecological Modelling 220, no. 5 (March 10, \n2009): 703–24. \n[doi:10.1016/j.ecolmodel.2008.11.023](https://doi.org/10.1016/j.ecolmodel.2008.11.023).\n\n[^10]: Graux, A. -I., M. Gaurut, J. Agabriel, R. Baumont, R. Delagarde, L. \nDelaby, and J. -F. Soussana. “Development of the Pasture Simulation Model for \nAssessing Livestock Production under Climate Change.” Agriculture, Ecosystems \n\u0026 Environment 144, no. 1 (November 1, 2011): 69–91. \n[doi:10.1016/j.agee.2011.07.001](https://doi.org/10.1016/j.agee.2011.07.001).\n\n\n\n[^11]: If you make changes that generally improve `growR`, it would be great if you could \nshare them to make them available to all future users. See [Contributing](#contributing).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkuadrat%2Fgrowr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkuadrat%2Fgrowr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkuadrat%2Fgrowr/lists"}