# Simulations d'éclaircie après densification : # package nécessaire : ggplot2, xlsx library(ggplot2) # pour graphique library(xlsx) # pour sortie excel ############################ INTRODUCTION ############################ #### A MODIFIER QUAND EN CAPITALES DANS ORDRES #### # Les graphiques seront stockés dans un format pdf pdf("Graphique PARCELLE.pdf") # Sous titre utilisé pour la partie tirage (nom de la parcelle) subtitle<-('PARCELLE') # Lecture du fichier cible D0 <- read.csv2 ('PARCELLE pret 1.csv',header = TRUE,sep = ';',dec =',') # Représentation visuelle du fichier initial str(D0) nb.arbres<-XX # nombre d'arbres pour la sortie (a priori 50) h.min<-XX # année de la première mesure de hauteur = colonne 7 h.max<-XX # année de la seconde mesure de hauteur = colonne 9 c.min<-XX # année de la première mesure de circonférence = colonne 6 c.max<-XX # année de la dernière mesure de circonférence = colonne 10 #### CREATION DU DATA.FRAME #### # Parcelle rectangulaire, intégration des individus manquants D<-Parcelle.Rect.Donnees() # Calcul des projections de la circonférence à 30 et 40 ans + Défilement métrique de la circonférence # colonnes 11, 12, 13 et 14 # c.min = année de la colonne 6, c.max = année de la colonne 10 D<-Proj.Est.Circ(D,c.min,c.max,coef.def.met=4 ) # Convertir les hauteurs en mètre D[,7]<-D[,7]*0.01 # hauteur colonne 7 en m D[,9]<-D[,9]*0.01 # hauteur colonne 7 en m # Calcul des volumes de bois par catégorie # Remplissage des colonnes 15, 16, 17 et 18 D<-Vol.Bois.Cat() # Représentation visuelle du fichier créé str(D) # Transformation en facteur des variables non quantitative D$cl <- as.factor(D$cl) D$bl <- as.factor(D$bl) D$ind <- as.factor(D$ind) D$xx <- as.factor(D$xx) D$yy <- as.factor(D$yy) # Résumé statistique (moyenne, max, min, médiane,.) summary(D) ############################ REPRESENTATION GRAPHIQUE DE LA PARCELLE : ############################ # Représentation des individus # Sélection des arbres dont la hauteur à 10 ans est supérieur ou égale à 0 (= ne prends pas en compte les NA) D1 <- subset(D,D[,9] >= 0) print(ggplot(D1,aes(x=xx,y=yy,color=h10,size=h10)) + geom_point() + scale_color_gradientn(colours=rainbow(6))) # Sélection des arbres dont la hauteur à 10 ans est supérieur ou égale à 0 (= ne prends pas en compte les NA) # Remise à niveau par rapport à toutes les parcelles D[1,9]<-14.5 # Rajout d'un arbre ayant une hauteur importante D[2,9]<-1.5 # Rajout d'un arbre ayant une hauteur faible D1 <- subset(D,D[,9] >= 0) print(ggplot(D1,aes(x=xx,y=yy,color=h10,size=h10)) + geom_point() + scale_color_gradientn(colours=rainbow(6)) ) D[1,9]<-NA D[2,9]<-NA # Sélection de quelques clones (représenter l'orientation de plantation) D1 <- subset(D,D[,1] == 224 | D[,1] == 253 | D[,1] == 218 | D[,1] == 221 | D[,1] == 216 | D[,1] == 184) print(ggplot(D1,aes(x=xx,y=yy,color=h10,size=h10,shape=cl)) + geom_point() + scale_color_gradientn(colours=rainbow(6))) ############################ VERIFICATION ############################ # les individus donnant du bois de catégorie A,B,C,ou D ind.in.Cat(D) # Première ligne : nombre d'individu contribuant aux catégorie de bois + Total # Seconde ligne : pourcentage d'individu contribuant aux catégorie par rapport au nombre d'arbres de la parcelle # Calcul du nombre d'année d'élagage # h.min = année mesure colonne 7, h.max = année mesure colonne 9 stop.elagage(D,h.min,h.max,lim.an=10,lim.pourc=0.70) stop.elagage(D,h.min,h.max,lim.an=20,lim.pourc=0.70) stop.elagage(D,h.min,h.max,lim.an=20,lim.pourc=0.80) dev.off() # arrêt du pdf ######################################################## PARTIE CODE ######################################################## # On va créer 8 estimations=2*4 où 4 est le nombre de directions que l'on prend, ainsi on aura 8 data.frame # horizontal, vertical, diagonal descendant, diagonal ascendant (1er et 2nd individu) ############################ HORIZONTAUX PREMIER INDIVIDU ############################ # MEILLEUR PLANT # Formation des couples horizontaux en commençant par le 1er individu et sélection du MEILLEUR plant dans chaque couple # Initialisation du vecteur de sortie temoin_max2.horiz1<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-2 # Balayage pour la sélection des meilleurs arbres for (x in 1:Mx) { for (y in 1:My) { if(is.finite(D[D$xx==2*x-1 & D$yy==y,6])==T & is.finite(D[D$xx==2*x & D$yy==y,6])==T & D[D$xx==2*x-1 & D$yy==y,1]!=D[D$xx==2*x & D$yy==y,1]) # Si on a un couple (pas de NA) { if (D[D$xx==2*x-1 & D$yy==y,6] >= D[D$xx==2*x & D$yy==y,6]) { temoin_max2.horiz1<-c(temoin_max2.horiz1,c(D[D$xx==2*x-1 & D$yy==y,3])) # Sélection du premier arbre } if (D[D$xx==2*x-1 & D$yy==y,6] < D[D$xx==2*x & D$yy==y,6]) { temoin_max2.horiz1<-c(temoin_max2.horiz1,c(D[D$xx==2*x & D$yy==y,3])) # Sélection du second arbre } } temoin_max2.horiz1 } } # On transforme en dataframe en faisant le lien avec D Ref_max2.Horiz1<-D[temoin_max2.horiz1,] # Quelques statistiques descriptives summary(Ref_max2.Horiz1[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Max40.Horiz1<-Sum.Pourc.Vol.Cat(Ref_max2.Horiz1) # pour 50 arbres Vol50.Max.Horiz1<-Bois.n.plants(Vol_Max40.Horiz1[1,],N=nrow(Ref_max2.Horiz1),n=nb.arbres) # PIRE PLANT # Formation des couples horizontaux en commençant par le 1er individu et sélection du PIRE plant dans chaque couple # Initialisation du vecteur de sortie temoin_min2.horiz1<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-2 # Balayage pour la sélection des pires arbres for (x in 1:Mx) { for (y in 1:My) { if(is.finite(D[D$xx==2*x-1 & D$yy==y,6])==T & is.finite(D[D$xx==2*x & D$yy==y,6])==T & D[D$xx==2*x-1 & D$yy==y,1]!=D[D$xx==2*x & D$yy==y,1]) # Si on a un couple (pas de NA) { if (D[D$xx==2*x-1 & D$yy==y,6] >= D[D$xx==2*x & D$yy==y,6]) { temoin_min2.horiz1<-c(temoin_min2.horiz1,c(D[D$xx==2*x & D$yy==y,3])) } if (D[D$xx==2*x-1 & D$yy==y,6] < D[D$xx==2*x & D$yy==y,6]) { temoin_min2.horiz1<-c(temoin_min2.horiz1,c(D[D$xx==2*x-1 & D$yy==y,3])) } } temoin_min2.horiz1 } } # On transforme en dataframe en faisant le lien avec D Ref_min2.Horiz1<-D[temoin_min2.horiz1,] # Quelques statistiques descriptives summary(Ref_min2.Horiz1[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Min40.Horiz1<-Sum.Pourc.Vol.Cat(Ref_min2.Horiz1) # pour 50 arbres Vol50.Min.Horiz1<-Bois.n.plants(Vol_Min40.Horiz1[1,],N=nrow(Ref_min2.Horiz1),n=nb.arbres) ############################ HORIZONTAUX DEUXIEME INDIVIDU ############################ # MEILLEUR PLANT # Formation des couples horizontaux commençant par le 2ème individu et sélection du MEILLEUR plant dans chaque couple # Intialisation du vecteur de sortie # On transforme en dataframe en faisant le lien avec D Retemoin_max2.horiz2<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-2 # Balayage pour la sélection des meilleurs arbres for (x in 1:Mx) { for (y in 1:My) { if(is.finite(D[D$xx==2*x & D$yy==y,6])==T & is.finite(D[D$xx==2*x+1 & D$yy==y,6])==T & D[D$xx==2*x & D$yy==y,1]!=D[D$xx==2*x+1 & D$yy==y,1]) # Si on a un couple (pas de NA) { if (D[D$xx==2*x & D$yy==y,6] >= D[D$xx==2*x+1 & D$yy==y,6]) { temoin_max2.horiz2<-c(temoin_max2.horiz2,c(D[D$xx==2*x & D$yy==y,3])) # Sélection du premier arbre } if (D[D$xx==2*x & D$yy==y,6] < D[D$xx==2*x+1 & D$yy==y,6]) { temoin_max2.horiz2<-c(temoin_max2.horiz2,c(D[D$xx==2*x+1 & D$yy==y,3])) # Sélection du second arbre } } temoin_max2.horiz2 } } # On transforme en dataframe en faisant le lien avec D Ref_max2.Horiz2<-D[temoin_max2.horiz2,] # Quelques statistiques descriptives summary(Ref_max2.Horiz2[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Max40.Horiz2<-Sum.Pourc.Vol.Cat(Ref_max2.Horiz2) # pour 50 arbres Vol50.Max.Horiz2<-Bois.n.plants(Vol_Max40.Horiz2[1,],N=nrow(Ref_max2.Horiz2),n=nb.arbres) # PIRE PLANT # Formation des couples horizontaux commençant par le 2ème individu et sélection du PIRE plant dans chaque couple # Initialisation du vecteur de sortie temoin_min2.horiz2<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-2 # Balayage pour la sélection des pires arbres for (x in 1:Mx) { for (y in 1:My) { if(is.finite(D[D$xx==2*x & D$yy==y,6])==T & is.finite(D[D$xx==2*x+1 & D$yy==y,6])==T & D[D$xx==2*x & D$yy==y,1]!=D[D$xx==2*x+1 & D$yy==y,1]) { if (D[D$xx==2*x & D$yy==y,6] >= D[D$xx==2*x+1 & D$yy==y,6]) { temoin_min2.horiz2<-c(temoin_min2.horiz2,c(D[D$xx==2*x+1 & D$yy==y,3])) } if (D[D$xx==2*x & D$yy==y,6] < D[D$xx==2*x+1 & D$yy==y,6]) { temoin_min2.horiz2<-c(temoin_min2.horiz2,c(D[D$xx==2*x & D$yy==y,3])) } } temoin_min2.horiz2 } } # On transforme en dataframe en faisant le lien avec D Ref_min2.Horiz2<-D[temoin_min2.horiz2,] # Quelques statistiques descriptives summary(Ref_min2.Horiz2[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Min40.Horiz2<-Sum.Pourc.Vol.Cat(Ref_min2.Horiz2) # pour 50 arbres Vol50.Min.Horiz2<-Bois.n.plants(Vol_Min40.Horiz2[1,],N=nrow(Ref_min2.Horiz2),n=nb.arbres) ############################ VERTICAUX PREMIER INDIVIDU ############################ # MEILLEUR PLANT # Formation des couples verticaux commençant par le 1er individu et sélection du meilleur plant dans chaque couple # Initialisation du vecteur de sortie temoin_max2.verti1<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-max(as.numeric(D$xx))-2 My<-floor(max(as.numeric(D$yy))/2)-1 # Balayage pour la sélection des meilleurs arbres for (x in 1:Mx) { for (y in 1:My) { if(is.finite(D[D$xx==x & D$yy==2*y-1,6])==T & is.finite(D[D$xx==x & D$yy==2*y,6])==T & D[D$xx==x & D$yy==2*y-1,1]!=D[D$xx==x & D$yy==2*y,1]) #si on a un couple (pas de NA) { if (D[D$xx==x & D$yy==2*y-1,6] >= D[D$xx==x & D$yy==2*y,6]) { temoin_max2.verti1<-c(temoin_max2.verti1,c(D[D$xx==x & D$yy==2*y-1,3])) # Sélection du premier arbre } if (D[D$xx==x & D$yy==2*y-1,6] < D[D$xx==x & D$yy==2*y,6]) { temoin_max2.verti1<-c(temoin_max2.verti1,c(D[D$xx==x & D$yy==2*y,3])) # Sélection du second arbre } } temoin_max2.verti1 } } # On transforme en dataframe en faisant le lien avec D Ref_max2.Verti1<-D[temoin_max2.verti1,] # Quelques statistiques descriptives summary(Ref_max2.Verti1[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Max40.Verti1<-Sum.Pourc.Vol.Cat(Ref_max2.Verti1) # pour 50 arbres Vol50.Max.Verti1<-Bois.n.plants(Vol_Max40.Verti1[1,],N=nrow(Ref_max2.Verti1),n=nb.arbres) # PIRE PLANT # Formation des couples verticaux en commençant par le 1er individu et sélection du PIRE plant dans chaque couple # Initialisation du vecteur de sortie temoin_min2.verti1<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-max(as.numeric(D$xx))-2 My<-floor(max(as.numeric(D$yy))/2)-1 # Balayage pour la sélection des pires arbres for (x in 1:Mx) { for (y in 1:My) { if(is.finite(D[D$xx==x & D$yy==2*y-1,6])==T & is.finite(D[D$xx==x & D$yy==2*y,6])==T & D[D$xx==x & D$yy==2*y-1,1]!=D[D$xx==x & D$yy==2*y,1]) { if (D[D$xx==x & D$yy==2*y-1,6] >= D[D$xx==x & D$yy==2*y,6]) { temoin_min2.verti1<-c(temoin_min2.verti1,c(D[D$xx==x & D$yy==2*y,3])) } if (D[D$xx==x & D$yy==2*y-1,6] < D[D$xx==x & D$yy==2*y,6]) { temoin_min2.verti1<-c(temoin_min2.verti1,c(D[D$xx==x & D$yy==2*y-1,3])) } } temoin_min2.verti1 } } # On transforme en dataframe en faisant le lien avec D Ref_min2.Verti1<-D[temoin_min2.verti1,] # Quelques statistiques descriptives summary(Ref_min2.Verti1[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Min40.Verti1<-Sum.Pourc.Vol.Cat(Ref_min2.Verti1) # pour 50 arbres Vol50.Min.Verti1<-Bois.n.plants(Vol_Min40.Verti1[1,],N=nrow(Ref_min2.Verti1),n=nb.arbres) ############################ VERTICAUX DEUXIEME INDIVIDU ############################ #Formation des couples verticaux en commençant par le 2ème individu et sélection du meilleur plant dans chaque couple # Initialisation du vecteur de sortie temoin_max2.verti2<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-max(as.numeric(D$xx))-2 My<-floor(max(as.numeric(D$yy))/2)-1 # Balayage pour la sélection des meilleurs arbres for (x in 1:Mx) { for (y in 1:My) { if(is.finite(D[D$xx==x & D$yy==2*y,6])==T & is.finite(D[D$xx==x & D$yy==2*y+1,6])==T & D[D$xx==x & D$yy==2*y,1]!=D[D$xx==x & D$yy==2*y+1,1]) { if (D[D$xx==x & D$yy==2*y,6] >= D[D$xx==x & D$yy==2*y+1,6]) { temoin_max2.verti2<-c(temoin_max2.verti2,c(D[D$xx==x & D$yy==2*y,3])) # Sélection du premier arbre } if (D[D$xx==x & D$yy==2*y,6] < D[D$xx==x & D$yy==2*y+1,6]) { temoin_max2.verti2<-c(temoin_max2.verti2,c(D[D$xx==x & D$yy==2*y+1,3])) # Sélection du second arbre } } temoin_max2.verti2 } } # On transforme en dataframe en faisant le lien avec D Ref_max2.Verti2<-D[temoin_max2.verti2,] # Quelques statistiques descriptives summary(Ref_max2.Verti2[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Max40.Verti2<-Sum.Pourc.Vol.Cat(Ref_max2.Verti2) # pour 50 arbres Vol50.Max.Verti2<-Bois.n.plants(Vol_Max40.Verti2[1,],N=nrow(Ref_max2.Verti2),n=nb.arbres) # PIRE PLANT # Formation des couples verticaux en commençant par le 2ème individu et sélection du PIRE plant dans chaque couple # Initialisation du vecteur de sortie temoin_min2.verti2<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-max(as.numeric(D$xx))-2 My<-floor(max(as.numeric(D$yy))/2)-1 # Balayage pour la sélection des pires arbres for (x in 1:Mx) { for (y in 1:My) { if(is.finite(D[D$xx==x & D$yy==2*y,6])==T & is.finite(D[D$xx==x & D$yy==2*y+1,6])==T & D[D$xx==x & D$yy==2*y,1]!=D[D$xx==x & D$yy==2*y+1,1]) { if (D[D$xx==x & D$yy==2*y,6] >= D[D$xx==x & D$yy==2*y+1,6]) { temoin_min2.verti2<-c(temoin_min2.verti2,c(D[D$xx==x & D$yy==2*y+1,3])) } if (D[D$xx==x & D$yy==2*y,6] < D[D$xx==x & D$yy==2*y+1,6]) { temoin_min2.verti2<-c(temoin_min2.verti2,c(D[D$xx==x & D$yy==2*y,3])) } } temoin_min2.verti2 } } # On transforme en dataframe en faisant le lien avec D Ref_min2.Verti2<-D[temoin_min2.verti2,] # Quelques statistiques descriptives summary(Ref_min2.Verti2[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Min40.Verti2<-Sum.Pourc.Vol.Cat(Ref_min2.Verti2) # pour 50 arbres Vol50.Min.Verti2<-Bois.n.plants(Vol_Min40.Verti2[1,],N=nrow(Ref_min2.Verti2),n=nb.arbres) ############################ DIAGONAUX DESCENDANT PREMIER INDIVIDU ############################ # MEILLEUR PLANT # Formation des couples diagonaux en commençant par le 1er individu et sélection du meilleur plant dans chaque couple # Initialisation du vecteur de sortie temoin_max2.diag.desc1<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-2 # Balayage pour la sélection des meilleurs arbres for (x in 1:Mx) { for (y in 2:My) { if (is.finite(D[D$xx==2*x-1 & D$yy==y,6])==T & is.finite(D[D$xx==2*x & D$yy==y-1,6])==T & D[D$xx==2*x-1 & D$yy==y,1]!=D[D$xx==2*x & D$yy==y-1,1]) { if (D[D$xx==2*x-1 & D$yy==y,6] >= D[D$xx==2*x & D$yy==y-1,6]) { temoin_max2.diag.desc1<-c(temoin_max2.diag.desc1,c(D[D$xx==2*x-1 & D$yy==y,3])) } if (D[D$xx==2*x-1 & D$yy==y,6] < D[D$xx==2*x & D$yy==y-1,6]) { temoin_max2.diag.desc1<-c(temoin_max2.diag.desc1,c(D[D$xx==2*x & D$yy==y-1,3])) } } temoin_max2.diag.desc1 } } # On transforme en dataframe en faisant le lien avec D Ref_max2.Diag.Desc1<-D[temoin_max2.diag.desc1,] # Quelques statistiques descriptives summary(Ref_max2.Diag.Desc1[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Max40.Diag.Desc1<-Sum.Pourc.Vol.Cat(Ref_max2.Diag.Desc1) # pour 50 arbres Vol50.Max.Diag.Desc1<-Bois.n.plants(Vol_Max40.Diag.Desc1[1,],N=nrow(Ref_max2.Diag.Desc1),n=nb.arbres) # PIRE PLANT # Formation des couples diagonaux commençant par le 1er individu et sélection du PIRE plant dans chaque couple # Initialisation du vecteur de sortie temoin_min2.diag.desc1<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 # Le nombre maximum de couples possibles horizontalement My<-max(as.numeric(D$yy))-2 # Balayage sur toutes les lignes (sauf les 2 lignes fictives) # Balayage pour la sélection des pires arbres for (x in 1:Mx) { for (y in 2:My) { if (is.finite(D[D$xx==2*x-1 & D$yy==y,6])==T & is.finite(D[D$xx==2*x & D$yy==y-1,6])==T & D[D$xx==2*x-1 & D$yy==y,1]!=D[D$xx==2*x & D$yy==y-1,1]) { if (D[D$xx==2*x-1 & D$yy==y,6] >= D[D$xx==2*x & D$yy==y-1,6]) { temoin_min2.diag.desc1<-c(temoin_min2.diag.desc1,c(D[D$xx==2*x & D$yy==y-1,3])) } if (D[D$xx==2*x-1 & D$yy==y,6] < D[D$xx==2*x & D$yy==y-1,6]) { temoin_min2.diag.desc1<-c(temoin_min2.diag.desc1,c(D[D$xx==2*x-1 & D$yy==y,3])) } } temoin_min2.diag.desc1 } } # On transforme en dataframe en faisant le lien avec D Ref_min2.Diag.Desc1<-D[temoin_min2.diag.desc1,] # Quelques statistiques descriptives summary(Ref_min2.Diag.Desc1[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Min40.Diag.Desc1<-Sum.Pourc.Vol.Cat(Ref_min2.Diag.Desc1) # pour 50 arbres Vol50.Min.Diag.Desc1<-Bois.n.plants(Vol_Min40.Diag.Desc1[1,],N=nrow(Ref_min2.Diag.Desc1),n=nb.arbres) ############################ DIAGONAUX DESCENDANT DEUXIEME INDIVIDU ############################ # MEILLEUR PLANT # Formation des couples diagonaux en commençant par le 2ème individu et sélection du meilleur plant dans chaque couple # Initialisation du vecteur de sortie temoin_max2.diag.desc2<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-2 # Balayage pour la sélection des meilleurs arbres for (x in 1:Mx) { for (y in 2:My) { if (is.finite(D[D$xx==2*x & D$yy==y,6])==T & is.finite(D[D$xx==2*x+1 & D$yy==y-1,6])==T & D[D$xx==2*x & D$yy==y,1]!=D[D$xx==2*x+1 & D$yy==y-1,1]) { if (D[D$xx==2*x & D$yy==y,6] >= D[D$xx==2*x+1 & D$yy==y-1,6]) { temoin_max2.diag.desc2<-c(temoin_max2.diag.desc2,c(D[D$xx==2*x & D$yy==y,3])) } if (D[D$xx==2*x & D$yy==y,6] < D[D$xx==2*x+1 & D$yy==y-1,6]) { temoin_max2.diag.desc2<-c(temoin_max2.diag.desc2,c(D[D$xx==2*x+1 & D$yy==y-1,3])) } } temoin_max2.diag.desc2 } } # On transforme en dataframe en faisant le lien avec D Ref_max2.Diag.Desc2<-D[temoin_max2.diag.desc2,] # Quelques statistiques descriptives summary(Ref_max2.Diag.Desc2[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Max40.Diag.Desc2<-Sum.Pourc.Vol.Cat(Ref_max2.Diag.Desc2) # pour 50 arbres Vol50.Max.Diag.Desc2<-Bois.n.plants(Vol_Max40.Diag.Desc2[1,],N=nrow(Ref_max2.Diag.Desc2),n=nb.arbres) # PIRE PLANT # Formation des couples diagonaux commençant par le 2ème individu et sélection du pire plant dans chaque couple # Initialisation du vecteur de sortie temoin_min2.diag.desc2<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-2 # Balayage pour la sélection des pires arbres for (x in 1:Mx) { for (y in 2:My) { if (is.finite(D[D$xx==2*x & D$yy==y,6])==T & is.finite(D[D$xx==2*x+1 & D$yy==y-1,6])==T & D[D$xx==2*x & D$yy==y,1]!=D[D$xx==2*x+1 & D$yy==y-1,1]) { if (D[D$xx==2*x & D$yy==y,6] >= D[D$xx==2*x+1 & D$yy==y-1,6]) { temoin_min2.diag.desc2<-c(temoin_min2.diag.desc2,c(D[D$xx==2*x+1 & D$yy==y-1,3])) } if (D[D$xx==2*x & D$yy==y,6] < D[D$xx==2*x+1 & D$yy==y-1,6]) { temoin_min2.diag.desc2<-c(temoin_min2.diag.desc2,c(D[D$xx==2*x & D$yy==y,3])) } } temoin_min2.diag.desc2 } } # On transforme en dataframe en faisant le lien avec D Ref_min2.Diag.Desc2<-D[temoin_min2.diag.desc2,] # Quelques statistiques descriptives summary(Ref_min2.Diag.Desc2[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Min40.Diag.Desc2<-Sum.Pourc.Vol.Cat(Ref_min2.Diag.Desc2) # pour 50 arbres Vol50.Min.Diag.Desc2<-Bois.n.plants(Vol_Min40.Diag.Desc2[1,],N=nrow(Ref_min2.Diag.Desc2),n=nb.arbres) ############################ DIAGONAUX ASCENDANT PREMIER INDIVIDU ############################ # MEILLEUR PLANT # Formation des couples diagonaux en commençant par le 1er individu et sélection du meilleur plant dans chaque couple # Initialisation du vecteur de sortie temoin_max2.diag.asc1<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-3 # Balayage pour la sélection des meilleurs arbres for (x in 1:Mx) { for (y in 1:My) { if (is.finite(D[D$xx==2*x-1 & D$yy==y,6])==T & is.finite(D[D$xx==2*x & D$yy==y+1,6])==T & D[D$xx==2*x-1 & D$yy==y,1]!=D[D$xx==2*x & D$yy==y+1,1]) { if (D[D$xx==2*x-1 & D$yy==y,6] >= D[D$xx==2*x & D$yy==y+1,6]) { temoin_max2.diag.asc1<-c(temoin_max2.diag.asc1,c(D[D$xx==2*x-1 & D$yy==y,3])) } if (D[D$xx==2*x-1 & D$yy==y,6] < D[D$xx==2*x & D$yy==y+1,6]) { temoin_max2.diag.asc1<-c(temoin_max2.diag.asc1,c(D[D$xx==2*x & D$yy==y+1,3])) } } temoin_max2.diag.asc1 } } # On transforme en dataframe en faisant le lien avec D Ref_max2.Diag.Asc1<-D[temoin_max2.diag.asc1,] # Quelques statistiques descriptives summary(Ref_max2.Diag.Asc1[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Max40.Diag.Asc1<-Sum.Pourc.Vol.Cat(Ref_max2.Diag.Asc1) # pour 50 arbres Vol50.Max.Diag.Asc1<-Bois.n.plants(Vol_Max40.Diag.Asc1[1,],N=nrow(Ref_max2.Diag.Asc1),n=nb.arbres) # PIRE PLANT # Formation des couples diagonaux commençant par le 1er individu et sélection du PIRE plant dans chaque couple # Initialisation du vecteur de sortie temoin_min2.diag.asc1<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-3 # Balayage pour la sélection des pires arbres for (x in 1:Mx) { for (y in 1:My) { if (is.finite(D[D$xx==2*x-1 & D$yy==y,6])==T & is.finite(D[D$xx==2*x & D$yy==y+1,6])==T & D[D$xx==2*x-1 & D$yy==y,1]!=D[D$xx==2*x & D$yy==y+1,1]) { if (D[D$xx==2*x-1 & D$yy==y,6] >= D[D$xx==2*x & D$yy==y+1,6]) { temoin_min2.diag.asc1<-c(temoin_min2.diag.asc1,c(D[D$xx==2*x & D$yy==y+1,3])) } if (D[D$xx==2*x-1 & D$yy==y,6] < D[D$xx==2*x & D$yy==y+1,6]) { temoin_min2.diag.asc1<-c(temoin_min2.diag.asc1,c(D[D$xx==2*x-1 & D$yy==y,3])) } } temoin_min2.diag.asc1 } } Ref_min2.Diag.Asc1<-D[temoin_min2.diag.asc1,] # Quelques statistiques descriptives summary(Ref_min2.Diag.Asc1[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Min40.Diag.Asc1<-Sum.Pourc.Vol.Cat(Ref_min2.Diag.Asc1) # pour 50 arbres Vol50.Min.Diag.Asc1<-Bois.n.plants(Vol_Min40.Diag.Asc1[1,],N=nrow(Ref_min2.Diag.Asc1),n=nb.arbres) ############################ DIAGONAUX ASCENDANT DEUXIEME INDIVIDU ############################ # MEILLEUR PLANT # Formation des couples diagonaux en commençant par le 2ème individu et sélection du meilleur plant dans chaque couple # Initialisation du vecteur de sortie temoin_max2.diag.asc2<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-3 # Balayage pour la sélection des meilleurs arbres for (x in 1:Mx) { for (y in 1:My) { if (is.finite(D[D$xx==2*x & D$yy==y,6])==T & is.finite(D[D$xx==2*x+1 & D$yy==y+1,6])==T & D[D$xx==2*x & D$yy==y,1]!=D[D$xx==2*x+1 & D$yy==y+1,1]) { if (D[D$xx==2*x & D$yy==y,6] >= D[D$xx==2*x+1 & D$yy==y+1,6]) { temoin_max2.diag.asc2<-c(temoin_max2.diag.asc2,c(D[D$xx==2*x & D$yy==y,3])) } if (D[D$xx==2*x & D$yy==y,6] < D[D$xx==2*x+1 & D$yy==y+1,6]) { temoin_max2.diag.asc2<-c(temoin_max2.diag.asc2,c(D[D$xx==2*x+1 & D$yy==y+1,3])) } } temoin_max2.diag.asc2 } } # On transforme en dataframe en faisant le lien avec D Ref_max2.Diag.Asc2<-D[temoin_max2.diag.asc2,] # Quelques statistiques descriptives summary(Ref_max2.Diag.Asc2[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Max40.Diag.Asc2<-Sum.Pourc.Vol.Cat(Ref_max2.Diag.Asc2) # pour 50 arbres Vol50.Max.Diag.Asc2<-Bois.n.plants(Vol_Max40.Diag.Asc2[1,],N=nrow(Ref_max2.Diag.Asc2),n=nb.arbres) # PIRE PLANT # Formation des couples diagonaux commençant par le 2ème individu et sélection du pire plant dans chaque couple # Initialisation du vecteur de sortie temoin_min2.diag.asc2<-c() # Détermination du max en x (colonnes) et en y (lignes) Mx<-floor(max(as.numeric(D$xx))/2)-1 My<-max(as.numeric(D$yy))-3 # Balayage pour la sélection des pires arbres for (x in 1:Mx) { for (y in 1:My) { if (is.finite(D[D$xx==2*x & D$yy==y,6])==T & is.finite(D[D$xx==2*x+1 & D$yy==y+1,6])==T & D[D$xx==2*x & D$yy==y,1]!=D[D$xx==2*x+1 & D$yy==y+1,1]) { if (D[D$xx==2*x & D$yy==y,6] >= D[D$xx==2*x+1 & D$yy==y+1,6]) { temoin_min2.diag.asc2<-c(temoin_min2.diag.asc2,c(D[D$xx==2*x+1 & D$yy==y+1,3])) } if (D[D$xx==2*x & D$yy==y,6] < D[D$xx==2*x+1 & D$yy==y+1,6]) { temoin_min2.diag.asc2<-c(temoin_min2.diag.asc2,c(D[D$xx==2*x & D$yy==y,3])) } } temoin_min2.diag.asc2 } } # On transforme en dataframe en faisant le lien avec D Ref_min2.Diag.Asc2<-D[temoin_min2.diag.asc2,] # Quelques statistiques descriptives summary(Ref_min2.Diag.Asc2[,6:12]) # Volume de Bois par Catégorie à 40 ans # Matrice réunissant les pourcentages et les volumes en m3 Vol_Min40.Diag.Asc2<-Sum.Pourc.Vol.Cat(Ref_min2.Diag.Asc2) # pour 50 arbres Vol50.Min.Diag.Asc2<-Bois.n.plants(Vol_Min40.Diag.Asc2[1,],N=nrow(Ref_min2.Diag.Asc2),n=nb.arbres) ############################ Arrêt de la sauvegarde PDF dev.off() ############################ ########################### TIRAGES ############################# ### Tirages aléatoires dans les couples avec remise ### # Le nombre de tirage aléatoire nb.sample <- 100 ########################### TIRAGES HORIZONTAUX : PREMIER INDIVIDU ########################### # Tirage aléatoire dans les couples horizontaux commençant par le 1er individu set.seed(1234) tirage2.horiz1 <- apply(matrix(0,nrow(Ref_max2.Horiz1),nb.sample),MARGIN=2,FUN=samplech1) # On détermine les volumes de chaque parcelle tirée aléatoirement Tirage2.Horiz1<-data.tirage(tirage2.horiz1) Vol.Tirage.Horiz1<-Tirage2.Horiz1$Vol Pourc.Tirage.Horiz1<-Tirage2.Horiz1$Pourc # Volume pour nb.arbres arbres Vol50.Tirage.Horiz1<-Bois.n.plants(Vol.Tirage.Horiz1,N=nrow(Ref_max2.Horiz1),n=nb.arbres) # Matrice contenant les pourcentages d'individus contribuant à chaque catégorie pour chaque tirage M<-matrix(NA,nrow=nb.sample,ncol=4) for (i in 1:nb.sample) { X<-ind.in.Cat(Tirage2.Horiz1$Data[[i]]) M[i,]<-X[2,1:4] } Prop.ind.H1<-round(apply(M,MARGIN=2,FUN=mean)) ########################### TIRAGES HORIZONTAUX : DEUXIEME INDIVIDU ########################### # Tirage aléatoire dans les couples horizontaux commençant par le 2ème individu set.seed(1234) tirage2.horiz2 <- apply(matrix(0,nrow(Ref_max2.Horiz2),nb.sample), MARGIN=2,FUN=samplech2) # On détermine les volumes de chaque parcelle tirée aléatoirement Tirage2.Horiz2<-data.tirage(tirage2.horiz2) Vol.Tirage.Horiz2<-Tirage2.Horiz2$Vol Pourc.Tirage.Horiz2<-Tirage2.Horiz2$Pourc # Volume pour nb.arbres arbres Vol50.Tirage.Horiz2<-Bois.n.plants(Vol.Tirage.Horiz2,N=nrow(Ref_max2.Horiz2),n=nb.arbres) # Matrice contenant les pourcentages d'individus contribuant à chaque catégorie pour chaque tirage M<-matrix(NA,nrow=nb.sample,ncol=4) for (i in 1:nb.sample) { X<-ind.in.Cat(Tirage2.Horiz2$Data[[i]]) M[i,]<-X[2,1:4] } Prop.ind.H2<-round(apply(M,MARGIN=2,FUN=mean)) ########################### TIRAGES VERTICAUX : PREMIER INDIVIDU ########################### # Tirage aléatoire dans les couples verticaux commençant par le 1er individu set.seed(1234) tirage2.verti1 <- apply(matrix(0,nrow(Ref_max2.Verti1),nb.sample), MARGIN=2,FUN=samplecv1) # On détermine les volumes de chaque parcelle tirée aléatoirement Tirage2.Verti1<-data.tirage(tirage2.verti1) Vol.Tirage.Verti1<-Tirage2.Verti1$Vol Pourc.Tirage.Verti1<-Tirage2.Verti1$Pourc # Volume pour nb.arbres arbres Vol50.Tirage.Verti1<-Bois.n.plants(Vol.Tirage.Verti1,N=nrow(Ref_max2.Verti1),n=nb.arbres) # Matrice contenant les pourcentages d'individus contribuant à chaque catégorie pour chaque tirage M<-matrix(NA,nrow=nb.sample,ncol=4) for (i in 1:nb.sample) { X<-ind.in.Cat(Tirage2.Verti1$Data[[i]]) M[i,]<-X[2,1:4] } Prop.ind.V1<-round(apply(M,MARGIN=2,FUN=mean)) ########################### TIRAGES VERTICAUX : DEUXIEME INDIVIDU ########################### # Tirage aléatoire dans les couples verticaux commençant par le 2ème individu set.seed(1234) tirage2.verti2 <- apply(matrix(0,nrow(Ref_max2.Verti2),nb.sample), MARGIN=2,FUN=samplecv2) # On détermine les volumes de chaque parcelle tirée aléatoirement Tirage2.Verti2<-data.tirage(tirage2.verti2) Vol.Tirage.Verti2<-Tirage2.Verti2$Vol Pourc.Tirage.Verti2<-Tirage2.Verti2$Pourc # Volume pour nb.arbres arbres Vol50.Tirage.Verti2<-Bois.n.plants(Vol.Tirage.Verti2,N=nrow(Ref_max2.Verti2),n=nb.arbres) # Matrice contenant les pourcentages d'individus contribuant à chaque catégorie pour chaque tirage M<-matrix(NA,nrow=nb.sample,ncol=4) for (i in 1:nb.sample) { X<-ind.in.Cat(Tirage2.Verti2$Data[[i]]) M[i,]<-X[2,1:4] } Prop.ind.V2<-round(apply(M,MARGIN=2,FUN=mean)) ########################### TIRAGES DIAGONAUX DESCENDANTS : PREMIER INDIVIDU ########################### # Tirage aléatoire dans les couples diagonaux commençant par le 1er individu set.seed(1234) tirage2.diag.desc1 <- apply(matrix(0,nrow(Ref_max2.Diag.Desc1),nb.sample), MARGIN=2,FUN=samplecdd1) # On détermine les volumes de chaque parcelle tirée aléatoirement Tirage2.Diag.Desc1<-data.tirage(tirage2.diag.desc1) Vol.Tirage.Diag.Desc1<-Tirage2.Diag.Desc1$Vol Pourc.Tirage.Diag.Desc1<-Tirage2.Diag.Desc1$Pourc # Volume pour nb.arbres arbres Vol50.Tirage.Diag.Desc1<-Bois.n.plants(Vol.Tirage.Diag.Desc1,N=nrow(Ref_max2.Diag.Desc1),n=nb.arbres) # Matrice contenant les pourcentages d'individus contribuant à chaque catégorie pour chaque tirage M<-matrix(NA,nrow=nb.sample,ncol=4) for (i in 1:nb.sample) { X<-ind.in.Cat(Tirage2.Diag.Desc1$Data[[i]]) M[i,]<-X[2,1:4] } Prop.ind.DD1<-round(apply(M,MARGIN=2,FUN=mean)) ########################### TIRAGES DIAGONAUX DESCENDANT : DEUXIEME INDIVIDU ########################### # Tirage aléatoire dans les couples diagonaux commençant par le 2ème individu set.seed(1234) tirage2.diag.desc2 <- apply(matrix(0,nrow(Ref_max2.Diag.Desc2),nb.sample), MARGIN=2,FUN=samplecdd2) # On détermine les volumes de chaque parcelle tirée aléatoirement Tirage2.Diag.Desc2<-data.tirage(tirage2.diag.desc2) Vol.Tirage.Diag.Desc2<-Tirage2.Diag.Desc2$Vol Pourc.Tirage.Diag.Desc2<-Tirage2.Diag.Desc2$Pourc # Volume pour nb.arbres arbres Vol50.Tirage.Diag.Desc2<-Bois.n.plants(Vol.Tirage.Diag.Desc2,N=nrow(Ref_max2.Diag.Desc2),n=nb.arbres) # Matrice contenant les pourcentages d'individus contribuant à chaque catégorie pour chaque tirage M<-matrix(NA,nrow=nb.sample,ncol=4) for (i in 1:nb.sample) { X<-ind.in.Cat(Tirage2.Diag.Desc2$Data[[i]]) M[i,]<-X[2,1:4] } Prop.ind.DD2<-round(apply(M,MARGIN=2,FUN=mean)) ########################### TIRAGES DIAGONAUX ASCENDANTS : PREMIER INDIVIDU ########################### # Tirage aléatoire dans les couples diagonaux commençant par le 1er individu set.seed(1234) tirage2.diag.asc1 <- apply(matrix(0,nrow(Ref_max2.Diag.Asc1),nb.sample), MARGIN=2,FUN=samplecda1) # On détermine les volumes de chaque parcelle tirée aléatoirement Tirage2.Diag.Asc1<-data.tirage(tirage2.diag.asc1) Vol.Tirage.Diag.Asc1<-Tirage2.Diag.Asc1$Vol Pourc.Tirage.Diag.Asc1<-Tirage2.Diag.Asc1$Pourc # Volume pour nb.arbres arbres Vol50.Tirage.Diag.Asc1<-Bois.n.plants(Vol.Tirage.Diag.Asc1,N=nrow(Ref_max2.Diag.Asc1),n=nb.arbres) # Matrice contenant les pourcentages d'individus contribuant à chaque catégorie pour chaque tirage M<-matrix(NA,nrow=nb.sample,ncol=4) for (i in 1:nb.sample) { X<-ind.in.Cat(Tirage2.Diag.Asc1$Data[[i]]) M[i,]<-X[2,1:4] } Prop.ind.DA1<-round(apply(M,MARGIN=2,FUN=mean)) ########################### TIRAGES DIAGONAUX ASCENDANT : DEUXIEME INDIVIDU ########################### # Tirage aléatoire dans les couples diagonaux commençant par le 2ème individu set.seed(1234) tirage2.diag.asc2 <- apply(matrix(0,nrow(Ref_max2.Diag.Asc2),nb.sample), MARGIN=2,FUN=samplecda2) # On détermine les volumes de chaque parcelle tirée aléatoirement Tirage2.Diag.Asc2<-data.tirage(tirage2.diag.asc2) Vol.Tirage.Diag.Asc2<-Tirage2.Diag.Asc2$Vol Pourc.Tirage.Diag.Asc2<-Tirage2.Diag.Asc2$Pourc # Volume pour nb.arbres arbres Vol50.Tirage.Diag.Asc2<-Bois.n.plants(Vol.Tirage.Diag.Asc2,N=nrow(Ref_max2.Diag.Asc2),n=nb.arbres) # Matrice contenant les pourcentages d'individus contribuant à chaque catégorie pour chaque tirage M<-matrix(NA,nrow=nb.sample,ncol=4) for (i in 1:nb.sample) { X<-ind.in.Cat(Tirage2.Diag.Asc2$Data[[i]]) M[i,]<-X[2,1:4] } Prop.ind.DA2<-round(apply(M,MARGIN=2,FUN=mean)) ########################### COMPILATION DES DIRECTIONS ########################### # Matrice comportant les volumes dans chaque catégorie de bois pour tous les tirages (qqsoit la direction) Vol50.Cat<-Vol.all.Tirages() # Représentation des données str(Vol50.Cat) # Pour chaque catégorie (+ Total), on extrait le volume minimum et maximum calculé Vol50.min.max<-matrix(NA,ncol=2,nrow=5) colnames(Vol50.min.max)<-c("min","max") rownames(Vol50.min.max)<-c("Cat.A","Cat.B","Cat.C","Cat.D","Total") for (i in 1:5) { Vol50.min.max[i,1]<-min(Vol50.Min.Horiz1[i],Vol50.Min.Horiz2[i],Vol50.Min.Verti1[i],Vol50.Min.Verti2[i], Vol50.Min.Diag.Desc1[i],Vol50.Min.Diag.Desc2[i],Vol50.Min.Diag.Asc1[i],Vol50.Min.Diag.Asc2[i]) Vol50.min.max[i,2]<-max(Vol50.Max.Horiz1[i],Vol50.Max.Horiz2[i],Vol50.Max.Verti1[i],Vol50.Max.Verti2[i], Vol50.Max.Diag.Desc1[i],Vol50.Max.Diag.Desc2[i],Vol50.Max.Diag.Asc1[i],Vol50.Max.Diag.Asc2[i]) } ########################### PREPARATION POUR LE TABLEAU ########################### # Détermination dans chaque direction : # les diamètres moyens des arbres de chaque tirage # les nombres d'arbres qui atteindront 35 cm de diamètre (arbres à potentiel) # les diamètres moyens des arbres à potentiel de chaque tirage TH1<-tab1(Tirage2.Horiz1,h.min,h.max) TH2<-tab1(Tirage2.Horiz2,h.min,h.max) TV1<-tab1(Tirage2.Verti1,h.min,h.max) TV2<-tab1(Tirage2.Verti2,h.min,h.max) TDD1<-tab1(Tirage2.Diag.Desc1,h.min,h.max) TDD2<-tab1(Tirage2.Diag.Desc2,h.min,h.max) TDA1<-tab1(Tirage2.Diag.Asc1,h.min,h.max) TDA2<-tab1(Tirage2.Diag.Asc2,h.min,h.max) diam.moyen<-c(TH1[[1]],TH2[[1]],TV1[[1]],TV2[[1]],TDD1[[1]],TDD2[[1]],TDA1[[1]],TDA2[[1]]) nb.pot.all<-c(TH1[[2]],TH2[[2]],TV1[[2]],TV2[[2]],TDD1[[2]],TDD2[[2]],TDA1[[2]],TDA2[[2]]) diam.moyen.pot<-c(TH1[[3]],TH2[[3]],TV1[[3]],TV2[[3]],TDD1[[3]],TDD2[[3]],TDA1[[3]],TDA2[[3]]) # Matrice 2 colonnes : # colonne 1 : pourcentage de plant contribuant aux catégories par direction, si pires plants # colonne 2 : pourcentage de plant contribuant aux catégories par direction, si meilleurs plants Prop.ind<-matrix(NA,nrow=45,ncol=2) for (i in 0:3) { Prop.ind[(i*9+1),1]<-ind.in.Cat(Ref_min2.Horiz1)[2,(i+1)] Prop.ind[(i*9+1),2]<-ind.in.Cat(Ref_max2.Horiz1)[2,(i+1)] Prop.ind[(i*9+2),1]<-ind.in.Cat(Ref_min2.Horiz2)[2,(i+1)] Prop.ind[(i*9+2),2]<-ind.in.Cat(Ref_max2.Horiz2)[2,(i+1)] Prop.ind[(i*9+3),1]<-ind.in.Cat(Ref_min2.Verti1)[2,(i+1)] Prop.ind[(i*9+3),2]<-ind.in.Cat(Ref_max2.Verti1)[2,(i+1)] Prop.ind[(i*9+4),1]<-ind.in.Cat(Ref_min2.Verti2)[2,(i+1)] Prop.ind[(i*9+4),2]<-ind.in.Cat(Ref_max2.Verti2)[2,(i+1)] Prop.ind[(i*9+5),1]<-ind.in.Cat(Ref_min2.Diag.Desc1)[2,(i+1)] Prop.ind[(i*9+5),2]<-ind.in.Cat(Ref_max2.Diag.Desc1)[2,(i+1)] Prop.ind[(i*9+6),1]<-ind.in.Cat(Ref_min2.Diag.Desc2)[2,(i+1)] Prop.ind[(i*9+6),2]<-ind.in.Cat(Ref_max2.Diag.Desc2)[2,(i+1)] Prop.ind[(i*9+7),1]<-ind.in.Cat(Ref_min2.Diag.Asc1)[2,(i+1)] Prop.ind[(i*9+7),2]<-ind.in.Cat(Ref_max2.Diag.Asc1)[2,(i+1)] Prop.ind[(i*9+8),1]<-ind.in.Cat(Ref_min2.Diag.Asc2)[2,(i+1)] Prop.ind[(i*9+8),2]<-ind.in.Cat(Ref_max2.Diag.Asc2)[2,(i+1)] } ######################################################## PARTIE GRAPHES ######################################################## ######## GRAPHE REFERENT A MODIFIER #### # Cette partie nécessite d'avoir fait tourner le code jusqu'à la partie TIRAGE exclus pdf("Graphique PARCELLE Référent.pdf") # HORIZONTAL PREMIER INDIVIDU (MEILLEURS) # Représentation des individus sélectionnés plot(as.numeric(as.character(Ref_max2.Horiz1$xx)),as.numeric(as.character(Ref_max2.Horiz1$yy)), main="Meilleurs individus sélectionnés, balayage horizontal, premier individu", xlab ="Coordonnée xx", ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_max2.Horiz1,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Horizontal 1er ind., max") stop.elagage(Ref_max2.Horiz1,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Horizontal 1er ind., max") stop.elagage(Ref_max2.Horiz1,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Horizontal 1er ind., max") # Circonférence à l'année de la colonne 10 hist(Ref_max2.Horiz1[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_max2.Horiz1[10]),"pour Ref_max2.Horiz1"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) curve(dnorm(x,mean(Ref_max2.Horiz1[,10],na.rm=T), sd(Ref_max2.Horiz1[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_max2.Horiz1[,10])) lines(density(Ref_max2.Horiz1[,10],na.rm=T),lwd=2,col=11) # HORIZONTAL PREMIER INDIVIDU (PIRES) # Représentation des individus plot(as.numeric(as.character(Ref_min2.Horiz1$xx)),as.numeric(as.character(Ref_min2.Horiz1$yy)), main="Pires individus sélectionnés, balayage horizontal, premier individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_min2.Horiz1,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Horizontal 1er ind., min") stop.elagage(Ref_min2.Horiz1,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Horizontal 1er ind., min") stop.elagage(Ref_min2.Horiz1,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Horizontal 1er ind., min") # Circonférence à l'année de la colonne 10 hist(Ref_min2.Horiz1[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_min2.Horiz1[10]),"pour Ref_min2.Horiz1"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) curve(dnorm(x,mean(Ref_min2.Horiz1[,10],na.rm=T), sd(Ref_min2.Horiz1[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_min2.Horiz1[,10])) lines(density(Ref_min2.Horiz1[,10],na.rm=T),lwd=2,col=11) # HORIZONTAL DEUXIEME INDIVIDU (MEILLEURS) # Représentation des individus plot(as.numeric(as.character(Ref_max2.Horiz2$xx)),as.numeric(as.character(Ref_max2.Horiz2$yy)), main="Meilleurs individus sélectionnés, balayage horizontal, deuxième individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_max2.Horiz2,h.min,h.max,lim.an=10,lim.pourc=0.80) text(3,0.01,"Horizontal 2ème ind., max") stop.elagage(Ref_max2.Horiz2,h.min,h.max,lim.an=20,lim.pourc=0.70) text(3,0.01,"Horizontal 2ème ind., max") stop.elagage(Ref_max2.Horiz2,h.min,h.max,lim.an=20,lim.pourc=0.80) text(3,0.01,"Horizontal 2ème ind., max") # Circonférence à l'année de la colonne 10 hist(Ref_max2.Horiz2[,10],freq=F,breaks = "Sturges", main = paste("Histogramme de",names(Ref_max2.Horiz2[10]),"pour Ref_max2.Horiz2"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) curve(dnorm(x,mean(Ref_max2.Horiz2[,10],na.rm=T), sd(Ref_max2.Horiz2[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_max2.Horiz2[,10])) lines(density(Ref_max2.Horiz2[,10],na.rm=T),lwd=2,col=11) # HORIZONTAL DEUXIEME INDIVIDU (PIRES) # Représentation des individus plot(as.numeric(as.character(Ref_min2.Horiz2$xx)),as.numeric(as.character(Ref_min2.Horiz2$yy)), main="Pires individus sélectionnés, balayage horizontal, deuxième individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_min2.Horiz2,h.min,h.max,lim.an=10,lim.pourc=0.80) text(3,0.01,"Horizontal 2ème ind., min") stop.elagage(Ref_min2.Horiz2,h.min,h.max,lim.an=20,lim.pourc=0.70) text(3,0.01,"Horizontal 2ème ind., min") stop.elagage(Ref_min2.Horiz2,h.min,h.max,lim.an=20,lim.pourc=0.80) text(3,0.01,"Horizontal 2ème ind., min") # Circonférence à l'année de la colonne 10 hist(Ref_min2.Horiz2[,10],freq=F,breaks = "Sturges", main = paste("Histogramme de",names(Ref_min2.Horiz2[10]),"pour Ref_min2.Horiz2"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) curve(dnorm(x,mean(Ref_min2.Horiz2[,10],na.rm=T), sd(Ref_min2.Horiz2[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_min2.Horiz2[,10])) lines(density(Ref_min2.Horiz2[,10],na.rm=T),lwd=2,col=11) # VERTICAL PREMIER INDIVIDU (MEILLEURS) # Représentation des individus plot(as.numeric(as.character(Ref_max2.Verti1$xx)),as.numeric(as.character(Ref_max2.Verti1$yy)), main="Meilleurs individus sélectionnés, balayage vertical, premier individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_max2.Verti1,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Vertical 1er ind., max") stop.elagage(Ref_max2.Verti1,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Vertical 1er ind., max") stop.elagage(Ref_max2.Verti1,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Vertical 1er ind., max") # Circonférence à l'année de la colonne 10 hist(Ref_max2.Verti1[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_max2.Verti1[10]),"pour Ref_max2.Verti1"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) curve(dnorm(x,mean(Ref_max2.Verti1[,10],na.rm=T), sd(Ref_max2.Verti1[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_max2.Verti1[,10])) lines(density(Ref_max2.Verti1[,10],na.rm=T),lwd=2,col=11) # VERTICAL PREMIER INDIVIDU (PIRES) # Représentation des individus plot(as.numeric(as.character(Ref_min2.Verti1$xx)),as.numeric(as.character(Ref_min2.Verti1$yy)), main="Pires individus sélectionnés, balayage vertical, premier individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_min2.Verti1,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Vertical 1er ind., min") stop.elagage(Ref_min2.Verti1,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Vertical 1er ind., min") stop.elagage(Ref_min2.Verti1,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Vertical 1er ind., min") # Circonférence à l'année de la colonne 10 hist(Ref_min2.Verti1[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_min2.Verti1[10]),"pour Ref_min2.Verti1"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) # Histogramme de la circonférence à 15 ans curve(dnorm(x,mean(Ref_min2.Verti1[,10],na.rm=T), sd(Ref_min2.Verti1[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_min2.Verti1[,10])) lines(density(Ref_min2.Verti1[,10],na.rm=T),lwd=2,col=11) # VERTICAL DEUXIEME INDIVIDU (MEILLEURS) # Représentation des individus plot(as.numeric(as.character(Ref_max2.Verti2$xx)),as.numeric(as.character(Ref_max2.Verti2$yy)), main="Meilleurs individus sélectionnés, balayage vertical, deuxième individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_max2.Verti2,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Vertical 2ème ind., max") stop.elagage(Ref_max2.Verti2,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Vertical 2ème ind., max") stop.elagage(Ref_max2.Verti2,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Vertical 2ème ind., max") # Circonférence à l'année de la colonne 10 hist(Ref_max2.Verti2[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_max2.Verti2[10]),"pour Ref_max2.Verti2"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) # Histogramme de la circonférence à 15 ans curve(dnorm(x,mean(Ref_max2.Verti2[,10],na.rm=T), sd(Ref_max2.Verti2[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_max2.Verti2[,10])) lines(density(Ref_max2.Verti2[,10],na.rm=T),lwd=2,col=11) # VERTICAL DEUXIEME INDIVIDU (PIRES) # Représentation des individus plot(as.numeric(as.character(Ref_min2.Verti2$xx)),as.numeric(as.character(Ref_min2.Verti2$yy)), main="Pires individus sélectionnés, balayage vertical, deuxième individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_min2.Verti2,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Vertical 2ème ind., min") stop.elagage(Ref_min2.Verti2,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Vertical 2ème ind., min") stop.elagage(Ref_min2.Verti2,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Vertical 2ème ind., min") # Circonférence à l'année de la colonne 10 hist(Ref_min2.Verti2[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_min2.Verti2[10]),"pour Ref_min2.Verti2"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) # Histogramme de la circonférence à 13 ans curve(dnorm(x,mean(Ref_min2.Verti2[,10],na.rm=T), sd(Ref_min2.Verti2[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_min2.Verti2[,10])) lines(density(Ref_min2.Verti2[,10],na.rm=T),lwd=2,col=11) # DIAGONAL DESCENDANT PREMIER INDIVIDU (MEILLEURS) # Représentation des individus plot(as.numeric(as.character(Ref_max2.Diag.Desc1$xx)),as.numeric(as.character(Ref_max2.Diag.Desc1$yy)), main="Meilleurs individus sélectionnés, balayage diagonal descendant, premier individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_max2.Diag.Desc1,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Diag.D 1er ind., max") stop.elagage(Ref_max2.Diag.Desc1,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Diag.D 1er ind., max") stop.elagage(Ref_max2.Diag.Desc1,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Diag.D 1er ind., max") # Circonférence à l'année de la colonne 10 hist(Ref_max2.Diag.Desc1[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_max2.Diag.Desc1[10]),"pour Ref_max2.Diag.Desc1"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) # Histogramme de la circonférence à 13 ans curve(dnorm(x,mean(Ref_max2.Diag.Desc1[,10],na.rm=T), sd(Ref_max2.Diag.Desc1[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_max2.Diag.Desc1[,10])) lines(density(Ref_max2.Diag.Desc1[,10],na.rm=T),lwd=2,col=11) # DIAGONAL DESCENDANT PREMIER INDIVIDU (PIRES) # Représentation des individus plot(as.numeric(as.character(Ref_min2.Diag.Desc1$xx)),as.numeric(as.character(Ref_min2.Diag.Desc1$yy)), main="Pires individus sélectionnés, balayage diagonal descendant, premier individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_min2.Diag.Desc1,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Diag.D 1er ind., min") stop.elagage(Ref_min2.Diag.Desc1,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Diag.D 1er ind., min") stop.elagage(Ref_min2.Diag.Desc1,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Diag.D 1er ind., min") # Circonférence à l'année de la colonne 10 hist(Ref_min2.Diag.Desc1[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_min2.Diag.Desc1[10]),"pour Ref_min2.Diag.Desc1"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) # Histogramme de la circonférence à 13 ans curve(dnorm(x,mean(Ref_min2.Diag.Desc1[,10],na.rm=T), sd(Ref_min2.Diag.Desc1[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_min2.Diag.Desc1[,10])) lines(density(Ref_min2.Diag.Desc1[,10],na.rm=T),lwd=2,col=11) # DIAGONAL DESCENDANT DEUXIEME INDIVIDU (MEILLEURS) # Représentation des individus plot(as.numeric(as.character(Ref_max2.Diag.Desc2$xx)),as.numeric(as.character(Ref_max2.Diag.Desc2$yy)), main="Meilleurs individus sélectionnés, balayage diagonal descendant, deuxième individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_max2.Diag.Desc2,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Diag.D 2ème ind., max") stop.elagage(Ref_max2.Diag.Desc2,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Diag.D 2ème ind., max") stop.elagage(Ref_max2.Diag.Desc2,h.min,h.max0,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Diag.D 2ème ind., max") # Circonférence à l'année de la colonne 10 hist(Ref_max2.Diag.Desc2[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_max2.Diag.Desc2[10]),"pour Ref_max2.Diag.Desc2"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm"))# Histogramme de la circonférence à 15 ans curve(dnorm(x,mean(Ref_max2.Diag.Desc2[,10],na.rm=T), sd(Ref_max2.Diag.Desc2[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_max2.Diag.Desc2[,10])) lines(density(Ref_max2.Diag.Desc2[,10],na.rm=T),lwd=2,col=11) # DIAGONAL DESCENDANT DEUXIEME INDIVIDU (PIRES) # Représentation des individus plot(as.numeric(as.character(Ref_min2.Diag.Desc2$xx)),as.numeric(as.character(Ref_min2.Diag.Desc2$yy)), main="Pires individus sélectionnés, balayage diagonal descendant, deuxième individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_min2.Diag.Desc2,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Diag.D 2ème ind., min") stop.elagage(Ref_min2.Diag.Desc2,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Diag.D 2ème ind., min") stop.elagage(Ref_min2.Diag.Desc2,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Diag.D 2ème ind., min") # Circonférence à l'année de la colonne 10 hist(Ref_min2.Diag.Desc2[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_min2.Diag.Desc2[10]),"pour Ref_min2.Diag.Desc2"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) # Histogramme de la circonférence à 15 ans curve(dnorm(x,mean(Ref_min2.Diag.Desc2[,10],na.rm=T), sd(Ref_min2.Diag.Desc2[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_min2.Diag.Desc2[,10])) lines(density(Ref_min2.Diag.Desc2[,10],na.rm=T),lwd=2,col=11) # DIAGONAL ASCENDANT PREMIER INDIVIDU (MEILLEURS) # Représentation des individus plot(as.numeric(as.character(Ref_max2.Diag.Asc1$xx)),as.numeric(as.character(Ref_max2.Diag.Asc1$yy)), main="Meilleurs individus sélectionnés, balayage diagonal ascendant, premier individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_max2.Diag.Asc1,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Diag.A 1er ind., max") stop.elagage(Ref_max2.Diag.Asc1,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Diag.A 1er ind., max") stop.elagage(Ref_max2.Diag.Asc1,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Diag.A 1er ind., max") # Circonférence à l'année de la colonne 10 hist(Ref_max2.Diag.Asc1[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_max2.Diag.Asc1[10]),"pour Ref_max2.Diag.Asc1"), xlab=paste(names(Ref_max2.Diag.Asc1[10]),"en mm")) # Histogramme de la circonférence à 15 ans curve(dnorm(x,mean(Ref_max2.Diag.Asc1[,10],na.rm=T), sd(Ref_max2.Diag.Asc1[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_max2.Diag.Asc1[,10])) lines(density(Ref_max2.Diag.Asc1[,10],na.rm=T),lwd=2,col=11) # DIAGONAL ASCENDANT PREMIER INDIVIDU (PIRES) # Représentation des individus plot(as.numeric(as.character(Ref_min2.Diag.Asc1$xx)),as.numeric(as.character(Ref_min2.Diag.Asc1$yy)), main="Pires individus sélectionnés, balayage diagonal ascendant, premier individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_min2.Diag.Asc1,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Diag.A 1er ind., min") stop.elagage(Ref_min2.Diag.Asc1,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Diag.A 1er ind., min") stop.elagage(Ref_min2.Diag.Asc1,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Diag.A 1er ind., min") # Circonférence à l'année de la colonne 10 hist(Ref_min2.Diag.Asc1[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_min2.Diag.Asc1[10]),"pour Ref_min2.Diag.Asc1"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) # Histogramme de la circonférence à 15 ans curve(dnorm(x,mean(Ref_min2.Diag.Asc1[,10],na.rm=T), sd(Ref_min2.Diag.Asc1[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_min2.Diag.Asc1[,10])) lines(density(Ref_min2.Diag.Asc1[,10],na.rm=T),lwd=2,col=11) # DIAGONAL ASCENDANT DEUXIEME INDIVIDU (MEILLEURS) # Représentation des individus plot(as.numeric(as.character(Ref_max2.Diag.Asc2$xx)),as.numeric(as.character(Ref_max2.Diag.Asc2$yy)), main="Meilleurs individus sélectionnés, balayage diagonal ascendant, deuxième individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_max2.Diag.Asc2,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Diag.A 2ème ind., max") stop.elagage(Ref_max2.Diag.Asc2,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Diag.A 2ème ind., max") stop.elagage(Ref_max2.Diag.Asc2,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Diag.A 2ème ind., max") # Circonférence à l'année de la colonne 10 hist(Ref_max2.Diag.Asc2[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_max2.Diag.Asc2[10]),"pour Ref_max2.Diag.Asc2"), xlab=paste(names(Ref_max2.Horiz1[10]),"en mm")) # Histogramme de la circonférence à 15 ans curve(dnorm(x,mean(Ref_max2.Diag.Asc2[,10],na.rm=T), sd(Ref_max2.Diag.Asc2[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_max2.Diag.Asc2[,10])) lines(density(Ref_max2.Diag.Asc2[,10],na.rm=T),lwd=2,col=11) # DIAGONAL ASCENDANT DEUXIEME INDIVIDU (PIRES) # Représentation des individus plot(as.numeric(as.character(Ref_min2.Diag.Asc2$xx)),as.numeric(as.character(Ref_min2.Diag.Asc2$yy)), main="Pires individus sélectionnés, balayage diagonal ascendant, deuxième individu", xlab ="Coordonnée xx" , ylab ="Coordonnée yy") # Temps d'élagage stop.elagage(Ref_min2.Diag.Asc2,h.min,h.max,lim.an=10,lim.pourc=0.80) text(2.5,0.01,"Diag.A 2ème ind., min") stop.elagage(Ref_min2.Diag.Asc2,h.min,h.max,lim.an=20,lim.pourc=0.70) text(2.5,0.01,"Diag.A 2ème ind., min") stop.elagage(Ref_min2.Diag.Asc2,h.min,h.max,lim.an=20,lim.pourc=0.80) text(2.5,0.01,"Diag.A 2ème ind., min") # Circonférence à l'année de la colonne 10 hist(Ref_min2.Diag.Asc2[,10],freq=F,breaks="Sturges", main = paste("Histogramme de",names(Ref_min2.Diag.Asc2[10]),"pour Ref_min2.Diag.Asc2"), xlab=paste(names(Ref_min2.Diag.Asc2[10]),"en mm")) # Histogramme de la circonférence à 15 ans curve(dnorm(x,mean(Ref_min2.Diag.Asc2[,10],na.rm=T), sd(Ref_min2.Diag.Asc2[,10],na.rm=T)), add=T,col=4,lwd=3) rug(jitter(Ref_min2.Diag.Asc2[,10])) lines(density(Ref_min2.Diag.Asc2[,10],na.rm=T),lwd=2,col=11) dev.off() ######## GRAPHE TIRAGE A MODIFIER #### # Cette partie nécessite d'avoir fait tourner le code jusqu'à la partie COMPILATION exclus pdf("Graphique PARCELLE Tirages.pdf") # Vérification des axes des histogrammes # répartition du bois par catégorie par direction mosaic.vol() # Histogramme fréquence des volumes de bois par direction regroupés par catégorie histo.Cat(V="A",x.min=0,x.max=90,y.max=20,ensemble=TRUE) histo.Cat(V="A",x.min=0,x.max=90,y.max=20) histo.Cat(V="B",x.min=0,x.max=15,y.max=20,pas=0.2,ensemble=TRUE) histo.Cat(V="B",x.min=0,x.max=15,y.max=20,pas=0.2) histo.Cat(V="C",x.min=0,x.max=15,y.max=20,pas=0.2,ensemble=TRUE) histo.Cat(V="C",x.min=0,x.max=15,y.max=20,pas=0.2) histo.Cat(V="D",x.min=0,x.max=15,y.max=20,pas=0.1,ensemble=TRUE) histo.Cat(V="D",x.min=0,x.max=15,y.max=20,pas=0.1) histo.Cat(V="T",x.min=0,x.max=80,y.max=25,ensemble=TRUE) histo.Cat(V="T",x.min=0,x.max=80,y.max=25) # Histogramme densité des volumes de bois par direction regroupés par catégorie histo.D.Cat(V="A",x.max=90,y.max=0.7,pas=0.2,ensemble=TRUE) histo.D.Cat(V="B",x.max=15,y.max=1,pas=0.2,ensemble=TRUE) histo.D.Cat(V="C",x.max=15,y.max=1.5,pas=0.2,ensemble=TRUE) histo.D.Cat(V="D",x.max=15,y.max=1.5,pas=0.2,ensemble=TRUE) histo.D.Cat(V="T",x.min=0,x.max=90,y.max=0.9,pas=0.2,ensemble=TRUE) # Histogramme fréquence des volumes de bois par catégorie regroupés par direction histo.Dir(Vol50.Tirage.Horiz1,D="H1",x.min=0,pas=0.5,y.max=40,ensemble=TRUE) histo.Dir(Vol50.Tirage.Horiz1,D="H1",x.min=0,pas=0.5,y.max=40) histo.Dir(Vol50.Tirage.Horiz2,D="H2",x.min=0,pas=0.5,y.max=40,ensemble=TRUE) histo.Dir(Vol50.Tirage.Horiz2,D="H2",x.min=0,pas=0.5,y.max=40) histo.Dir(Vol50.Tirage.Verti1,D="V1",x.min=0,pas=0.5,y.max=40,ensemble=TRUE) histo.Dir(Vol50.Tirage.Verti1,D="V1",x.min=0,pas=0.5,y.max=40) histo.Dir(Vol50.Tirage.Verti2,D="V2",x.min=0,pas=0.5,y.max=40,ensemble=TRUE) histo.Dir(Vol50.Tirage.Verti2,D="V2",x.min=0,pas=0.5,y.max=40) histo.Dir(Vol50.Tirage.Diag.Desc1,D="DD1",x.min=0,pas=0.5,y.max=40,ensemble=TRUE) histo.Dir(Vol50.Tirage.Diag.Desc1,D="DD1",x.min=0,pas=0.5,y.max=40) histo.Dir(Vol50.Tirage.Diag.Desc2,D="DD2",x.min=0,pas=0.5,y.max=40,ensemble=TRUE) histo.Dir(Vol50.Tirage.Diag.Desc2,D="DD2",x.min=0,pas=0.5,y.max=40) histo.Dir(Vol50.Tirage.Diag.Asc1,D="DA1",x.min=0,pas=0.5,y.max=40,ensemble=TRUE) histo.Dir(Vol50.Tirage.Diag.Asc1,D="DA1",x.min=0,pas=0.5,y.max=40) histo.Dir(Vol50.Tirage.Diag.Asc2,D="DA2",x.min=0,pas=0.5,y.max=40,ensemble=TRUE) histo.Dir(Vol50.Tirage.Diag.Asc2,D="DA2",x.min=0,pas=0.5,y.max=40) # Histogramme densité des volumes de bois par catégorie regroupés par direction histo.D.Dir(Vol50.Tirage.Horiz1,D="H1",x.min=0,x.max=90,y.max=1,pas=0.2,ensemble=TRUE) histo.D.Dir(Vol50.Tirage.Horiz2,D="H2",x.min=0,x.max=90,y.max=1,pas=0.2,ensemble=TRUE) histo.D.Dir(Vol50.Tirage.Verti1,D="V1",x.min=0,x.max=90,y.max=1,pas=0.2,ensemble=TRUE) histo.D.Dir(Vol50.Tirage.Verti2,D="V2",x.min=0,x.max=90,y.max=1,pas=0.2,ensemble=TRUE) histo.D.Dir(Vol50.Tirage.Diag.Desc1,D="DD1",x.min=0,x.max=90,y.max=1,pas=0.2,ensemble=TRUE) histo.D.Dir(Vol50.Tirage.Diag.Desc2,D="DD2",x.min=0,x.max=90,y.max=1,pas=0.2,ensemble=TRUE) histo.D.Dir(Vol50.Tirage.Diag.Asc1,D="DA1",x.min=0,x.max=90,y.max=1,pas=0.2,ensemble=TRUE) histo.D.Dir(Vol50.Tirage.Diag.Asc2,D="DA2",x.min=0,x.max=90,y.max=1,pas=0.2,ensemble=TRUE) dev.off() ########################### GRAPHE COMPIL A MODIFIER ########################## # Cette partie nécessite d'avoir fait tourner le code jusqu'à la partie PREPARATION POUR LE TABLEAU exclus pdf("Graphique PARCELLE Compilation.pdf") # Vérification des axes des histogrammes xtt<-"Volume en m3" ytt<-"Densité" tt<-"Volume de bois Cat.A sur l'ensemble des directions" histo(z=Vol50.Cat[,1],V.min=Vol50.min.max[1,1],V.max=Vol50.min.max[1,2],tt,xtt,ytt,Freq=FALSE, x.min=0,x.max=90,pas=0.2,y.max=0.6) tt<-"Volume de bois Cat.B sur l'ensemble des directions" histo(z=Vol50.Cat[,2],V.min=Vol50.min.max[2,1],V.max=Vol50.min.max[2,2],tt,xtt,ytt,Freq=FALSE, x.min=0,x.max=90,pas=0.2,y.max=0.6) tt<-"Volume de bois Cat.C sur l'ensemble des directions" histo(z=Vol50.Cat[,3],V.min=Vol50.min.max[3,1],V.max=Vol50.min.max[3,2],tt,xtt,ytt,Freq=FALSE, x.min=0,x.max=90,pas=0.2,y.max=0.6) tt<-"Volume de bois Cat.D sur l'ensemble des directions" histo(z=Vol50.Cat[,4],V.min=Vol50.min.max[4,1],V.max=Vol50.min.max[4,2],tt,xtt,ytt,Freq=FALSE, x.min=0,x.max=90,pas=0.2,y.max=0.6) tt<-"Volume de bois Total sur l'ensemble des directions" histo(z=Vol50.Cat[,5],V.min=Vol50.min.max[5,1],V.max=Vol50.min.max[5,2],tt,xtt,ytt,Freq=FALSE, x.min=0,x.max=90,pas=0.2,y.max=0.6) dev.off() # Code pour le tableau : fichier 0 Code tableau