La fonction ComputeIndicator

Chargement du package

library(getariR)

Argument de la fonction

La fonction ComputeIndicator peut prendre un certain nombre d’argument en fonction de ce que vous voulez calculer

NameIndicator :

Le nom de l’indicateur à calculer. Les valeurs possibles sont "hdaystmax","hdaystmin","hdaystmean","excraidays","mint",``"maxt","meant","avsorad","Dsp","Wsp","raifreq","excraifreq","hsfreq", "cfreqtmean","cfreqtmax",“cfreqtmin". Pour plus d’information sur les indicateurs, reférez vous à la bibliothèque d’indicateur disponible ici

colnamesVariable

Le nom de la variable climatique sur laquelle l’indicateur doit être calculé.

climateData

Le data.frame contenant les données climatiques dans un format similaire à donClimate. Les colonnes cell, year, month, day_of_month, et day_of_year doivent être renseignées avec ces noms de colonnes.

# A tibble: 2,192 × 12
    cell  year month day_of_month day_of_year sfcwind tasmax tasmin   tas prtot
   <dbl> <dbl> <dbl>        <dbl>       <dbl>   <dbl>  <dbl>  <dbl> <dbl> <dbl>
 1 14621  2002     1            1           1    8.5    10.8    9.1   9.8   0.7
 2 14621  2002     1            2           2    7.62   10.8    5.8   8.3  17.2
 3 14621  2002     1            3           3    3.23    9.2    3.3   4.7   4.2
 4 14621  2002     1            4           4    7.7     9.9    5.5   7.6  24.5
 5 14621  2002     1            5           5    6.74    9.4    6.4   7.9  13.4
 6 14621  2002     1            6           6    7.73    5.9    5.4   5.6  19.9
 7 14621  2002     1            7           7    7.45    6.9    4.8   5.6   1.7
 8 14621  2002     1            8           8    7.73   10      4.8   8.7  19.3
 9 14621  2002     1            9           9    4.73    8.9    8.5   8.7   0.3
10 14621  2002     1           10          10    8       9.2    6.1   7.8   7.6
# ℹ 2,182 more rows
# ℹ 2 more variables: hr <dbl>, etppm <dbl>

startStade et endStade

La période sur laquelle l’indicateur doit être calculé. Dans le cas d’indicateurs agroclimatique, renseigner uniquement le jour de l’année. Par exemple pour un calcul annuel :

startStade=1,endStade=365

twoYearsCulture

Si vous travaillez sur une culture sur deux ans mettez twoYearsCulture=T #### phenoFile Si vous calculez des indicateurs écodlimatique, renseignez ici le data.frame contenant les stades phénologique (exemple à venir) #### seuil Si vous calculez un indicateur à seuil type hdaystmax, indiquez le seuil ici. #### LengthMin Si vous calculez un indicateur avec une durée type Dsp, indiquez le nombre de jour à prendre en compte. #### process Si vous voulez ajouter un processus sur lequel l’indicateur joue #### effect Si vous voulez préciser l’effet #### funcNorm Si vous voulez normaliser vos données, précisez la fonction de normalisation ici. (Vous verrez des exemples plus loin. )

Indicateur agroclimatique

Cas d’un indicateur sur 1 an

Nous allons caluler notre premier indicateur agroclimatique. A savoir la moyenne des températures minimales entre le premier janvier et le 31 décembre.

MinTemp<-getariR::ComputeIndicator(NameIndicator = "mint",colnamesVariable = tasmin,climateData = DonClimate,startStade = 1,endStade = 365,twoYearsCulture = F)
MinTemp
# A tibble: 6 × 7
   cell  year rawvalue indicator    ID debutPhase finPhase
  <dbl> <dbl>    <dbl> <chr>     <dbl>      <dbl>    <dbl>
1 14621  2002     7.66 mint          1          1      365
2 14621  2003     8.29 mint          1          1      365
3 14621  2004     8.49 mint          1          1      365
4 14761  2002     8.67 mint          1          1      365
5 14761  2003     9.22 mint          1          1      365
6 14761  2004     9.35 mint          1          1      365

En sortie, vous avez un data.frame avec les information suivantes, cell correspond à la cellule d’étude, year à l’année de récolte, rawvalue à la valeur brute de l’indicateur,indicator renvoi le nom de l’indicateur, nous reviendrons sur ID plus tard, debutPhase et finPhase sont la période de calcul.

Cas d’un indicateur à seuil sur une culture sur deux ans

Maintenant nous voulons calculer le nombre de jours où les températures maximales sont supérieurs à 20 °C entre le 1er octobre et le 30 juin de l’année suivante (cas d’un calcul sur deux ans). Pour cela, il faut ajouter 365 à endStade pour avoir le calcul sur deux ans. Nous avons ajouter l’argument seuil fixé à 20

