R/calc_veg.R

#' @title Saison de vegetation
#'
#' @description Cette fonction calcule l'annee de saison de vegetation a partir de l'annee civile et du mois.
#'
#' @param an_civile : annee civile, vecteur d'entier
#' @param mois : mois de l'annee, vecteur de facteur de meme taille que an_civile
#' @note quelle est l annee de la saison de vegetation
# 
#' @return annee de saison de vegetation, vecteur de la meme taille que an_civile et mois
#' @author Quentin Girard
#' @references
#' 
#' @seealso calc_rdi, calc_D0
#' 
#' @examples
#' calc_veg(an_civile = rep(2014,2), mois = c(12,1))  
#' calc_veg(an_civile = rep(2014,2), mois = c(13,16))    # 13 : hiver de janvier a mars, 16 : automne de octobre a novembre      
#' calc_veg(an_civile = 2014, mois = 5)     # en pleine saison de vegetation !

#' @keywords function
#'
#' @include coopR-package.R
#' @family coopR
#' @export

calc_veg <- function(an_civile, mois) {
  if (length(an_civile) != length(mois)) {
    stop("an_civile et mois doivent avoir la meme longueur")
  }
  mois <- as.numeric(as.character(mois))
  if (sum(mois %in% c(4,5,6,14)) >0 ) {
    warning("Attention, il y a des mesures faites entre avril et juin! On considere (abusivement) que la saison de vegetation n'est pas commencee")
  }
  if (sum(mois %in% c(7,8,9,15)) >0 ) {
    warning("Attention, il y a des mesures faites entre juillet et septembre! On considere (abusivement) que la saison de vegetation est terminee")
  }
  ann_veg <- an_civile - ifelse(mois %in% c(1:6,13,14), 1, 
                         ifelse(mois %in% c(-1,7:12,15,16), 0, NA))
  return(ann_veg)
}
jprenaud-02/coopR documentation built on May 3, 2019, 7:06 p.m.