\ \

Référence

Le calcul des surfaces semée et récoltée d'une micro-parcelle d'essai au champ pour du blé tendre d'hiver est défini par le GEVES dans les annexes du protocole d'expérimentation pour les essais VATE. Ci-dessous seul le cas d'une récolte de l'ensemble des rangs est implémenté, mais il existe aussi des formules pour la récolte des rangs centraux uniquement. \

Les valeurs par défaut ci-dessous correspondent à un semoir à 7 rangs, large de 106 cm, attelé derrière un tracteur dont la voie est de 150 cm, soit une distance inter-rang de 17,7 cm (106/(7-1)) et une distance inter-parcelle de 44 cm (150-106). <!--

Saclay : 7 rangs ; largeur semoir = 106 cm ; voie du tracteur = 150 cm

donc interRows = 106 / (7-1) = 17.7

et interPlot = 150 - 106 = 44

--> \ \ \

Surface semée

Nécessaire pour calculer la quantité de semence d'une parcelle d'essai.

## all in cm
calcSowingSurface <- function(nbRows, interRow, lengthSowing){
  out <- NA

  widthTot <- ((nbRows - 1) * interRow) + ((interRow/2) * 2)
  lengthTot <- lengthSowing
  out <- widthTot * lengthTot

  out <- out / 10000 # switch to m2

  return(out)
}
numericInput("nbRows_s", "Entrez votre nombre de rangs de semis :", 7, step=1)

numericInput("interRow_s", "Entrez votre écart entre deux rangs de semis (en cm) :", 17.7, step=0.1)

numericInput("lengthSowing", "Entrez votre longueur semée (en m) :", 7, step=0.02)

renderText({
  sowingSurface <- calcSowingSurface(input$nbRows_s,
                                     input$interRow_s,
                                     input$lengthSowing * 100)
  paste0("Voici la surface semée à utiliser : ",
         round(sowingSurface, 2), " m2")
})

\

Surface récoltée

Nécessaire pour calculer le rendement d'une parcelle d'essai.

## all in cm
calcHarvestSurface <- function(nbRows, interRow, interPlot, lengthHarvest,
                               alley=NULL, verbose=FALSE){
  out <- NA

  if(! is.null(alley)){
    if(alley > 80)
      alley <- 80
  }

  widthTot <- ((nbRows - 1) * interRow) +
    ((interPlot / 2) * 2)
  if(is.null(alley)){
    lengthTot <- lengthHarvest
  } else{
    lengthTot <- lengthHarvest + (alley / 2) * 2
  }

  if(verbose)
    message(paste0("nbRows = ", nbRows,
                   "\ninterRow = ", interRow,
                   "\ninterPlot = ", interPlot,
                   "\nlengthHarvest = ", lengthHarvest,
                   paste0("\nalley = ",
                          ifelse(is.null(alley), NA, alley)),
                   "\nwidth = ", widthTot, " cm",
                   "\nlength = ", lengthTot, " cm"))

  out <- widthTot * lengthTot

  out <- out / 10000 # switch to m2

  return(out)
}
numericInput("nbRows_h", "Entrez votre nombre de rangs de semis :", 7, step=1)

numericInput("interRow_h", "Entrez votre écart entre deux rangs de semis (en cm) :", 17.7, step=0.1)

numericInput("interPlot", "Entrez votre écart entre les rangs extérieurs de 2 parcelles adjacentes (en cm) :", 44, step=0.1)

numericInput("lengthHarvested", "Entrez votre longueur récoltée (en m) :", 5, step=0.02)

numericInput("alley", "Entrez votre largeur d'allée (en cm) :", 0, step=0.02)

renderText({
  widthHarvested <- ((input$nbRows_h - 1) * input$interRow_h) / 100 # in m
  harvSurf <- input$lengthHarvested * widthHarvested
  paste0("Surface récoltée avant correction : ",
         round(harvSurf, 2), " m2")
})

renderText({
  widthHarvested <- (input$nbRows_h * input$interRow_h) / 100 # in m
  harvSurf <- input$lengthHarvested * widthHarvested
  harvSurfCorr <- calcHarvestSurface(input$nbRows_h,
                                     input$interRow_h,
                                     input$interPlot,
                                     input$lengthHarvested * 100,
                                     input$alley, TRUE)
  inc <- 100 * (harvSurfCorr / harvSurf - 1)
  paste0("Surface récoltée après correction : ",
         round(harvSurfCorr, 2), " m2",
         " (+", round(inc, 2), "%)")
})

\ \ \ \ \ \ \



timflutre/rutilstimflutre documentation built on Feb. 7, 2024, 8:17 a.m.