hdaystmax<-getariR::ComputeIndicator(NameIndicator = "hdaystmax",colnamesVariable = tasmax,climateData = DonClimate,startStade = 275,endStade = 578,twoYearsCulture = T,seuil = 20)
hdaystmax
# A tibble: 4 × 7
   cell  year rawvalue indicator    ID debutPhase finPhase
  <dbl> <dbl>    <dbl> <chr>     <dbl>      <dbl>    <dbl>
1 14621  2003       23 hdaystmax     1        275      578
2 14621  2004       42 hdaystmax     1        275      578
3 14761  2003       31 hdaystmax     1        275      578
4 14761  2004       61 hdaystmax     1        275      578

Indicateurs écoclimatiques

Pour calculer des indicateurs écoclimatiques, il faut fournir un fichier phénologique avec les dates par stade en jour julien dans le même format que le fichier phenoFile Il existe dans le packages des fonctions de modèles phénologiques pour certaines espèces (vigne,blé,maïs et prairie) mais rien n’empêche de fournir votre propre jeu de donnée. Pour calculer un indicateur écoclimatique, il faut spécifier le fichier phénologique utilisé ainsi que le nom de colonne de stades sur lesquels on veut le cacluler. ici un exemple on l’on calcul la moyenne des températures minimales entre s1 et s2.

mints1s2<-ComputeIndicator(NameIndicator = "mint",colnamesVariable = tasmin,climateData = DonClimate,startStade = s1,endStade = s2,phenoFile = phenoFile,twoYearsCulture = F)
Joining with `by = join_by(cell, year)`
mints1s2
# A tibble: 6 × 7
   cell  year rawvalue indicator    ID debutPhase finPhase
  <dbl> <dbl>    <dbl> <chr>     <dbl> <chr>      <chr>   
1 14621  2002     5.54 mint          1 s1         s2      
2 14621  2003     6.37 mint          1 s1         s2      
3 14621  2004     6.48 mint          1 s1         s2      
4 14761  2002     6.4  mint          1 s1         s2      
5 14761  2003     7.31 mint          1 s1         s2      
6 14761  2004     7.00 mint          1 s1         s2      

Si on considère que cet indicateur affect la croissance et peut entrainer la mort de celle ci, on peut spécifier avec process et effect

mints1s2GD<-ComputeIndicator(NameIndicator = "mint",colnamesVariable = tasmin,climateData = DonClimate,startStade = s1,endStade = s2,phenoFile = phenoFile,twoYearsCulture = F,process = "growth",effect = "death")
Joining with `by = join_by(cell, year)`
mints1s2GD
# A tibble: 6 × 9
   cell  year rawvalue indicator    ID debutPhase finPhase process effect
  <dbl> <dbl>    <dbl> <chr>     <dbl> <chr>      <chr>    <chr>   <chr> 
1 14621  2002     5.54 mint          1 s1         s2       growth  death 
2 14621  2003     6.37 mint          1 s1         s2       growth  death 
3 14621  2004     6.48 mint          1 s1         s2       growth  death 
4 14761  2002     6.4  mint          1 s1         s2       growth  death 
5 14761  2003     7.31 mint          1 s1         s2       growth  death 
6 14761  2004     7.00 mint          1 s1         s2       growth  death 

Cela ajoute deux nouvelles colonnes process et effect. Ainsi, on peut calculer plusieurs fois le même indicateur avec des seuils différents suivant qu’il affect un processus ou a un effet différents sur la plante.

Normalisation

Si l’on veut comparer des indicateurs entre eux, avec des valeurs d’unité différents, on peut normaliser entre 0 et 1 l’indicateur à l’aide d’une fonction de normalisation. Les fonction disponibles sont affine, sigmoid et exponential

RainSums0s1Norm<-ComputeIndicator(NameIndicator = "rainsum",climateData = DonClimate,colnamesVariable = prtot,
                 startStade =s0,endStade = s1,twoYearsCulture = F,phenoFile = phenoFile,funcNorm = "sigmoid",coef=c(0.2,4)
                 ,process="growth",effect="watdef")
Joining with `by = join_by(cell, year)`
RainSums0s1Norm
# A tibble: 6 × 10
   cell  year rawvalue indicator    ID debutPhase finPhase process effect
  <dbl> <dbl>    <dbl> <chr>     <dbl> <chr>      <chr>    <chr>   <chr> 
1 14621  2002     13.9 rainsum       1 s0         s1       growth  watdef
2 14621  2003     22.2 rainsum       1 s0         s1       growth  watdef
3 14621  2004      6.6 rainsum       1 s0         s1       growth  watdef
4 14761  2002     15.3 rainsum       1 s0         s1       growth  watdef
5 14761  2003     12.6 rainsum       1 s0         s1       growth  watdef
6 14761  2004      2.6 rainsum       1 s0         s1       growth  watdef
# ℹ 1 more variable: normvalue <dbl>