#' @title Reineke Density Index (RDI)
#'
#' @description Cette fonction calcule le RDI d'un peuplement a partir de la densite, de la surface terriere ou du Dg.
#' La formule du RDI par defaut est celle de Jean-Francois Dhote, utilisee dans le protocole de la Cooperative de donnees - Groupe Chene.
#'
#' @param N : vecteurs ou scalaire, densite des placettes (tiges/ha)
#' @param G : vecteurs ou scalaire, surface terriere des placettes (m2/ha)
#' @param Dg : vecteurs ou scalaire, diametre quadratique moyen des placettes (cm)
#' @param ess : scalaires, essence du peuplement, par defaut "CHS". Peut prendre comme valeur "CHS", "CHP".
#' @param modele : scalaire, nom du modele utilise, par defaut "Dhote". Peut prendre comme valeur "Dhote", "Legoff".
#' @note Seules deux des variables N, G et Dg sont necessaires pour le calcul. Les vecteur N, Dg et G doivent etre de la meme taille, leurs valeurs representant plusieurs placette.
#' @return Reineke Density Index (en scalaire ou en vecteur selon l'entree).
#' @author Quentin Girard
#' @references J.F. Dhote (RFF, XLIX, no6, p. 560, 1997)
#'
#' @seealso calc_D0
#' @examples
#' # A venir
#' @keywords function
#'
#' @include coopR-package.R
#' @family coopR
#' @export
### C/. a partir de variable placette et de surface
# 1). RDI avec differentes possibilites de combinaison de variable
calc_RDI <- function(N = NULL, G = NULL, Dg= NULL, ess = "CHS", modele = "Dhote") {
# donnees des constantes
if (modele == "Dhote") {
if (ess %in% c("CHS", "CHP")) {
a <- 1.701
b <- 171582
} else {
stop("les seules essences referencees pour le modele Dhote sont CHS et CHP")
}
} else {
stop("seul le modele Dhote est actuellement renseigne")
}
# verification des entrees
if (sum(is.null(N), is.null(G), is.null(Dg)) == 0) {
stop("il est inutile de renseigner N, G et Dg, deux variables suffisent \n")
} else if (sum(is.null(N), is.null(G), is.null(Dg)) == 3) {
stop("il faut renseigner les donnees (2 vecteurs parmi N, G et Dg) \n")
} else if (sum(is.null(N), is.null(G), is.null(Dg)) == 2) {
stop("il manque des donnees (soit N, soit G, soit Dg) \n")
} else if (!(length(N) == length(Dg) | length(G) == length(N) | length(G) == length(Dg))) {
stop("les deux vecteurs utilises parmi N, Dg et G doivent etre de meme longueur \n")
}
# calcul du RDI a partir des vecteurs N et Dg
if (is.null(Dg)) {
Dg <- 200 * sqrt((G / N) / pi)
} else if (is.null(N)) {
N <- G / (pi * Dg^2 /40000)
}
return(N * Dg ^ a / b)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.