changeset 8:73d80db53ecc draft default tip

Uploaded
author mnhn65mo
date Wed, 22 May 2019 09:28:37 -0400
parents 22813beb2fa8
children
files butterfly_analysis/butterfly_crossplot.R butterfly_analysis/butterfly_crossplot.xml butterfly_analysis/code_couleurs.csv butterfly_analysis/stat_bag.r butterfly_analysis/test-data/bourgogne.png butterfly_analysis/test-data/output_ggcomparelevel.png butterfly_analysis/test-data/shortBDD_PAPILLONS_2016.txt butterfly_crossplot.R butterfly_crossplot.xml code_couleurs.csv stat_bag.r
diffstat 11 files changed, 861 insertions(+), 763 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/butterfly_analysis/butterfly_crossplot.R	Wed May 22 09:28:37 2019 -0400
@@ -0,0 +1,561 @@
+##################################################################
+####   Script generique pour realiser les figures en croix  ######
+####       a partir des donnees brut                        ######
+##################################################################
+
+### Version V1.2 _ 2018-07-31
+
+library(ggplot2)
+library(RColorBrewer)
+
+args <- commandArgs(trailingOnly = TRUE)
+
+### importation code
+sourcefunctions<-args[1]
+source(sourcefunctions)
+
+## fonction d'importation des fichier des donnes
+### fonction d'importation, de concatenation des fichiers 
+### verification des nom de colonnes 
+### verification des doublon de ligne
+read.data <-  function(file=NULL,decimalSigne=".") {
+#    cat("1) IMPORTATION \n--------------\n")
+#    cat("<--",file,"\n")
+    data <- read.table(file,sep="\t",stringsAsFactors=FALSE,header=TRUE,dec=decimalSigne)
+    ## verification qu'il y a plusieur colonnes et essaye different separateur
+    if(ncol(data)==1) {
+        data <- read.table(file,sep=";",stringsAsFactors=FALSE,header=TRUE,dec=decimalSigne)
+        if(ncol(data)==1) {
+            data <- read.table(file,sep=",",stringsAsFactors=FALSE,header=TRUE,dec=decimalSigne)
+            if(ncol(data)==1) {
+                data <- read.table(file,sep=" ",stringsAsFactors=FALSE,header=TRUE,dec=decimalSigne)
+                if(ncol(data)==1) {
+                    stop("!!!! L'importation a echoue\n   les seperatateurs de colonne utilise ne sont pas parmi ([tabulation], ';' ',' [espace])\n   -> veuillez verifier votre fichier de donnees\n")
+                }
+            }
+        }
+    }
+    return(data)
+}
+
+
+
+
+
+filtre1niveau <- function(func,
+                          nom_fichier = filename, 
+                          dec=".",
+                          nom_fichierCouleur= color_filename,
+                          col_abscisse = "AB_MOYENNE",
+                          figure_abscisse = "Abondance",
+                          col_ordonnee = "DIVERSITE_MOYENNE",
+                          figure_ordonnee = "Diversite",
+                          nomGenerique="GLOBAL",
+                          vec_figure_titre = c("Les Papillons"),
+                          colourProtocole = TRUE,
+                          nomProtocole = "Papillons",
+                          vec_col_filtre = vec_col_filtre_usr,
+			  col_sousGroup = NULL,#
+                          val_filtre = NULL,#
+                          figure_nom_filtre = NULL,#
+                          bagplot = TRUE,
+                          bagProp=c(.05,.5,.95),
+                          seuilSegment=30,
+                          segmentSousSeuil=TRUE,
+                          forcageMajusculeFiltre=TRUE,
+                          forcageMajusculeSousGroupe=TRUE){
+
+    dCouleur <- read.data(file=nom_fichierCouleur)
+    d <- read.data(file=nom_fichier,decimalSigne=dec)
+    if(colourProtocole & !is.null(nomProtocole)) colourProtocole_p <- as.character(dCouleur[dCouleur[,2]==nomProtocole,3]) else colourProtocole_p <- NULL 
+
+    for(f in 1:length(vec_col_filtre)) {
+        if(length(vec_figure_titre)==1){
+            figure_titre_f <-  vec_figure_titre
+        }else{
+            figure_titre_f <- vec_figure_titre[f]
+        }
+        col_filtre_f <- vec_col_filtre[f]
+        #cat(col_sousGroup) #Just to check
+        if(func=="ggfiltre1niveau"){
+            #cat("ggfiltre1niveau")
+            ggfiltre1niveau(d,
+                        col_abscisse,
+                        figure_abscisse,
+                        col_ordonnee,
+                        figure_ordonnee,
+                        figure_titre = figure_titre_f,
+                        col_filtre = col_filtre_f,
+                        nomGenerique,
+                        val_filtre = NULL,
+                        figure_nom_filtre = NULL,
+                        tab_figure_couleur=  subset(dCouleur,Filtre==col_filtre_f),
+                        colourProtocole = colourProtocole_p,
+                        nomProtocole,
+                        bagplot,
+                        bagProp=c(.05,.5,.95),
+                        seuilSegment,
+                        segmentSousSeuil,
+                        forcageMajusculeFiltre)
+        }else if(func=="gglocal"){
+            #cat("gglocal")
+            gglocal(d,
+                    col_abscisse,
+                    figure_abscisse,
+                    col_ordonnee,
+                    figure_ordonnee,
+                    figure_titre = figure_titre_f,
+                    col_filtre = col_filtre_f,
+                    nomGenerique = nomGenerique,
+                    col_sousGroup = col_sousGroup,
+                    val_filtre = NULL,
+                    figure_nom_filtre = NULL,
+                    tab_figure_couleur= subset(dCouleur,Filtre==col_filtre_f),
+                    colourProtocole = colourProtocole_p,
+                    nomProtocole,
+                    couleurLocal="#f609c1",
+                    bagplot,
+                    bagProp,
+                    seuilSegment,
+                    segmentSousSeuil,
+                    forcageMajusculeFiltre,
+                    forcageMajusculeSousGroupe)
+        }else{
+            #cat("ggCompareLevel")
+            ggCompareLevel(d,
+                           col_abscisse,
+                           figure_abscisse,
+                           col_ordonnee,
+                           figure_ordonnee,
+                           figure_titre = figure_titre_f,
+                           col_filtre = col_filtre_f,
+                           nomGenerique = nomGenerique,
+                           val_filtre = NULL,
+                           figure_nom_filtre = NULL,
+                           tab_figure_couleur= subset(dCouleur,Filtre==col_filtre_f),
+                           colourProtocole = colourProtocole_p,
+                           nomProtocole, 
+                           bagplot,
+                           bagProp,
+                           seuilSegment,
+                           segmentSousSeuil,
+                           forcageMajusculeFiltre)
+        }
+    }    
+}
+
+ggfiltre1niveau <- function(d,
+                            col_abscisse = "AB_MOYENNE",
+                            figure_abscisse = "Abondance",
+                            col_ordonnee = "DIVERSITE_MOYENNE",
+                            figure_ordonnee = "Diversite",
+                            figure_titre = "Referentiel papillon",
+                            col_filtre = "nom_reseau",
+                            nomGenerique = "Global",
+                            val_filtre = NULL,
+                            figure_nom_filtre = NULL,
+                            tab_figure_couleur= NULL,
+                            colourProtocole = NULL,
+                            nomProtocole = NULL,
+                            bagplot = TRUE,
+                            bagProp=c(.05,.5,.95),
+                            seuilSegment=30,
+                            segmentSousSeuil=TRUE,
+                            forcageMajusculeFiltre=TRUE,
+                            result_dir="resultats/") {
+
+    d$groupe <- as.character(d[,col_filtre])
+    d$abscisse <- d[,col_abscisse]
+    d$ordonnee <- d[,col_ordonnee]
+    d$groupe <-gsub("/","_",d$groupe)
+    d$groupe <-gsub("!","",d$groupe)
+   
+    if(forcageMajusculeFiltre){
+        d$groupe <- toupper(d$groupe)}
+
+    d <- subset(d,!(is.na(groupe)) & !(is.na(abscisse)) & !(is.na(ordonnee)) & groupe != "")
+
+    if(is.null(val_filtre)){ 
+        lesModalites <- unique(d$groupe) 
+    }else{
+        lesModalites <- val_filtre
+    }
+
+#    repResult <- dir(result_dir)
+#    current_dir<-getwd()
+#    dir.create(file.path(current_dir,result_dir))
+#
+#    if(!(col_filtre %in% repResult)){
+#        dir.create(file.path(".",paste(result_dir,col_filtre,sep="")))}
+#
+#    nomRep1 <- paste(result_dir,col_filtre,"/",sep="")   
+    
+    d.autre <- d
+    d.autre$groupe <- nomGenerique
+
+    for(m in lesModalites) {
+        d.reseau <-  subset(d,groupe==m)
+        d.reseau$groupe <- m
+        ggTable <- rbind(d.autre,d.reseau)
+
+        seuilResum <- nrow(d.reseau) >= seuilSegment
+        
+        ggTableResum <- aggregate(cbind(ordonnee, abscisse) ~ groupe, data = ggTable,quantile, c(.25,.5,.75))
+        ggTableResum <- data.frame(ggTableResum[,1],ggTableResum[,2][,1:3],ggTableResum[,3][,1:3])
+        colnames(ggTableResum) <- c("groupe","ordonnee.inf","ordonnee.med","ordonnee.sup","abscisse.inf","abscisse.med","abscisse.sup")
+
+        if(ggTableResum$groupe[2]==nomGenerique){
+            ggTableResum <- ggTableResum[c(2,1),]}
+      
+        if(!(is.null(tab_figure_couleur))) {
+            if(m %in% tab_figure_couleur$Modalite) {
+                figure_couleur <- setNames(c(as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == nomGenerique]),
+                                           as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == m])),
+                                           c(nomGenerique,m))
+            }else{
+                figure_couleur <- setNames(c(as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == nomGenerique]),
+                                           as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == ""])),
+                                           c(nomGenerique,m))
+            }
+        }
+
+#        repResult <- dir(nomRep1)
+#        if(!(m %in% repResult)){
+#            dir.create(paste(nomRep1,m,sep=""))}
+#        nomRep <- paste(nomRep1,m,"/",sep="") 
+#        
+#        
+#        if(!is.null(nomProtocole)){
+#            repResult <- dir(nomRep)
+#            if(!(nomProtocole %in% repResult)){
+#                dir.create(paste(nomRep,nomProtocole,sep=""))}
+#            nomRep <- paste(nomRep,nomProtocole,"/",sep="")
+#        } 
+        
+     
+        gg <- ggplot(ggTable,aes(x=abscisse,y=ordonnee,colour=groupe,fill=groupe))
+        if(bagplot){
+            gg <- gg + stat_bag(data=d.autre,prop=bagProp[1],colour=NA,alpha=.7) + stat_bag(data=d.autre,prop=bagProp[2],colour=NA,alpha=.4) + stat_bag(data=d.autre,prop=bagProp[3],colour=NA,alpha=.2) }
+        else {
+            gg <- gg + geom_point(alpha=.2)  
+        } 
+        gg <- gg + geom_hline(data=subset(ggTableResum,groupe== nomGenerique),aes(yintercept = ordonnee.med,colour=groupe),size=.5,linetype="dashed") + geom_vline(data=subset(ggTableResum,groupe==nomGenerique),aes(xintercept = abscisse.med,colour=groupe),size=.5,linetype="dashed")
+        if(segmentSousSeuil) {
+            gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.8,size=2.5)
+            gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.8,size=2.5)
+            if(!(seuilResum)) {
+                gg <- gg + geom_segment(data=subset(ggTableResum,groupe!=nomGenerique),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.5,size = 1.5,colour="white")
+                gg <- gg + geom_segment(data=subset(ggTableResum,groupe!=nomGenerique),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.5,size = 1.5,colour="white")
+            }
+        } else {
+            gg <- gg + geom_segment(data=subset(ggTableResum,groupe==nomGenerique),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.8,size = 2.5)
+            gg <- gg + geom_segment(data=subset(ggTableResum,groupe==nomGenerique),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.8,size = 2.5)
+        }
+
+        gg <- gg + geom_point(data=d.reseau,size=2)
+        gg <- gg + labs(list(title=figure_titre,x=figure_abscisse,y=figure_ordonnee))
+
+        if(!is.null(colourProtocole)){
+            gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA), axis.ticks = element_line(colour = colourProtocole, size = 1), axis.ticks.length = unit(0.3, "cm"),plot.title = element_text(colour = colourProtocole))
+        }else{
+            gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA))
+        }
+
+        if(!(is.null(tab_figure_couleur))){
+            gg <- gg + scale_colour_manual(values = figure_couleur,name = "") + scale_fill_manual(values = figure_couleur,name = "",guide=FALSE)}
+        
+        ggfile <- paste(nomRep,"region",nomProtocole,"_",m,".png",sep="")
+        #cat("Check",ggfile,":")
+        ggsave(ggfile,gg)
+        #cat("\n")
+        flush.console()
+    }
+}
+
+
+##############################################################
+gglocal <- function(d,
+                    col_abscisse = "AB_MOYENNE",
+                    figure_abscisse = "Abondance",
+                    col_ordonnee = "DIVERSITE_MOYENNE",
+                    figure_ordonnee = "Diversite",
+                    figure_titre = "Graphe referentiel",
+                    col_filtre = "NOM_RESEAU",
+                    nomGenerique = "GLOBAL",
+                    col_sousGroup = "PARCELLEID",
+                    val_filtre = NULL,
+                    figure_nom_filtre = NULL,
+                    tab_figure_couleur= NULL,
+                    colourProtocole = NULL,
+                    nomProtocole = NULL,
+                    couleurLocal="#f609c1",
+                    bagplot = TRUE,
+                    bagProp=c(.05,.5,.95),
+                    seuilSegment=30,
+                    segmentSousSeuil=TRUE,
+                    forcageMajusculeFiltre=TRUE,
+                    forcageMajusculeSousGroupe=TRUE) {
+    
+    d$groupe <- d[,col_filtre]
+    d$abscisse <- d[,col_abscisse]
+    d$ordonnee <- d[,col_ordonnee]
+    d$sousGroup <- d[,col_sousGroup]
+    d$groupe <-gsub("/","_",d$groupe)
+    d$groupe <-gsub("!","",d$groupe)
+    d$sousGroup <-gsub("/","_",d$sousGroup)
+    d$sousGroup <-gsub("!","",d$sousGroup)
+    if(forcageMajusculeFiltre){
+        d$groupe <- toupper(d$groupe)}
+    if(forcageMajusculeSousGroupe){
+        d$sousGroup <- toupper(d$sousGroup)}
+    d <- subset(d,!(is.na(groupe)) & !(is.na(sousGroup)) & !(is.na(abscisse)) & !(is.na(ordonnee)) & groupe != "")
+    vecSousGroup <- as.character(unique(d$sousGroup))
+    if(is.null(val_filtre)){
+        lesModalites <- unique(d$groupe)}
+    else{ lesModalites <- val_filtre}
+    repResult <- dir("resultats/")
+#    if(!(col_filtre %in% repResult)){
+#        dir.create(paste("resultats/",col_filtre,sep=""))}
+#    nomRep1 <- paste("resultats/",col_filtre,"/",sep="")     
+    d.autre <- d
+    d.autre$groupe <- nomGenerique
+    for(m in lesModalites) {
+        d.reseau <-  subset(d,groupe==m)
+        d.reseau$groupe <- m
+        ggTable <- rbind(d.autre,d.reseau)
+        seuilResum <- nrow(d.reseau) >= seuilSegment 
+        ggTableResum <- aggregate(cbind(ordonnee, abscisse) ~ groupe, data = ggTable,quantile, c(.25,.5,.75))
+        ggTableResum <- data.frame(ggTableResum[,1],ggTableResum[,2][,1:3],ggTableResum[,3][,1:3])
+        colnames(ggTableResum) <- c("groupe","ordonnee.inf","ordonnee.med","ordonnee.sup","abscisse.inf","abscisse.med","abscisse.sup")
+        if(ggTableResum$groupe[2]==nomGenerique){
+            ggTableResum <- ggTableResum[c(2,1),]}             
+        if(!(is.null(tab_figure_couleur))) {
+            if(m %in% tab_figure_couleur$Modalite) {
+                figure_couleur <- setNames(c(as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == nomGenerique]),
+                                             as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == m]),couleurLocal),
+                                           c(nomGenerique,m,""))
+            } else {
+                figure_couleur <- setNames(c(as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == nomGenerique]),
+                                             as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == ""]),couleurLocal),
+                                           c(nomGenerique,m,""))
+            }
+        }
+#        repResult <- dir(nomRep1)
+#        if(!(m %in% repResult)){
+#            dir.create(paste(nomRep1,m,sep=""))}
+#        nomRep <- paste(nomRep1,m,"/",sep="")      
+#        if(!is.null(nomProtocole)) {
+#            repResult <- dir(nomRep)
+#            if(!(nomProtocole %in% repResult)){
+#                dir.create(paste(nomRep,nomProtocole,sep=""))}
+#            nomRep <- paste(nomRep,nomProtocole,"/",sep="")
+#        }         
+        d.reseau <- subset(d.reseau, !(is.na(sousGroup)))        
+        figure_size<-  setNames(c(1,3,2.5), c(nomGenerique,m,""))
+        figure_shape<-  setNames(c(16,16,20), c(nomGenerique,m,""))        
+        vecSousGroup <- as.character(unique(d.reseau$sousGroup))        
+        for(p in vecSousGroup) {            
+            dp <-  subset(d.reseau,sousGroup == p)
+            dp$groupe <- dp$sousGroup
+            ggTableSous <- rbind(d.reseau,dp)
+            ggTableSous <- rbind(d.autre,d.reseau,dp)
+            names(figure_couleur)[3] <- p
+            names(figure_shape)[3] <- p
+            names(figure_size)[3] <- p                        
+            gg <- ggplot(ggTableSous,aes(x=abscisse,y=ordonnee,colour=groupe,fill=groupe,shape=groupe,size=groupe))
+            if(bagplot){
+                gg <- gg + stat_bag(data=d.autre,prop=bagProp[1],colour=NA,alpha=.7) + stat_bag(data=d.autre,prop=bagProp[2],colour=NA,alpha=.4) + stat_bag(data=d.autre,prop=bagProp[3],colour=NA,alpha=.2)
+            }else{
+                gg <- gg + geom_point(alpha=.2)}
+            gg <- gg + geom_hline(data=subset(ggTableResum,groupe == nomGenerique),aes(yintercept = ordonnee.med,colour=groupe),size=.5,linetype="dashed")
+            gg <- gg + geom_vline(data=subset(ggTableResum,groupe == nomGenerique),aes(xintercept = abscisse.med,colour=groupe),size=.5,linetype="dashed")
+            if(segmentSousSeuil) {
+                gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.8,size=2.5)
+                gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.8,size=2.5)
+                if(!(seuilResum)) {
+                    gg <- gg + geom_segment(data=subset(ggTableResum,groupe!=nomGenerique),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.5,size = 1.5,colour="white")
+                    gg <- gg + geom_segment(data=subset(ggTableResum,groupe!=nomGenerique),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.5,size = 1.5,colour="white")
+                }
+            } else {
+                gg <- gg + geom_segment(data=subset(ggTableResum,groupe==nomGenerique),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.8,size = 2.5)
+                gg <- gg + geom_segment(data=subset(ggTableResum,groupe==nomGenerique),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.8,size = 2.5)
+            }
+            gg <- gg + geom_point(data=subset(ggTableSous,groupe != nomGenerique))
+            if(!(is.null(tab_figure_couleur))){
+                gg <- gg + scale_colour_manual(values = figure_couleur,name = "") + scale_fill_manual(values = figure_couleur,name = "",guide=FALSE)}
+            gg <- gg + scale_shape_manual(values = figure_shape,name = "",guide=FALSE) + scale_size_manual(values = figure_size,guide=FALSE)
+            gg <- gg + labs(list(title=figure_titre,x=figure_abscisse,y=figure_ordonnee))
+            if(!is.null(colourProtocole)){
+                gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA), axis.ticks = element_line(colour = colourProtocole, size = 1), axis.ticks.length = unit(0.3, "cm"),plot.title = element_text(colour = colourProtocole)) }
+            else{
+                gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA))}                       
+            ggfile <- paste(nomRep,"network",nomProtocole,"_",m,"-",p,".png",sep="")
+            #cat("Check",ggfile,":")
+            ggsave(ggfile,gg)
+            #cat("\n")
+            flush.console()
+        }
+    }
+}
+
+
+
+#####################################################
+ggCompareLevel <- function(d,
+                           col_abscisse = "abond_moyenne",
+                           figure_abscisse = "Abondance",
+                           col_ordonnee = "diversite_moyenne",
+                           figure_ordonnee = "Diversite",
+                           figure_titre = "Rhooo il dechire ce graphe",
+                           col_filtre = "nom_reseau",
+                           nomGenerique = "Global",
+                           val_filtre = NULL,
+                           figure_nom_filtre = NULL,
+                           tab_figure_couleur= NULL,
+                           colourProtocole = NULL,
+                           nomProtocole = NULL,
+                           bagplot = TRUE,
+                           bagProp=c(.05,.5,.95),
+                           seuilSegment=30,
+                           segmentSousSeuil=FALSE,
+                           forcageMajusculeFiltre=TRUE){
+
+    d$groupe <- d[,col_filtre]
+    d$abscisse <- d[,col_abscisse]
+    d$ordonnee <- d[,col_ordonnee]
+    d$groupe <-gsub("/","_",d$groupe)
+    d$groupe <-gsub("!","",d$groupe)    
+    
+    if(forcageMajusculeFiltre){
+        d$groupe <- toupper(d$groupe)}
+    d <- subset(d,!(is.na(groupe)) & !(is.na(abscisse)) & !(is.na(ordonnee)) & groupe != "")
+    if(is.null(val_filtre)){
+        lesModalites <- unique(d$groupe) 
+    }else{
+        lesModalites <- val_filtre
+    }
+#    repResult <- dir("resultats/")
+#    if(!(col_filtre %in% repResult)){
+#        dir.create(paste("resultats/",col_filtre,sep=""))
+#    }
+#    if(!is.null(nomProtocole)){
+#        repResult <- dir(paste("resultats/",col_filtre,sep=""))
+#        if(!(nomProtocole %in% repResult)){
+#            dir.create(paste("resultats/",col_filtre,"/",nomProtocole,sep=""))}
+#        nomRep <- paste("resultats/",col_filtre,"/",nomProtocole,"/",sep="")
+#    }else{
+#        nomRep <- paste("resultats/",col_filtre,"/",sep="")   
+#    }
+    d.autre <- d
+    d.autre$groupe <- nomGenerique
+    d.reseau <-  subset(d,groupe %in% lesModalites)
+    ggTable <- rbind(d.autre,d.reseau)
+    ggTableResum <- aggregate(cbind(ordonnee, abscisse) ~ groupe, data = ggTable,quantile, c(.25,.5,.75))
+    ggTableResum <- data.frame(ggTableResum[,1],ggTableResum[,2][,1:3],ggTableResum[,3][,1:3])
+    colnames(ggTableResum) <- c("groupe","ordonnee.inf","ordonnee.med","ordonnee.sup","abscisse.inf","abscisse.med","abscisse.sup")
+    ggSeuil <- aggregate(ordonnee ~ groupe, data=ggTable,length)
+    ggSeuil$seuilResum <- ggSeuil$ordonnee >= seuilSegment
+    colnames(ggSeuil)[ncol(ggSeuil)] <- "seuil"
+    ggTableResum <- merge(ggTableResum,ggSeuil,by="groupe")
+    t_figure_couleur <- subset(tab_figure_couleur,Modalite %in% c(nomGenerique,lesModalites))
+    modaliteSansCouleur <- lesModalites[(!(lesModalites %in% t_figure_couleur$Modalite))]
+    nbNxCol <- length(modaliteSansCouleur)
+    mypalette<-brewer.pal(nbNxCol,"YlGnBu")
+    figure_couleur <- setNames(c(as.character(t_figure_couleur$couleur),mypalette),c(as.character(t_figure_couleur$Modalite),modaliteSansCouleur))
+    tab_coul <- data.frame(groupe=names(figure_couleur),couleur=figure_couleur)
+    tab_coul <- merge(tab_coul,ggTableResum,"groupe")
+    tab_coul$nom <- paste(tab_coul$groupe," (",tab_coul$ordonnee,")",sep="")
+    figure_couleur <- setNames(as.character(tab_coul$couleur),tab_coul$groupe)
+    figure_couleur_nom<- tab_coul$nom
+    gg <- ggplot(ggTable,aes(x=abscisse,y=ordonnee,colour=groupe,fill=groupe))
+    if(bagplot){
+        gg <- gg + stat_bag(data=d.autre,prop=bagProp[1],colour=NA,alpha=.7) + stat_bag(data=d.autre,prop=bagProp[2],colour=NA,alpha=.4) + stat_bag(data=d.autre,prop=bagProp[3],colour=NA,alpha=.2) 
+    }else{
+        gg <- gg + geom_point(alpha=.2)
+    }
+    gg <- gg + geom_hline(data=subset(ggTableResum,groupe=="Autre"),aes(yintercept = ordonnee.med,colour=groupe),size=.5,linetype="dashed") + geom_vline(data=subset(ggTableResum,groupe=="Autre"),aes(xintercept = abscisse.med,colour=groupe),size=.5,linetype="dashed") 
+    gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.7,size = 2.5)
+    gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.7,size = 2.5)
+    if(any(ggTableResum$seuil)){
+        gg <- gg + geom_segment(data=subset(ggTableResum,!(seuil)),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.5,size = 1.5,colour="white")
+        gg <- gg + geom_segment(data=subset(ggTableResum,!(seuil)),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.5,size = 1.5,colour="white")
+    }
+                    
+    #browser()                    #  gg <- gg + geom_point(data=d.reseau,size=2)
+    gg <- gg + scale_colour_manual(values = figure_couleur,name = "",labels =  figure_couleur_nom) + scale_fill_manual(values = figure_couleur,name = "",guide=FALSE)
+    gg <- gg + labs(list(title=figure_titre,x=figure_abscisse,y=figure_ordonnee))
+    if(!is.null(colourProtocole)){
+        gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA), axis.ticks = element_line(colour = colourProtocole, size = 1), axis.ticks.length = unit(0.3, "cm"),plot.title = element_text(colour = colourProtocole)) 
+    }else{
+        gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA))
+    }
+    ggfile <- paste(nomRep,nomProtocole,"_",col_filtre,"_","comparaison.png",sep="")
+    #cat("Check",ggfile,":")    
+    ggsave(ggfile,gg)
+    #cat("\n")
+flush.console()
+}
+
+
+#########################################
+
+#Lancement des fonctions :
+
+  #Variables a definir :
+
+#filename="BDD_PAPILLONS_2016.txt"
+#color_filename<-"code_couleurs.csv"
+
+  #func
+#func="ggCompareLevel"
+#func="ggfiltre1niveau"
+#func="gglocal"
+
+  #colSousGroupe
+#col_sousGroup_usr = NULL    #ggfiltre #ggCompareLevel
+#col_sousGroup_usr = "PARCELLENOM"   #gglocal
+
+  #vec_col_filtre_usr
+#vec_col_filtre_usr = c("CONDUITEPARCELLE")  #ggCompareLevel
+#vec_col_filtre_usr = c("REGION")   #ggfiltre
+#vec_col_filtre_usr = c("NOM_RESEAU") #gglocal
+
+
+
+#Exe fonction :
+
+#filtre1niveau(func=func,nom_fichier=filename,nom_fichierCouleur=color_filename,col_sousGroup=NULL)   #ggfiltre ou ggCompareLevel, depend de func et de vec_col_filtre_usr
+#filtre1niveau(func=func,nom_fichier=filename,nom_fichierCouleur=color_filename,col_sousGroup = col_sousGroup_usr,vec_col_filtre=vec_col_filtre_usr) ## ==local
+
+########################################################
+
+filename=args[2]
+color_filename=args[3]
+functions=strsplit(args[4],",")[[1]]
+
+
+
+#create result dir
+nomRep="resultats/"
+dir.create(file.path(".", nomRep), showWarnings = FALSE)
+
+for (func in functions){
+  print(func)
+  if(func=="ggCompareLevel"){
+    col_sousGroup_usr=NULL
+    vec_col_filtre_usr=c("CONDUITEPARCELLE")
+  }else if(func=="ggfiltre1niveau"){
+    col_sousGroup_usr=NULL
+    vec_col_filtre_usr=c("REGION")
+  }else if(func=="gglocal"){
+    col_sousGroup_usr="PARCELLENOM"
+    vec_col_filtre_usr=c("NOM_RESEAU")
+  }else{
+    #sortie erreur
+    write("Error, unknown function. Exit(1).", stderr())
+    q('no')
+  }
+
+ filtre1niveau(func=func,nom_fichier=filename,nom_fichierCouleur=color_filename,col_sousGroup=col_sousGroup_usr,vec_col_filtre=vec_col_filtre_usr)
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/butterfly_analysis/butterfly_crossplot.xml	Wed May 22 09:28:37 2019 -0400
@@ -0,0 +1,81 @@
+<tool id="butterfly_crossplot" name="Butterfly data analysis and graph display" version="0.1.0">
+    <requirements>
+        <requirement type="package" version="2.2.1">r-ggplot2</requirement>
+	<requirement type="package" version="1.5_9">r-cairo</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        Rscript '$__tool_directory__/butterfly_crossplot.R' 
+          '$__tool_directory__/stat_bag.r' 
+          '$butterfly_db'
+          '$__tool_directory__/code_couleurs.csv' 
+          $function
+    ]]></command>
+    <inputs>
+        <param name="function" type="select" multiple="True" optional="false" label="Select your analyse" help="Chose at least one element you want to compare. It can be geographical regions, local networks or production methods.">
+            <option value="ggCompareLevel">Compare production methods</option>
+            <option value="ggfiltre1niveau">Compare regions</option>
+            <option value="gglocal">Compare local networks</option>
+        </param>
+        <param name="butterfly_db" type="data" format="csv,tabular" label="Butterfly datafile" help="Describe file content."/>
+    </inputs>
+    <outputs>
+        <data format="png" name="ggCompareLevel" label="Compare production methods" from_work_dir="resultats/Papillons_CONDUITEPARCELLE_comparaison.png">
+            <filter>'ggCompareLevel' in function</filter>
+        </data>
+        <collection type="list" name="output_ggfiltre" label="Compare regions">
+            <discover_datasets pattern="region(?P&lt;designation&gt;.+)\.png" visible="false" format="png" directory="resultats"/>
+                <filter>'ggfiltre1niveau' in function</filter>
+        </collection>
+        <collection type="list" name="output_gglocal" label="Compare local networks">
+            <discover_datasets pattern="network(?P&lt;designation&gt;.+)\.png" visible="false" format="png" directory="resultats"/>
+                <filter>'gglocal' in function</filter>
+        </collection>
+    </outputs>
+    <tests>
+        <test>
+            <param name="butterfly_db" value="shortBDD_PAPILLONS_2016.txt"/>
+            <param name="function" value="ggCompareLevel"/>
+            <output name="ggCompareLevel" value="output_ggcomparelevel.png" ftype="png"/>
+        </test>
+        <test>
+            <param name="butterfly_db" value="shortBDD_PAPILLONS_2016.txt"/>
+            <param name="function" value="ggfiltre1niveau"/>
+            <output_collection name="output_ggfiltre" type="list">
+                <element name="Papillons_BOURGOGNE" value="bourgogne.png" ftype="png"/>
+            </output_collection>
+        </test>
+    </tests>    
+    <help><![CDATA[
+
+=====================================
+Butterfly analysis and data display
+=====================================
+
+**What it does**
+  
+This tool allows to compare butterfly diversity and abundance across regions, observation networks, and production methods.
+
+It uses measures from the Observatoire Agricole de la Biodiversity.
+    
+Plots show abundance (x) versus diversity (y). 
+
+Line lenght gives information about dispertion, longer lines means bigger heterogeneity accross fields.
+
+|
+
+**How to use it**
+
+Chose a database file, and one or more data display.
+
+|
+
+**Outputs**
+
+*Compare production methods* option will show differences accross agricultural production methods accross all data.
+
+*Compare regions* option will create a collection of graph. One plot for each region in created, they show data informations in that region compared with global data.
+
+*Compare local networks* does the same as the 'regions' option but for every observation networks.
+
+    ]]></help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/butterfly_analysis/code_couleurs.csv	Wed May 22 09:28:37 2019 -0400
@@ -0,0 +1,24 @@
+Filtre;Modalite;couleur
+TYPECULTURE;ARBORICULTURE;"#006600"
+TYPECULTURE;AUTRE_CULTURE_PERENNE;"#FF5050"
+TYPECULTURE;GRANDE_CULTURE;"#FFC000"
+TYPECULTURE;MARAICHAGE;"#FF6600"
+TYPECULTURE;PRAIRIE;"#97B314"
+TYPECULTURE;VITICULTURE;"#660066"
+NOM_RESEAU;;"#31849B"
+Protocole;Abeilles;"#EE7F00"
+Protocole;Invertebres;"#97B314"
+Protocole;Papillons;"#009EE0"
+Protocole;Vers de terre;"#666666"
+TYPECULTURE;GLOBAL;"#9f0d0d"
+NOM_RESEAU;GLOBAL;"#9f0d0d"
+REGIONNAME;;"#31849B"
+REGIONNAME;GLOBAL;"#9f0d0d"
+ANNEE;;"#31849B"
+ANNEE;GLOBAL;"#9f0d0d"
+REGION;GLOBAL;"#9f0d0d"
+REGION;;"#666666"
+CONDUITEPARCELLE;;"#31849B"
+CONDUITEPARCELLE;GLOBAL;"#9f0d0d"
+TRAVAILSOL;;"#31849B"
+TRAVAILSOL;GLOBAL;"#9f0d0d"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/butterfly_analysis/stat_bag.r	Wed May 22 09:28:37 2019 -0400
@@ -0,0 +1,145 @@
+library(ggplot2)
+StatBag <- ggproto("Statbag", Stat,
+                   compute_group = function(data, scales, prop = 0.5) {
+
+                     #################################
+                     #################################
+                     # originally from aplpack package, plotting functions removed
+                     plothulls_ <- function(x, y, fraction, n.hull = 1,
+                                            col.hull, lty.hull, lwd.hull, density=0, ...){
+                       # function for data peeling:
+                       # x,y : data
+                       # fraction.in.inner.hull : max percentage of points within the hull to be drawn
+                       # n.hull : number of hulls to be plotted (if there is no fractiion argument)
+                       # col.hull, lty.hull, lwd.hull : style of hull line
+                       # plotting bits have been removed, BM 160321
+                       # pw 130524
+                       if(ncol(x) == 2){ y <- x[,2]; x <- x[,1] }
+                       n <- length(x)
+                       if(!missing(fraction)) { # find special hull
+                         n.hull <- 1
+                         if(missing(col.hull)) col.hull <- 1
+                         if(missing(lty.hull)) lty.hull <- 1
+                         if(missing(lwd.hull)) lwd.hull <- 1
+                         x.old <- x; y.old <- y
+                         idx <- chull(x,y); x.hull <- x[idx]; y.hull <- y[idx]
+                         for( i in 1:(length(x)/3)){
+                           x <- x[-idx]; y <- y[-idx]
+                           if( (length(x)/n) < fraction ){
+                             return(cbind(x.hull,y.hull))
+                           }
+                           idx <- chull(x,y); x.hull <- x[idx]; y.hull <- y[idx];
+                         }
+                       }
+                       if(missing(col.hull)) col.hull <- 1:n.hull
+                       if(length(col.hull)) col.hull <- rep(col.hull,n.hull)
+                       if(missing(lty.hull)) lty.hull <- 1:n.hull
+                       if(length(lty.hull)) lty.hull <- rep(lty.hull,n.hull)
+                       if(missing(lwd.hull)) lwd.hull <- 1
+                       if(length(lwd.hull)) lwd.hull <- rep(lwd.hull,n.hull)
+                       result <- NULL
+                       for( i in 1:n.hull){
+                         idx <- chull(x,y); x.hull <- x[idx]; y.hull <- y[idx]
+                         result <- c(result, list( cbind(x.hull,y.hull) ))
+                         x <- x[-idx]; y <- y[-idx]
+                         if(0 == length(x)) return(result)
+                       }
+                       result
+                     } # end of definition of plothulls
+                     #################################
+
+
+                     # prepare data to go into function below
+                     the_matrix <- matrix(data = c(data$x, data$y), ncol = 2)
+
+                     # get data out of function as df with names
+                     setNames(data.frame(plothulls_(the_matrix, fraction = prop)), nm = c("x", "y"))
+                     # how can we get the hull and loop vertices passed on also?
+                   },
+
+                   required_aes = c("x", "y")
+)
+
+#' @inheritParams ggplot2::stat_identity
+#' @param prop Proportion of all the points to be included in the bag (default is 0.5)
+stat_bag <- function(mapping = NULL, data = NULL, geom = "polygon",
+                     position = "identity", na.rm = FALSE, show.legend = NA, 
+                     inherit.aes = TRUE, prop = 0.5, alpha = 0.3, ...) {
+  layer(
+    stat = StatBag, data = data, mapping = mapping, geom = geom, 
+    position = position, show.legend = show.legend, inherit.aes = inherit.aes,
+    params = list(na.rm = na.rm, prop = prop, alpha = alpha, ...)
+  )
+}
+
+
+geom_bag <- function(mapping = NULL, data = NULL,
+                     stat = "identity", position = "identity",
+                     prop = 0.5, 
+                     alpha = 0.3,
+                     ...,
+                     na.rm = FALSE,
+                     show.legend = NA,
+                     inherit.aes = TRUE) {
+  layer(
+    data = data,
+    mapping = mapping,
+    stat = StatBag,
+    geom = GeomBag,
+    position = position,
+    show.legend = show.legend,
+    inherit.aes = inherit.aes,
+    params = list(
+      na.rm = na.rm,
+      alpha = alpha,
+      prop = prop,
+      ...
+    )
+  )
+}
+
+#' @rdname ggplot2-ggproto
+#' @format NULL
+#' @usage NULL
+#' @export
+GeomBag <- ggproto("GeomBag", Geom,
+                   draw_group = function(data, panel_scales, coord) {
+                     n <- nrow(data)
+                     if (n == 1) return(zeroGrob())
+
+                     munched <- coord_munch(coord, data, panel_scales)
+                     # Sort by group to make sure that colors, fill, etc. come in same order
+                     munched <- munched[order(munched$group), ]
+
+                     # For gpar(), there is one entry per polygon (not one entry per point).
+                     # We'll pull the first value from each group, and assume all these values
+                     # are the same within each group.
+                     first_idx <- !duplicated(munched$group)
+                     first_rows <- munched[first_idx, ]
+
+                     ggplot2:::ggname("geom_bag",
+                                      grid:::polygonGrob(munched$x, munched$y, default.units = "native",
+                                                         id = munched$group,
+                                                         gp = grid::gpar(
+                                                           col = first_rows$colour,
+                                                           fill = alpha(first_rows$fill, first_rows$alpha),
+                                                           lwd = first_rows$size * .pt,
+                                                           lty = first_rows$linetype
+                                                         )
+                                      )
+                     )
+
+
+                   },
+
+                   default_aes = aes(colour = "NA", fill = "grey20", size = 0.5, linetype = 1,
+                                     alpha = NA, prop = 0.5),
+
+                   handle_na = function(data, params) {
+                     data
+                   },
+
+                   required_aes = c("x", "y"),
+
+                   draw_key = draw_key_polygon
+)
Binary file butterfly_analysis/test-data/bourgogne.png has changed
Binary file butterfly_analysis/test-data/output_ggcomparelevel.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/butterfly_analysis/test-data/shortBDD_PAPILLONS_2016.txt	Wed May 22 09:28:37 2019 -0400
@@ -0,0 +1,50 @@
+PARCELLEID	PARCELLENOM	ANNEE	TYPECULTURE	CONDUITEPARCELLE	REGION	AB_MOYENNE	AB_TOTALE	DIVERSITE_MOYENNE	DIVERSITE_TOTALE	NB_PASSAGES	AUTRES	NON_IDENTIFIES	AMARYLLIS	AURORES	BELLE_DAME	CITRONS	CUIVRE	DEMI_DEUILS	FLAMBES	GAZE	HESPERIDES_ORANGEES	HESPERIDES_TACHETEES	LYCENES_BLEUS	MACHAONS	MEGERES	MYRTIL	PAON_DU_JOUR	PETITES_TORTUES	PIERIDES_BLANCHES	PROCRIS	ROBERT_LE_DIABLE	SOUCIS	TABAC_D_ESPAGNE	TIRCIS	VULCAIN	SURFACE	LATITUDE	LONGITUDE	PAYSAGEINTENSIF	ESPECESCULTIVEES	TETEROTATIONEC	PCULTURAUXN1EC	PCULTURAUXN2EC	INTERCULTURE	DATESEMIS	TRAVAILSOL	ANNEEPLANTATION	INTERRANG	PRAIRIETEMPORAIRE	AGEPRAIRIE	ESEMEERGA	ESEMEERGI	ESEMEEDACTYLE	ESEMEEFETUQUE	ESEMEELEG	ESEMEEAUTRE	UPATURE	UPATURENBUGB	UFAUCHE	DATEDEBUTFAUCHE	NBFAUCHESPARAN	ANNEECONVERSION	NBPASSAGE_INSECTICIDE	NBPASSAGE_HERBICIDE	NBPASSAGE_FONGICIDE	NBPASSAGE_MOLLUCIDE	NBPASSAGE_AUTRE	NBPASSAGE_MINERALE	NBPASSAGE_F_ORGANIQUE	NBPASSAGE_A_ORGANIQUE	NBPASSAGE_CALCIQUE	CODE_EXPLOITATION	NOM_EXPLOITATION	INSEE	COMMUNE	NUM_DEPARTEMENT	DEPARTEMENT	CODE_RESEAU	NOM_RESEAU	NOM_RESEAU2	BORDURE_LISIERE	BORDURE_HAIE	BORDURE_BE	BORDURE_ROUTE	BORDURE_FOSSE	BORDURE_AUCUNE	BORDURE_BANDEFLEURIE	BORDURE_AUTRE	MA_AUTRECULTURE	MA_PRAIRIE	MA_BOIS	MA_ZURBAINE	MA_ETANG	MA_AUTRE	DISTANCE_PARCOURUE	NR	NR
+0000041_SQ7JB_0034048	LA_FAISANDERIE	2012	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	3.8	19	1.33333333333333	2	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	3.4	0.4	0	0	0	0	0	5	48.851323	1.92986	0	TRITICALE	BLE	COLZA	LUZERNE	0	06_09_2011__00:00:00	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	1	0	1	0	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	1	0	1	0	0	0	0	0	0	0	0	1	200	NR	NR
+0000041_SQ7JB_0034048	LA_FAISANDERIE	2013	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	3.5	14	2	6	4	0	0	0	0	0	0	0	0.25	0	0	0	0.75	0	0	0	0.75	0.25	0	1	0	0	0	0	0	0.5	5	48.851323	1.92986	0	TRITICALE	BLE	COLZA	LUZERNE	0	06_09_2011__00:00:00	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	1	0	1	0	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	1	0	1	0	0	0	0	0	0	0	0	1	200	NR	NR
+0000081_GP8M7_0034048	COIN_DU_MUR	2012	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	2.4	12	1.75	4	5	0	0	0	0	0	0	0	0.2	0	0	0	0	0	0	0	0.2	0	0	1.8	0	0	0	0	0	0.2	18	48.842794	1.952176	1	BLE	BLE	MA?S	TRITICALE	0	21_10_2011__00:00:00	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	2	0	1	1	1	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000081_GP8M7_0034048	COIN_DU_MUR	2013	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	1.25	5	1	1	4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1.25	0	0	0	0	0	0	18	48.842794	1.952176	1	BLE	BLE	MA?S	TRITICALE	0	21_10_2011__00:00:00	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	2	0	1	1	1	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000102_GZZ77_0034048	PONTS_CAILLOUX	2012	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	7.6	38	1.75	5	5	0	0	0	0	0	0	0	5.6	0	0	0.2	0.4	1.2	0	0	0	0	0	0.2	0	0	0	0	0	0	15	48.838493	1.92956	1	LUZERNE	BLE	LUZERNE	LUZERNE	0	22_07_2009__00:00:00	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000102_GZZ77_0034048	PONTS_CAILLOUX	2013	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	7.5	30	3	6	4	0	0	0	0	0.25	0	0	1.75	0	0	0	0	0.5	0	0	0	0	0.25	1.25	0	0	3.5	0	0	0	15	48.838493	1.92956	1	LUZERNE	BLE	LUZERNE	LUZERNE	0	22_07_2009__00:00:00	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000161_AAWHJ_0020323	PLUMECOQ	2012	VITICULTURE	AUTRE	CHAMPAGNE_ARDENNE	14	42	2	4	3	0	0.333333333333333	0.333333333333333	0	0	0	0	1	0	0	0.333333333333333	0	0	0	0	0	0	0	12	0	0	0	0	0	0	10	49.016707	3.983231	1	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	8	0	0	0	1	0	NR	361	CIVC	51230	EPERNRY	51	MARNE	81	AOC_CHAMPAGNE	NR	0	1	1	1	0	1	0	0	1	0	0	0	0	0	500	NR	NR
+0000161_AAWHJ_0020323	PLUMECOQ	2013	VITICULTURE	AUTRE	CHAMPAGNE_ARDENNE	6.33333333333333	19	1.66666666666667	2	3	0	0.666666666666667	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	2.66666666666667	3	0	0	0	0	0	10	49.016707	3.983231	1	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	8	0	0	0	1	0	NR	361	CIVC	51230	EPERNRY	51	MARNE	81	AOC_CHAMPAGNE	NR	0	0	1	1	0	1	0	0	1	0	0	0	0	0	500	NR	NR
+0000221_KP6JJ_0020518	LE_TOURNRNT	2012	VITICULTURE	AUTRE	CHAMPAGNE_ARDENNE	8.66666666666667	26	1.33333333333333	3	3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0.333333333333333	0	8	0	0	0	0	0	0.333333333333333	1	48.806863	3.339844	1	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	1	0	8	0	0	0	1	0	NR	501	EARL_THEVENET_DELOUVIN	51425	PASSY_GRIGNY	51	MARNE	81	AOC_CHAMPAGNE	NR	0	0	1	1	0	0	0	0	1	0	0	0	0	0	400	NR	NR
+0000221_KP6JJ_0020518	LE_TOURNRNT	2013	VITICULTURE	AUTRE	CHAMPAGNE_ARDENNE	1.33333333333333	4	1	2	3	0	0	0	0	0	0	0	0	0	0	0.666666666666667	0	0	0	0	0	0	0	0.666666666666667	0	0	0	0	0	0	1	48.806863	3.339844	1	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	1	0	8	0	0	0	1	0	NR	501	EARL_THEVENET_DELOUVIN	51425	PASSY_GRIGNY	51	MARNE	81	AOC_CHAMPAGNE	NR	0	0	1	1	0	0	0	0	1	0	0	0	0	0	400	NR	NR
+0000281_9HB1L_0034048	PRE_BOIS	2012	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	11	55	3.2	6	5	0	0	0	0	0	0	0	3.6	0	0	0	0	2.2	0	0	0.2	0	0.2	3.6	1.2	0	0	0	0	0	5	48.841758	1.932056	0	LUZERNE	BLE	LUZERNE	LUZERNE	0	16_03_2009__00:00:00	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000281_9HB1L_0034048	PRE_BOIS	2013	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	5.5	22	2	6	4	0	0	0	0	0	0	0	2	0	0	0	0	0	0	0	1.5	0.25	0	0.5	0.75	0	0.5	0	0	0	5	48.841758	1.932056	0	LUZERNE	BLE	LUZERNE	LUZERNE	0	16_03_2009__00:00:00	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000321_DEYUU_0034048	ALLEE_DE_THIVERVAL	2012	PRAIRIE	CONVENTIONNELLE	ILE_DE_FRANCE	1.4	7	1.5	2	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0.6	0	0	0.8	0	0	0	0	0	0	4	48.847963	1.935482	0	NR	NR	NR	NR	NR	NR	NR	NR	NR	0	NR	0	0	0	0	0	0	1	0	0	NR	NR	NR	0	0	0	0	0	1	2	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	1	0	0	1	0	0	0	1	0	1	0	0	0	0	150	NR	NR
+0000341_P3BDJ_0034048	DIVISION_DU_BAS	2012	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	1.2	6	1	2	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0.4	0	0.8	0	0	0	0	0	0	9	48.848612	1.947284	0	ORGE_ESCOURGEON_D_HIVER	BLE	BETTERAVE	BETTERAVE	0	01_03_2012__00:00:00	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	2	2	0	2	1	1	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000341_P3BDJ_0034048	DIVISION_DU_BAS	2013	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	4	16	1.5	5	4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0.25	0.25	2.25	0	0	1	0	0	0.25	9	48.848612	1.947284	0	ORGE_ESCOURGEON_D_HIVER	BLE	BETTERAVE	BETTERAVE	0	01_03_2012__00:00:00	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	2	2	0	2	1	1	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000401_GAI73_0034048	CENT_ARPENTS_OUEST	2012	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	5.6	28	2	6	5	0	0	0	0	0	0	0.4	0.2	0	0	0	0	0	0	0	0	0.2	0.2	4.2	0	0	0	0	0	0.4	5	48.839998	1.954622	1	MAIS	BLE	BLE	BETTERAVE	0	22_04_2012__00:00:00	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	0	0	0	0	1	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000401_GAI73_0034048	CENT_ARPENTS_OUEST	2013	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	0.5	2	2	2	4	0	0	0	0	0.25	0	0	0.25	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5	48.839998	1.954622	1	MAIS	BLE	BLE	BETTERAVE	0	22_04_2012__00:00:00	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	0	0	0	0	1	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000421_1RUNV_0034048	ORME_OUEST	2012	PRAIRIE	CONVENTIONNELLE	ILE_DE_FRANCE	1.2	6	1.5	2	5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0.2	0	0	0	0	0	7	48.838011	1.950846	1	NR	NR	NR	NR	NR	NR	NR	NR	NR	1	1	1	0	1	1	1	0	1	0	0	NR	NR	NR	0	0	0	0	0	1	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	0	0	1	0	0	0	1	0	0	0	0	200	NR	NR
+0000421_1RUNV_0034048	ORME_OUEST	2013	PRAIRIE	CONVENTIONNELLE	ILE_DE_FRANCE	2.25	9	3.5	4	4	0	0	0	0	0	0	0	0	0	0	0	0.25	0.5	0	0	0	0	0	0.5	0	0	1	0	0	0	7	48.838011	1.950846	1	NR	NR	NR	NR	NR	NR	NR	NR	NR	1	1	1	0	1	1	1	0	1	0	0	NR	NR	NR	0	0	0	0	0	1	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	0	0	1	0	0	1	0	0	0	0	0	150	NR	NR
+0000441_UPAWL_0034048	LES_MAISONS	2012	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	2.6	13	2.33333333333333	3	5	0	0	0	0	0	0	0	1.4	0	0	0	0	0.4	0	0	0	0	0	0.8	0	0	0	0	0	0	3	48.843275	1.942391	1	BETTERAVE	BETTERAVE	BETTERAVE	BETTERAVE	0	NR	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	1	0	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000441_UPAWL_0034048	LES_MAISONS	2013	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	1.75	7	1.33333333333333	4	4	0	0.25	0	0	0	0	0	0.25	0	0	0	0.25	0.25	0	0	0	0	0	0.75	0	0	0	0	0	0	3	48.843275	1.942391	1	BETTERAVE	BETTERAVE	BETTERAVE	BETTERAVE	0	NR	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	1	0	0	0	0	0	1	0	0	0	0	0	150	NR	NR
+0000461_KRVHA_0034048	TERRES_DE_L_EGLISE	2012	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	2.8	14	1.75	7	5	0	0	0	0	0.2	0	0	0.6	0	0	0	0.2	0.6	0	0	0.2	0.2	0	0.8	0	0	0	0	0	0	10	48.839687	1.930933	1	BLE	BLE	MA?S	NR	0	12_10_2011__00:00:00	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	2	3	0	1	3	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000461_KRVHA_0034048	TERRES_DE_L_EGLISE	2013	GRANDE_CULTURE	CONVENTIONNELLE	ILE_DE_FRANCE	1.5	6	1.33333333333333	3	4	0	0	0	0	0	0	0	0.25	0	0	0	0	0	0	0	0	0	0	1	0	0	0.25	0	0	0	10	48.839687	1.930933	1	BLE	BLE	MA?S	NR	0	12_10_2011__00:00:00	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	2	3	0	1	3	0	0	NR	141	FERME_EXPERIMENTALE_DE_GRIGNON	78615	THIVERVAL_GRIGNON	78	YVELINES	102	BIODIVERSITE_EN_PLAINE_DE_VERSAILLES_ET_SUR_LE_PLATEAU_DES_ALLUETS	NR	0	0	0	1	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000481_RWJBA_0034316	LYCEE	2012	PRAIRIE	AUTRE	POITOU_CHARENTES	35	105	5.33333333333333	9	3	6.66666666666667	0	0	5	0	0	0	0	0.333333333333333	0.333333333333333	0	0	1.33333333333333	0	5.66666666666667	0.333333333333333	0	0	11.6666666666667	2	0	0	0	0	1.66666666666667	NR	NR	NR	1	NR	NR	NR	NR	NR	NR	NR	NR	NR	0	NR	0	0	0	0	0	0	0	NR	1	NR	NR	NR	0	0	0	0	0	0	0	0	NR	821	LPH_NIORT_GASTON_CHAISSAC	79191	NIORT	79	DEUX_SEVRES	161	RESEAU_BIODIVERSITE_DE_L_ENSEIGNEMENT_AGRICOLE	NR	1	0	1	0	1	0	0	1	0	1	1	1	0	1	200	NR	NR
+0000483_T9XYO_0034316	EXPLOITATION	2012	AUTRE_CULTURE_PERENNE	AUTRE	POITOU_CHARENTES	7.33333333333333	22	1.5	2	3	5	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	1.33333333333333	0	0	0	0	0	NR	NR	NR	0	AUTRE_CULTURE_PERENNE	NR	NR	NR	NR	NR	NR	2006	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	821	LPH_NIORT_GASTON_CHAISSAC	79191	NIORT	79	DEUX_SEVRES	161	RESEAU_BIODIVERSITE_DE_L_ENSEIGNEMENT_AGRICOLE	NR	0	1	1	1	0	0	0	0	1	1	1	1	0	0	200	NR	NR
+0000741_CAHNJ_0008239	PRE_VAUCHER	2012	GRANDE_CULTURE	CONVENTIONNELLE	BOURGOGNE	12	36	1.66666666666667	3	3	0	0	0	0	0	0	0	0	0	0	0	0	0.333333333333333	0	0	0	0	0	11.3333333333333	0	0	0.333333333333333	0	0	0	9	NR	NR	1	ORGE_ESCOURGEON_D_HIVER	LUZERNE	AUTRE_GRANDE_CULTURE	AUTRE_GRANDE_CULTURE	0	NR	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	1	0	0	2	0	0	NR	741	FERME_DE_L_EPLEFPA_DE_DIJON_QUETIGNY	21622	TART_LE_BAS	21	COTE_D_OR	161	RESEAU_BIODIVERSITE_DE_L_ENSEIGNEMENT_AGRICOLE	NR	0	0	1	0	1	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000741_CAHNJ_0008239	PRE_VAUCHER	2012	GRANDE_CULTURE	CONVENTIONNELLE	BOURGOGNE	12	36	1.66666666666667	3	3	0	0	0	0	0	0	0	0	0	0	0	0	0.333333333333333	0	0	0	0	0	11.3333333333333	0	0	0.333333333333333	0	0	0	9	NR	NR	1	BETTERAVE	LUZERNE	AUTRE_GRANDE_CULTURE	AUTRE_GRANDE_CULTURE	0	NR	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	1	0	0	2	0	0	NR	741	FERME_DE_L_EPLEFPA_DE_DIJON_QUETIGNY	21622	TART_LE_BAS	21	COTE_D_OR	161	RESEAU_BIODIVERSITE_DE_L_ENSEIGNEMENT_AGRICOLE	NR	0	0	1	0	1	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000741_CAHNJ_0008239	PRE_VAUCHER	2013	GRANDE_CULTURE	CONVENTIONNELLE	BOURGOGNE	6	12	1	1	2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6	0	0	0	0	0	0	9	NR	NR	1	BETTERAVE	LUZERNE	AUTRE_GRANDE_CULTURE	AUTRE_GRANDE_CULTURE	0	NR	LABOUR_PROFOND	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	1	1	0	0	2	0	0	NR	741	FERME_DE_L_EPLEFPA_DE_DIJON_QUETIGNY	21622	TART_LE_BAS	21	COTE_D_OR	161	RESEAU_BIODIVERSITE_DE_L_ENSEIGNEMENT_AGRICOLE	NR	0	0	1	0	1	0	0	0	0	0	0	0	0	1	200	NR	NR
+0000762_GXPFC_0008239	VAL_DES_CHOUX	2012	GRANDE_CULTURE	AUTRE	BOURGOGNE	8	24	1.66666666666667	3	3	0	0.666666666666667	0	0	0	0	0	0	0	0	0	0.333333333333333	0	0	0	0	0	0	6.66666666666667	0	0	0	0	0	0.333333333333333	9	NR	NR	1	BLE	LUZERNE	POIS	AUTRE_GRANDE_CULTURE	0	NR	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	1	0	0	3	0	0	NR	741	FERME_DE_L_EPLEFPA_DE_DIJON_QUETIGNY	21622	TART_LE_BAS	21	COTE_D_OR	161	RESEAU_BIODIVERSITE_DE_L_ENSEIGNEMENT_AGRICOLE	NR	0	1	1	0	0	0	0	1	1	0	0	0	0	0	500	NR	NR
+0000762_GXPFC_0008239	VAL_DES_CHOUX	2013	GRANDE_CULTURE	AUTRE	BOURGOGNE	4	8	1	1	2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	4	0	0	0	0	0	0	9	NR	NR	1	BETTERAVE	LUZERNE	POIS	AUTRE_GRANDE_CULTURE	0	NR	TRAVAIL_SUPERFICIEL	NR	NR	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	1	0	0	3	0	0	NR	741	FERME_DE_L_EPLEFPA_DE_DIJON_QUETIGNY	21622	TART_LE_BAS	21	COTE_D_OR	161	RESEAU_BIODIVERSITE_DE_L_ENSEIGNEMENT_AGRICOLE	NR	0	1	1	0	1	0	0	0	0	0	0	0	0	1	260	NR	NR
+0000801_XW4CV_0020212	ROMMES	2012	VITICULTURE	CONVENTIONNELLE	CHAMPAGNE_ARDENNE	0.5	2	1	1	4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0.5	0	0	0	0	0	0	0	0	1	49.079959	3.980602	0	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	1	0	15	0	0	0	0	0	NR	1181	CHAMPAGNE_PASCAL_AUTREAU	51119	CHAMPILLON	51	MARNE	81	AOC_CHAMPAGNE	NR	0	0	1	0	0	0	0	0	0	0	1	0	0	0	400	NR	NR
+0000821_Z68LT_0020705	BOUVERIES	2012	VITICULTURE	BIOLOGIQUE	CHAMPAGNE_ARDENNE	0	0	0	0	3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	3	48.907622	3.997006	0	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	21	0	0	0	1	0	NR	1221	SARL_ST_GEORGES	51612	VERTUS	51	MARNE	81	AOC_CHAMPAGNE	NR	0	0	1	0	0	0	0	0	0	0	0	0	0	1	200	NR	NR
+0000821_Z68LT_0020705	BOUVERIES	2013	VITICULTURE	BIOLOGIQUE	CHAMPAGNE_ARDENNE	0	0	0	0	3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	3	48.907622	3.997006	0	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	21	0	0	0	1	0	NR	1221	SARL_ST_GEORGES	51612	VERTUS	51	MARNE	81	AOC_CHAMPAGNE	NR	0	0	0	1	0	0	1	0	1	0	0	0	0	0	200	NR	NR
+0000861_YLFNP_0003662	SIMORGES	2012	VITICULTURE	CONVENTIONNELLE	CHAMPAGNE_ARDENNE	4.66666666666667	14	3	5	3	0	0	0	0	0	0.666666666666667	1	0	0	0	0	0	0.666666666666667	0	0	0	0.333333333333333	0	2	0	0	0	0	0	0	1	48.043963	4.387783	1	VIGNE	NR	NR	NR	NR	NR	NR	0	SOL_NU	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	11	0	0	0	1	0	NR	1281	VALENTIN_BOEUF	10262	NEUVILLE_SUR_SEINE	10	AUBE	81	AOC_CHAMPAGNE	NR	1	0	0	1	0	0	0	0	0	1	1	0	0	0	300	NR	NR
+0000861_YLFNP_0003662	SIMORGES	2013	VITICULTURE	CONVENTIONNELLE	CHAMPAGNE_ARDENNE	9	27	3	6	3	0	0	0	0	0.333333333333333	1.66666666666667	0	0	0	0	1.33333333333333	0	3.33333333333333	0	0	0	0.333333333333333	0	2	0	0	0	0	0	0	1	48.043963	4.387783	1	VIGNE	NR	NR	NR	NR	NR	NR	0	SOL_NU	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	11	0	0	0	1	0	NR	1281	VALENTIN_BOEUF	10262	NEUVILLE_SUR_SEINE	10	AUBE	81	AOC_CHAMPAGNE	NR	1	0	0	0	0	1	0	0	1	0	1	0	0	0	400	NR	NR
+0000861_YLFNP_0003662	SIMORGES	2014	VITICULTURE	CONVENTIONNELLE	CHAMPAGNE_ARDENNE	5.33333333333333	32	6	7	6	0	0	0	0	0	1.66666666666667	0	1.33333333333333	0	0	0.333333333333333	0.333333333333333	1	0	0	0	0.333333333333333	0	0.333333333333333	0	0	0	0	0	0	1	48.043963	4.387783	1	VIGNE	NR	NR	NR	NR	NR	NR	1990	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	NR	NR	NR	NR	NR	NR	0	0	8	0	0	0	0	1	0	1281	VALENTIN_BOEUF	10262	NEUVILLE_SUR_SEINE	10	AUBE	81	AOC_CHAMPAGNE	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR
+0000861_YLFNP_0003662	SIMORGES	2015	VITICULTURE	CONVENTIONNELLE	CHAMPAGNE_ARDENNE	9	54	6.66666666666667	6	6	0	0	0	0	0	1	0	0.666666666666667	0	0	3.66666666666667	0	2.66666666666667	0	0	0	0	0	0	0	0	0	0.333333333333333	0	0.666666666666667	1	48.043963	4.387783	1	VIGNE	NR	NR	NR	NR	NR	NR	1990	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	NR	NR	NR	NR	NR	NR	0	0	8	0	0	0	0	1	0	1281	VALENTIN_BOEUF	10262	NEUVILLE_SUR_SEINE	10	AUBE	81	AOC_CHAMPAGNE	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR
+0000861_YLFNP_0003662	SIMORGES	2016	VITICULTURE	CONVENTIONNELLE	CHAMPAGNE_ARDENNE	7.75	62	7	6	8	0	0	0	0	0	0.5	1	0.75	0	0	1	0	0	0	0	0	0	0	3.5	0	0	0	1	0	0	1	48.043963	4.387783	1	VIGNE	NR	NR	NR	NR	NR	NR	1990	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	NR	NR	NR	NR	NR	NR	0	0	8	0	0	0	0	1	0	1281	VALENTIN_BOEUF	10262	NEUVILLE_SUR_SEINE	10	AUBE	81	AOC_CHAMPAGNE	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR
+0000961_SVT8E_0032212	DUFOUR___BANDE_ENHERBEE	2012	AUTRE_CULTURE_PERENNE	CONVENTIONNELLE	HAUTE_NORMANDIE	1.33333333333333	4	1.5	2	3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0.333333333333333	0	1	0	0	0	0	0	0	NR	49.710629	1.001451	1	AUTRE_CULTURE_PERENNE	NR	NR	NR	NR	NR	NR	2010	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	1301	EXPLOITATION_DUFOUR	76072	BELLEVILLE_EN_CAUX	76	SEINE_MARITIME	NR	NR	NR	0	0	1	0	0	0	0	0	1	0	0	0	0	0	300	NR	NR
+0000961_SVT8E_0032212	DUFOUR___BANDE_ENHERBEE	2013	AUTRE_CULTURE_PERENNE	CONVENTIONNELLE	HAUTE_NORMANDIE	4.25	17	2	4	4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1.75	2	0	0	0.25	0	0	0.25	NR	49.710629	1.001451	1	AUTRE_CULTURE_PERENNE	NR	NR	NR	NR	NR	NR	2010	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	1301	EXPLOITATION_DUFOUR	76072	BELLEVILLE_EN_CAUX	76	SEINE_MARITIME	NR	NR	NR	0	0	1	0	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0000981_1NR7R_0022897	NR	2012	NR	NR	BRETAGNE	0.285714285714286	2	2	2	7	0	0	0.142857142857143	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0.142857142857143	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	1321	PHILIPPE_LECOMTE	56127	MAURON	56	MORBIHAN	NR	NR	NR	0	0	0	1	0	1	0	0	1	0	0	0	0	0	250	NR	NR
+0000981_1NR7R_0022897	NR	2013	NR	NR	BRETAGNE	3.14285714285714	22	2.5	7	7	0	0	0.285714285714286	0	0.142857142857143	0	0	0	0	0	0	0	0	0	0.142857142857143	0.857142857142857	0.285714285714286	0	1.14285714285714	0	0	0.285714285714286	0	0	0	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	1321	PHILIPPE_LECOMTE	56127	MAURON	56	MORBIHAN	NR	NR	NR	0	0	0	1	0	1	0	0	1	0	0	0	0	0	200	NR	NR
+0001001_APLV0_0032212	DUFOUR___SAULE	2013	AUTRE_CULTURE_PERENNE	CONVENTIONNELLE	HAUTE_NORMANDIE	2	8	1.33333333333333	2	4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0.25	1.75	0	0	0	0	0	0	NR	49.709951	0.994563	1	NR	NR	NR	NR	NR	NR	NR	2011	ENHERBE	NR	NR	0	0	0	0	0	0	NR	NR	NR	NR	NR	NR	0	0	0	0	0	0	0	0	NR	1301	EXPLOITATION_DUFOUR	76072	BELLEVILLE_EN_CAUX	76	SEINE_MARITIME	NR	NR	NR	0	1	0	0	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0001081_K0M8I_0022897	PRAIRIE_BOCAGERE	2012	PRAIRIE	BIOLOGIQUE	BRETAGNE	12.1428571428571	85	2	6	7	0	0	0.285714285714286	0	0	0.571428571428571	0	0.142857142857143	0	0	0	0	0.142857142857143	0	0	8.71428571428571	0	0	0	2.28571428571429	0	0	0	0	0	1	48.049693	_2.253292	0	NR	NR	NR	NR	NR	NR	NR	NR	NR	1	NR	0	0	1	0	0	1	1	0	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	1401	SEBASTIEN_SALMON	56127	MAURON	56	MORBIHAN	NR	NR	NR	0	1	0	1	0	0	0	0	1	1	1	0	0	0	250	NR	NR
+0001081_K0M8I_0022897	PRAIRIE_BOCAGERE	2013	PRAIRIE	BIOLOGIQUE	BRETAGNE	6.14285714285714	43	2	6	7	0	0.142857142857143	0.285714285714286	0	0	0.285714285714286	0	0	0	0	0	0	0	0	0.142857142857143	4.71428571428571	0	0	0.428571428571429	0.142857142857143	0	0	0	0	0	1	48.049693	_2.253292	0	NR	NR	NR	NR	NR	NR	NR	NR	NR	1	NR	0	0	1	0	0	1	1	0	0	NR	NR	NR	0	0	0	0	0	0	0	0	NR	1401	SEBASTIEN_SALMON	56127	MAURON	56	MORBIHAN	NR	NR	NR	0	0	1	0	0	0	0	0	1	0	0	0	0	0	200	NR	NR
+0001201_V8E17_0001207	COURCELLES	2012	VITICULTURE	AUTRE	PICARDIE	11.25	45	2	4	4	0	0	0	0	0	0.5	0	0	0	0	0	0	0	0	0	0.5	1.5	0	8.75	0	0	0	0	0	0	1	49.065745	3.59084	0	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	1	3	8	0	0	0	1	0	NR	881	EARL_CHAMPAGNE_JAMES_KOHLER	2748	TRELOU_SUR_MARNE	2	AISNE	81	AOC_CHAMPAGNE	NR	0	0	1	1	0	0	0	0	0	0	0	1	0	0	400	NR	NR
+0001201_V8E17_0001207	COURCELLES	2013	VITICULTURE	AUTRE	PICARDIE	4	16	2.33333333333333	5	4	0	0.25	0	0	0	0	0	0	0	0	0	0	0	0	0	0.5	0.5	0.25	2.25	0	0	0.25	0	0	0	1	49.065745	3.59084	0	VIGNE	NR	NR	NR	NR	NR	NR	0	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	0	NR	0	NR	NR	NR	1	3	8	0	0	0	1	0	NR	881	EARL_CHAMPAGNE_JAMES_KOHLER	2748	TRELOU_SUR_MARNE	2	AISNE	81	AOC_CHAMPAGNE	NR	0	0	1	1	0	0	0	0	1	0	0	0	0	0	500	NR	NR
+0001201_V8E17_0001207	COURCELLES	2014	VITICULTURE	AUTRE	PICARDIE	4.2	42	3	4	10	0	0.2	0	0	0	0	0	0.2	0	0	0	0	0	0	0	0.2	0	1.2	2.4	0	0	0	0	0	0	0.25	49.065745	3.59084	1	VIGNE	NR	NR	NR	NR	NR	NR	1989	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	NR	NR	NR	NR	NR	NR	1	3	7	0	0	0	0	1	0	881	EARL_CHAMPAGNE_JAMES_KOHLER	2748	TRELOU_SUR_MARNE	2	AISNE	81	AOC_CHAMPAGNE	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR
+0001201_V8E17_0001207	COURCELLES	2015	VITICULTURE	AUTRE	PICARDIE	2.5	20	3	4	8	0	0	0	0	0	0	0	0.5	0	0	0	0	0	0	0.5	0.75	0	0	0.75	0	0	0	0	0	0	0.25	49.065745	3.59084	1	VIGNE	NR	NR	NR	NR	NR	NR	1989	ENHERBE_PARTIELLEMENT	NR	NR	0	0	0	0	0	0	NR	NR	NR	NR	NR	NR	1	3	6	0	0	0	0	1	0	881	EARL_CHAMPAGNE_JAMES_KOHLER	2748	TRELOU_SUR_MARNE	2	AISNE	81	AOC_CHAMPAGNE	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR	NR
--- a/butterfly_crossplot.R	Mon Aug 13 10:06:35 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,556 +0,0 @@
-##################################################################
-####   Script generique pour realiser les figures en croix  ######
-####       a partir des donnees brut                        ######
-##################################################################
-
-### Version V1.2 _ 2018-07-31
-
-library(ggplot2)
-library(RColorBrewer)
-
-args <- commandArgs(trailingOnly = TRUE)
-
-### importation code
-sourcefunctions<-args[1]
-source(sourcefunctions)
-
-## fonction d'importation des fichier des donnes
-### fonction d'importation, de concatenation des fichiers 
-### verification des nom de colonnes 
-### verification des doublon de ligne
-read.data <-  function(file=NULL,decimalSigne=".") {
-#    cat("1) IMPORTATION \n--------------\n")
-#    cat("<--",file,"\n")
-    data <- read.table(file,sep="\t",stringsAsFactors=FALSE,header=TRUE,dec=decimalSigne)
-    ## verification qu'il y a plusieur colonnes et essaye different separateur
-    if(ncol(data)==1) {
-        data <- read.table(file,sep=";",stringsAsFactors=FALSE,header=TRUE,dec=decimalSigne)
-        if(ncol(data)==1) {
-            data <- read.table(file,sep=",",stringsAsFactors=FALSE,header=TRUE,dec=decimalSigne)
-            if(ncol(data)==1) {
-                data <- read.table(file,sep=" ",stringsAsFactors=FALSE,header=TRUE,dec=decimalSigne)
-                if(ncol(data)==1) {
-                    stop("!!!! L'importation a echoue\n   les seperatateurs de colonne utilise ne sont pas parmi ([tabulation], ';' ',' [espace])\n   -> veuillez verifier votre fichier de donnees\n")
-                }
-            }
-        }
-    }
-    return(data)
-}
-
-
-
-
-
-filtre1niveau <- function(func,
-                          nom_fichier = filename, 
-                          dec=".",
-                          nom_fichierCouleur= color_filename,
-                          col_abscisse = "AB_MOYENNE",
-                          figure_abscisse = "Abondance",
-                          col_ordonnee = "DIVERSITE_MOYENNE",
-                          figure_ordonnee = "Diversite",
-                          nomGenerique="GLOBAL",
-                          vec_figure_titre = c("Les Papillons"),
-                          colourProtocole = TRUE,
-                          nomProtocole = "Papillons",
-                          vec_col_filtre = vec_col_filtre_usr,
-			  col_sousGroup = NULL,#
-                          val_filtre = NULL,#
-                          figure_nom_filtre = NULL,#
-                          bagplot = TRUE,
-                          bagProp=c(.05,.5,.95),
-                          seuilSegment=30,
-                          segmentSousSeuil=TRUE,
-                          forcageMajusculeFiltre=TRUE,
-                          forcageMajusculeSousGroupe=TRUE){
-
-    dCouleur <- read.data(file=nom_fichierCouleur)
-    d <- read.data(file=nom_fichier,decimalSigne=dec)
-    if(colourProtocole & !is.null(nomProtocole)) colourProtocole_p <- as.character(dCouleur[dCouleur[,2]==nomProtocole,3]) else colourProtocole_p <- NULL 
-
-    for(f in 1:length(vec_col_filtre)) {
-        if(length(vec_figure_titre)==1){
-            figure_titre_f <-  vec_figure_titre
-        }else{
-            figure_titre_f <- vec_figure_titre[f]
-        }
-        col_filtre_f <- vec_col_filtre[f]
-        #cat(col_sousGroup) #Just to check
-        if(func=="ggfiltre1niveau"){
-            #cat("ggfiltre1niveau")
-            ggfiltre1niveau(d,
-                        col_abscisse,
-                        figure_abscisse,
-                        col_ordonnee,
-                        figure_ordonnee,
-                        figure_titre = figure_titre_f,
-                        col_filtre = col_filtre_f,
-                        nomGenerique,
-                        val_filtre = NULL,
-                        figure_nom_filtre = NULL,
-                        tab_figure_couleur=  subset(dCouleur,Filtre==col_filtre_f),
-                        colourProtocole = colourProtocole_p,
-                        nomProtocole,
-                        bagplot,
-                        bagProp=c(.05,.5,.95),
-                        seuilSegment,
-                        segmentSousSeuil,
-                        forcageMajusculeFiltre)
-        }else if(func=="gglocal"){
-            #cat("gglocal")
-            gglocal(d,
-                    col_abscisse,
-                    figure_abscisse,
-                    col_ordonnee,
-                    figure_ordonnee,
-                    figure_titre = figure_titre_f,
-                    col_filtre = col_filtre_f,
-                    nomGenerique = nomGenerique,
-                    col_sousGroup = col_sousGroup,
-                    val_filtre = NULL,
-                    figure_nom_filtre = NULL,
-                    tab_figure_couleur= subset(dCouleur,Filtre==col_filtre_f),
-                    colourProtocole = colourProtocole_p,
-                    nomProtocole,
-                    couleurLocal="#f609c1",
-                    bagplot,
-                    bagProp,
-                    seuilSegment,
-                    segmentSousSeuil,
-                    forcageMajusculeFiltre,
-                    forcageMajusculeSousGroupe)
-        }else{
-            #cat("ggCompareLevel")
-            ggCompareLevel(d,
-                           col_abscisse,
-                           figure_abscisse,
-                           col_ordonnee,
-                           figure_ordonnee,
-                           figure_titre = figure_titre_f,
-                           col_filtre = col_filtre_f,
-                           nomGenerique = nomGenerique,
-                           val_filtre = NULL,
-                           figure_nom_filtre = NULL,
-                           tab_figure_couleur= subset(dCouleur,Filtre==col_filtre_f),
-                           colourProtocole = colourProtocole_p,
-                           nomProtocole, 
-                           bagplot,
-                           bagProp,
-                           seuilSegment,
-                           segmentSousSeuil,
-                           forcageMajusculeFiltre)
-        }
-    }    
-}
-
-ggfiltre1niveau <- function(d,
-                            col_abscisse = "AB_MOYENNE",
-                            figure_abscisse = "Abondance",
-                            col_ordonnee = "DIVERSITE_MOYENNE",
-                            figure_ordonnee = "Diversite",
-                            figure_titre = "Referentiel papillon",
-                            col_filtre = "nom_reseau",
-                            nomGenerique = "Global",
-                            val_filtre = NULL,
-                            figure_nom_filtre = NULL,
-                            tab_figure_couleur= NULL,
-                            colourProtocole = NULL,
-                            nomProtocole = NULL,
-                            bagplot = TRUE,
-                            bagProp=c(.05,.5,.95),
-                            seuilSegment=30,
-                            segmentSousSeuil=TRUE,
-                            forcageMajusculeFiltre=TRUE,
-                            result_dir="resultats/") {
-
-    d$groupe <- as.character(d[,col_filtre])
-    d$abscisse <- d[,col_abscisse]
-    d$ordonnee <- d[,col_ordonnee]
-    d$groupe <-gsub("/","_",d$groupe)
-    d$groupe <-gsub("!","",d$groupe)
-   
-    if(forcageMajusculeFiltre){
-        d$groupe <- toupper(d$groupe)}
-
-    d <- subset(d,!(is.na(groupe)) & !(is.na(abscisse)) & !(is.na(ordonnee)) & groupe != "")
-
-    if(is.null(val_filtre)){ 
-        lesModalites <- unique(d$groupe) 
-    }else{
-        lesModalites <- val_filtre
-    }
-
-#    repResult <- dir(result_dir)
-#    current_dir<-getwd()
-#    dir.create(file.path(current_dir,result_dir))
-#
-#    if(!(col_filtre %in% repResult)){
-#        dir.create(file.path(".",paste(result_dir,col_filtre,sep="")))}
-#
-#    nomRep1 <- paste(result_dir,col_filtre,"/",sep="")   
-    
-    d.autre <- d
-    d.autre$groupe <- nomGenerique
-
-    for(m in lesModalites) {
-        d.reseau <-  subset(d,groupe==m)
-        d.reseau$groupe <- m
-        ggTable <- rbind(d.autre,d.reseau)
-
-        seuilResum <- nrow(d.reseau) >= seuilSegment
-        
-        ggTableResum <- aggregate(cbind(ordonnee, abscisse) ~ groupe, data = ggTable,quantile, c(.25,.5,.75))
-        ggTableResum <- data.frame(ggTableResum[,1],ggTableResum[,2][,1:3],ggTableResum[,3][,1:3])
-        colnames(ggTableResum) <- c("groupe","ordonnee.inf","ordonnee.med","ordonnee.sup","abscisse.inf","abscisse.med","abscisse.sup")
-
-        if(ggTableResum$groupe[2]==nomGenerique){
-            ggTableResum <- ggTableResum[c(2,1),]}
-      
-        if(!(is.null(tab_figure_couleur))) {
-            if(m %in% tab_figure_couleur$Modalite) {
-                figure_couleur <- setNames(c(as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == nomGenerique]),
-                                           as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == m])),
-                                           c(nomGenerique,m))
-            }else{
-                figure_couleur <- setNames(c(as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == nomGenerique]),
-                                           as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == ""])),
-                                           c(nomGenerique,m))
-            }
-        }
-
-#        repResult <- dir(nomRep1)
-#        if(!(m %in% repResult)){
-#            dir.create(paste(nomRep1,m,sep=""))}
-#        nomRep <- paste(nomRep1,m,"/",sep="") 
-#        
-#        
-#        if(!is.null(nomProtocole)){
-#            repResult <- dir(nomRep)
-#            if(!(nomProtocole %in% repResult)){
-#                dir.create(paste(nomRep,nomProtocole,sep=""))}
-#            nomRep <- paste(nomRep,nomProtocole,"/",sep="")
-#        } 
-        
-     
-        gg <- ggplot(ggTable,aes(x=abscisse,y=ordonnee,colour=groupe,fill=groupe))
-        if(bagplot){
-            gg <- gg + stat_bag(data=d.autre,prop=bagProp[1],colour=NA,alpha=.7) + stat_bag(data=d.autre,prop=bagProp[2],colour=NA,alpha=.4) + stat_bag(data=d.autre,prop=bagProp[3],colour=NA,alpha=.2) }
-        else {
-            gg <- gg + geom_point(alpha=.2)  
-        } 
-        gg <- gg + geom_hline(data=subset(ggTableResum,groupe== nomGenerique),aes(yintercept = ordonnee.med,colour=groupe),size=.5,linetype="dashed") + geom_vline(data=subset(ggTableResum,groupe==nomGenerique),aes(xintercept = abscisse.med,colour=groupe),size=.5,linetype="dashed")
-        if(segmentSousSeuil) {
-            gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.8,size=2.5)
-            gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.8,size=2.5)
-            if(!(seuilResum)) {
-                gg <- gg + geom_segment(data=subset(ggTableResum,groupe!=nomGenerique),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.5,size = 1.5,colour="white")
-                gg <- gg + geom_segment(data=subset(ggTableResum,groupe!=nomGenerique),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.5,size = 1.5,colour="white")
-            }
-        } else {
-            gg <- gg + geom_segment(data=subset(ggTableResum,groupe==nomGenerique),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.8,size = 2.5)
-            gg <- gg + geom_segment(data=subset(ggTableResum,groupe==nomGenerique),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.8,size = 2.5)
-        }
-
-        gg <- gg + geom_point(data=d.reseau,size=2)
-        gg <- gg + labs(list(title=figure_titre,x=figure_abscisse,y=figure_ordonnee))
-
-        if(!is.null(colourProtocole)){
-            gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA), axis.ticks = element_line(colour = colourProtocole, size = 1), axis.ticks.length = unit(0.3, "cm"),plot.title = element_text(colour = colourProtocole))
-        }else{
-            gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA))
-        }
-
-        if(!(is.null(tab_figure_couleur))){
-            gg <- gg + scale_colour_manual(values = figure_couleur,name = "") + scale_fill_manual(values = figure_couleur,name = "",guide=FALSE)}
-        
-        ggfile <- paste(nomRep,nomProtocole,"_",m,".png",sep="")
-        #cat("Check",ggfile,":")
-        ggsave(ggfile,gg)
-        #cat("\n")
-        flush.console()
-    }
-}
-
-
-##############################################################
-gglocal <- function(d,
-                    col_abscisse = "AB_MOYENNE",
-                    figure_abscisse = "Abondance",
-                    col_ordonnee = "DIVERSITE_MOYENNE",
-                    figure_ordonnee = "Diversite",
-                    figure_titre = "Graphe referentiel",
-                    col_filtre = "NOM_RESEAU",
-                    nomGenerique = "GLOBAL",
-                    col_sousGroup = "PARCELLEID",
-                    val_filtre = NULL,
-                    figure_nom_filtre = NULL,
-                    tab_figure_couleur= NULL,
-                    colourProtocole = NULL,
-                    nomProtocole = NULL,
-                    couleurLocal="#f609c1",
-                    bagplot = TRUE,
-                    bagProp=c(.05,.5,.95),
-                    seuilSegment=30,
-                    segmentSousSeuil=TRUE,
-                    forcageMajusculeFiltre=TRUE,
-                    forcageMajusculeSousGroupe=TRUE) {
-    
-    d$groupe <- d[,col_filtre]
-    d$abscisse <- d[,col_abscisse]
-    d$ordonnee <- d[,col_ordonnee]
-    d$sousGroup <- d[,col_sousGroup]
-    d$groupe <-gsub("/","_",d$groupe)
-    d$groupe <-gsub("!","",d$groupe)
-    d$sousGroup <-gsub("/","_",d$sousGroup)
-    d$sousGroup <-gsub("!","",d$sousGroup)
-    if(forcageMajusculeFiltre){
-        d$groupe <- toupper(d$groupe)}
-    if(forcageMajusculeSousGroupe){
-        d$sousGroup <- toupper(d$sousGroup)}
-    d <- subset(d,!(is.na(groupe)) & !(is.na(sousGroup)) & !(is.na(abscisse)) & !(is.na(ordonnee)) & groupe != "")
-    vecSousGroup <- as.character(unique(d$sousGroup))
-    if(is.null(val_filtre)){
-        lesModalites <- unique(d$groupe)}
-    else{ lesModalites <- val_filtre}
-    repResult <- dir("resultats/")
-#    if(!(col_filtre %in% repResult)){
-#        dir.create(paste("resultats/",col_filtre,sep=""))}
-#    nomRep1 <- paste("resultats/",col_filtre,"/",sep="")     
-    d.autre <- d
-    d.autre$groupe <- nomGenerique
-    for(m in lesModalites) {
-        d.reseau <-  subset(d,groupe==m)
-        d.reseau$groupe <- m
-        ggTable <- rbind(d.autre,d.reseau)
-        seuilResum <- nrow(d.reseau) >= seuilSegment 
-        ggTableResum <- aggregate(cbind(ordonnee, abscisse) ~ groupe, data = ggTable,quantile, c(.25,.5,.75))
-        ggTableResum <- data.frame(ggTableResum[,1],ggTableResum[,2][,1:3],ggTableResum[,3][,1:3])
-        colnames(ggTableResum) <- c("groupe","ordonnee.inf","ordonnee.med","ordonnee.sup","abscisse.inf","abscisse.med","abscisse.sup")
-        if(ggTableResum$groupe[2]==nomGenerique){
-            ggTableResum <- ggTableResum[c(2,1),]}             
-        if(!(is.null(tab_figure_couleur))) {
-            if(m %in% tab_figure_couleur$Modalite) {
-                figure_couleur <- setNames(c(as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == nomGenerique]),
-                                             as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == m]),couleurLocal),
-                                           c(nomGenerique,m,""))
-            } else {
-                figure_couleur <- setNames(c(as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == nomGenerique]),
-                                             as.character(tab_figure_couleur$couleur[tab_figure_couleur$Modalite == ""]),couleurLocal),
-                                           c(nomGenerique,m,""))
-            }
-        }
-#        repResult <- dir(nomRep1)
-#        if(!(m %in% repResult)){
-#            dir.create(paste(nomRep1,m,sep=""))}
-#        nomRep <- paste(nomRep1,m,"/",sep="")      
-#        if(!is.null(nomProtocole)) {
-#            repResult <- dir(nomRep)
-#            if(!(nomProtocole %in% repResult)){
-#                dir.create(paste(nomRep,nomProtocole,sep=""))}
-#            nomRep <- paste(nomRep,nomProtocole,"/",sep="")
-#        }         
-        d.reseau <- subset(d.reseau, !(is.na(sousGroup)))        
-        figure_size<-  setNames(c(1,3,2.5), c(nomGenerique,m,""))
-        figure_shape<-  setNames(c(16,16,20), c(nomGenerique,m,""))        
-        vecSousGroup <- as.character(unique(d.reseau$sousGroup))        
-        for(p in vecSousGroup) {            
-            dp <-  subset(d.reseau,sousGroup == p)
-            dp$groupe <- dp$sousGroup
-            ggTableSous <- rbind(d.reseau,dp)
-            ggTableSous <- rbind(d.autre,d.reseau,dp)
-            names(figure_couleur)[3] <- p
-            names(figure_shape)[3] <- p
-            names(figure_size)[3] <- p                        
-            gg <- ggplot(ggTableSous,aes(x=abscisse,y=ordonnee,colour=groupe,fill=groupe,shape=groupe,size=groupe))
-            if(bagplot){
-                gg <- gg + stat_bag(data=d.autre,prop=bagProp[1],colour=NA,alpha=.7) + stat_bag(data=d.autre,prop=bagProp[2],colour=NA,alpha=.4) + stat_bag(data=d.autre,prop=bagProp[3],colour=NA,alpha=.2)
-            }else{
-                gg <- gg + geom_point(alpha=.2)}
-            gg <- gg + geom_hline(data=subset(ggTableResum,groupe == nomGenerique),aes(yintercept = ordonnee.med,colour=groupe),size=.5,linetype="dashed")
-            gg <- gg + geom_vline(data=subset(ggTableResum,groupe == nomGenerique),aes(xintercept = abscisse.med,colour=groupe),size=.5,linetype="dashed")
-            if(segmentSousSeuil) {
-                gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.8,size=2.5)
-                gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.8,size=2.5)
-                if(!(seuilResum)) {
-                    gg <- gg + geom_segment(data=subset(ggTableResum,groupe!=nomGenerique),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.5,size = 1.5,colour="white")
-                    gg <- gg + geom_segment(data=subset(ggTableResum,groupe!=nomGenerique),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.5,size = 1.5,colour="white")
-                }
-            } else {
-                gg <- gg + geom_segment(data=subset(ggTableResum,groupe==nomGenerique),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.8,size = 2.5)
-                gg <- gg + geom_segment(data=subset(ggTableResum,groupe==nomGenerique),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.8,size = 2.5)
-            }
-            gg <- gg + geom_point(data=subset(ggTableSous,groupe != nomGenerique))
-            if(!(is.null(tab_figure_couleur))){
-                gg <- gg + scale_colour_manual(values = figure_couleur,name = "") + scale_fill_manual(values = figure_couleur,name = "",guide=FALSE)}
-            gg <- gg + scale_shape_manual(values = figure_shape,name = "",guide=FALSE) + scale_size_manual(values = figure_size,guide=FALSE)
-            gg <- gg + labs(list(title=figure_titre,x=figure_abscisse,y=figure_ordonnee))
-            if(!is.null(colourProtocole)){
-                gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA), axis.ticks = element_line(colour = colourProtocole, size = 1), axis.ticks.length = unit(0.3, "cm"),plot.title = element_text(colour = colourProtocole)) }
-            else{
-                gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA))}                       
-            ggfile <- paste(nomRep,nomProtocole,"_",m,"-",p,".png",sep="")
-            #cat("Check",ggfile,":")
-            ggsave(ggfile,gg)
-            #cat("\n")
-            flush.console()
-        }
-    }
-}
-
-
-
-#####################################################
-ggCompareLevel <- function(d,
-                           col_abscisse = "abond_moyenne",
-                           figure_abscisse = "Abondance",
-                           col_ordonnee = "diversite_moyenne",
-                           figure_ordonnee = "Diversite",
-                           figure_titre = "Rhooo il dechire ce graphe",
-                           col_filtre = "nom_reseau",
-                           nomGenerique = "Global",
-                           val_filtre = NULL,
-                           figure_nom_filtre = NULL,
-                           tab_figure_couleur= NULL,
-                           colourProtocole = NULL,
-                           nomProtocole = NULL,
-                           bagplot = TRUE,
-                           bagProp=c(.05,.5,.95),
-                           seuilSegment=30,
-                           segmentSousSeuil=FALSE,
-                           forcageMajusculeFiltre=TRUE){
-
-    d$groupe <- d[,col_filtre]
-    d$abscisse <- d[,col_abscisse]
-    d$ordonnee <- d[,col_ordonnee]
-    d$groupe <-gsub("/","_",d$groupe)
-    d$groupe <-gsub("!","",d$groupe)    
-    
-    if(forcageMajusculeFiltre){
-        d$groupe <- toupper(d$groupe)}
-    d <- subset(d,!(is.na(groupe)) & !(is.na(abscisse)) & !(is.na(ordonnee)) & groupe != "")
-    if(is.null(val_filtre)){
-        lesModalites <- unique(d$groupe) 
-    }else{
-        lesModalites <- val_filtre
-    }
-#    repResult <- dir("resultats/")
-#    if(!(col_filtre %in% repResult)){
-#        dir.create(paste("resultats/",col_filtre,sep=""))
-#    }
-#    if(!is.null(nomProtocole)){
-#        repResult <- dir(paste("resultats/",col_filtre,sep=""))
-#        if(!(nomProtocole %in% repResult)){
-#            dir.create(paste("resultats/",col_filtre,"/",nomProtocole,sep=""))}
-#        nomRep <- paste("resultats/",col_filtre,"/",nomProtocole,"/",sep="")
-#    }else{
-#        nomRep <- paste("resultats/",col_filtre,"/",sep="")   
-#    }
-    d.autre <- d
-    d.autre$groupe <- nomGenerique
-    d.reseau <-  subset(d,groupe %in% lesModalites)
-    ggTable <- rbind(d.autre,d.reseau)
-    ggTableResum <- aggregate(cbind(ordonnee, abscisse) ~ groupe, data = ggTable,quantile, c(.25,.5,.75))
-    ggTableResum <- data.frame(ggTableResum[,1],ggTableResum[,2][,1:3],ggTableResum[,3][,1:3])
-    colnames(ggTableResum) <- c("groupe","ordonnee.inf","ordonnee.med","ordonnee.sup","abscisse.inf","abscisse.med","abscisse.sup")
-    ggSeuil <- aggregate(ordonnee ~ groupe, data=ggTable,length)
-    ggSeuil$seuilResum <- ggSeuil$ordonnee >= seuilSegment
-    colnames(ggSeuil)[ncol(ggSeuil)] <- "seuil"
-    ggTableResum <- merge(ggTableResum,ggSeuil,by="groupe")
-    t_figure_couleur <- subset(tab_figure_couleur,Modalite %in% c(nomGenerique,lesModalites))
-    modaliteSansCouleur <- lesModalites[(!(lesModalites %in% t_figure_couleur$Modalite))]
-    nbNxCol <- length(modaliteSansCouleur)
-    mypalette<-brewer.pal(nbNxCol,"YlGnBu")
-    figure_couleur <- setNames(c(as.character(t_figure_couleur$couleur),mypalette),c(as.character(t_figure_couleur$Modalite),modaliteSansCouleur))
-    tab_coul <- data.frame(groupe=names(figure_couleur),couleur=figure_couleur)
-    tab_coul <- merge(tab_coul,ggTableResum,"groupe")
-    tab_coul$nom <- paste(tab_coul$groupe," (",tab_coul$ordonnee,")",sep="")
-    figure_couleur <- setNames(as.character(tab_coul$couleur),tab_coul$groupe)
-    figure_couleur_nom<- tab_coul$nom
-    gg <- ggplot(ggTable,aes(x=abscisse,y=ordonnee,colour=groupe,fill=groupe))
-    if(bagplot){
-        gg <- gg + stat_bag(data=d.autre,prop=bagProp[1],colour=NA,alpha=.7) + stat_bag(data=d.autre,prop=bagProp[2],colour=NA,alpha=.4) + stat_bag(data=d.autre,prop=bagProp[3],colour=NA,alpha=.2) 
-    }else{
-        gg <- gg + geom_point(alpha=.2)
-    }
-    gg <- gg + geom_hline(data=subset(ggTableResum,groupe=="Autre"),aes(yintercept = ordonnee.med,colour=groupe),size=.5,linetype="dashed") + geom_vline(data=subset(ggTableResum,groupe=="Autre"),aes(xintercept = abscisse.med,colour=groupe),size=.5,linetype="dashed") 
-    gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.7,size = 2.5)
-    gg <- gg + geom_segment(data=ggTableResum,aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.7,size = 2.5)
-    if(any(ggTableResum$seuil)){
-        gg <- gg + geom_segment(data=subset(ggTableResum,!(seuil)),aes(x = abscisse.med, y = ordonnee.inf, xend = abscisse.med, yend = ordonnee.sup),alpha=.5,size = 1.5,colour="white")
-        gg <- gg + geom_segment(data=subset(ggTableResum,!(seuil)),aes(x = abscisse.inf, y = ordonnee.med, xend = abscisse.sup, yend = ordonnee.med),alpha=.5,size = 1.5,colour="white")
-    }
-                    
-    #browser()                    #  gg <- gg + geom_point(data=d.reseau,size=2)
-    gg <- gg + scale_colour_manual(values = figure_couleur,name = "",labels =  figure_couleur_nom) + scale_fill_manual(values = figure_couleur,name = "",guide=FALSE)
-    gg <- gg + labs(list(title=figure_titre,x=figure_abscisse,y=figure_ordonnee))
-    if(!is.null(colourProtocole)){
-        gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA), axis.ticks = element_line(colour = colourProtocole, size = 1), axis.ticks.length = unit(0.3, "cm"),plot.title = element_text(colour = colourProtocole)) 
-    }else{
-        gg <- gg + theme(legend.justification=c(1,0), legend.position=c(1,0),legend.text = element_text(size = 7),legend.background = element_rect(fill=NA))
-    }
-    ggfile <- paste(nomRep,nomProtocole,"_",col_filtre,"_","comparaison.png",sep="")
-    #cat("Check",ggfile,":")    
-    ggsave(ggfile,gg)
-    #cat("\n")
-flush.console()
-}
-
-
-#########################################
-
-#Lancement des fonctions :
-
-  #Variables a definir :
-
-#filename="BDD_PAPILLONS_2016.txt"
-#color_filename<-"code_couleurs.csv"
-
-  #func
-#func="ggCompareLevel"
-#func="ggfiltre1niveau"
-#func="gglocal"
-
-  #colSousGroupe
-#col_sousGroup_usr = NULL    #ggfiltre #ggCompareLevel
-#col_sousGroup_usr = "PARCELLENOM"   #gglocal
-
-  #vec_col_filtre_usr
-#vec_col_filtre_usr = c("CONDUITEPARCELLE")  #ggCompareLevel
-#vec_col_filtre_usr = c("REGION")   #ggfiltre
-#vec_col_filtre_usr = c("NOM_RESEAU") #gglocal
-
-
-
-#Exe fonction :
-
-#filtre1niveau(func=func,nom_fichier=filename,nom_fichierCouleur=color_filename,col_sousGroup=NULL)   #ggfiltre ou ggCompareLevel, depend de func et de vec_col_filtre_usr
-#filtre1niveau(func=func,nom_fichier=filename,nom_fichierCouleur=color_filename,col_sousGroup = col_sousGroup_usr,vec_col_filtre=vec_col_filtre_usr) ## ==local
-
-########################################################
-
-filename=args[2]
-color_filename=args[3]
-func=args[4]
-
-if(func=="ggCompareLevel"){
-col_sousGroup_usr=NULL
-vec_col_filtre_usr=c("CONDUITEPARCELLE")
-}else if(func=="ggfiltre1niveau"){
-col_sousGroup_usr=NULL
-vec_col_filtre_usr=c("REGION")
-}else if(func=="gglocal"){
-col_sousGroup_usr="PARCELLENOM"
-vec_col_filtre_usr=c("NOM_RESEAU")
-}else{
-#sortie erreur
-write("Error, unknown function. Exit(1).", stderr())
-q('no')
-}
-
-#create result dir
-nomRep="resultats/"
-dir.create(file.path(".", nomRep), showWarnings = FALSE)
-
-
-filtre1niveau(func=func,nom_fichier=filename,nom_fichierCouleur=color_filename,col_sousGroup=col_sousGroup_usr,vec_col_filtre=vec_col_filtre_usr)
--- a/butterfly_crossplot.xml	Mon Aug 13 10:06:35 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-<tool id="Butterfly_crossplot" name="Butterfly data analysis" version="0.1.0">
-    <requirements>
-        <requirement type="package" version="2.2.1">r-ggplot2</requirement>
-        <requirement type="package" version="1.1_2">r-rcolorbrewer</requirement>
-        <requirement type="package" version="0.9.10">xorg-libxrender</requirement>
-        <requirement type="package" version="0.9.10">xorg-libsm</requirement>
-        <requirement type="package" version="1.5">libconfig</requirement>
-        <requirement type="package" version="1.5_9">r-cairo</requirement>
-    </requirements>
-    <command detect_errors="exit_code"><![CDATA[
-        Rscript '$__tool_directory__/butterfly_crossplot.R' '$__tool_directory__/stat_bag.r' '$butterfly_db' '$__tool_directory__/code_couleurs.csv' '$function'
-        ##'$__tool_directory__/BDD_PAPILLONS_2016.txt'
-    ]]></command>
-    <inputs>
-        <param name="function" type="select" label="Chose your analyse">
-            <option value="ggCompareLevel">Compare production methods</option>
-            <option value="ggfiltre1niveau">Compare regions</option>
-            <option value="gglocal">Compare local networks</option>
-        </param>
-        <param name="butterfly_db" type="data" format="csv,tabular" label="Butterfly datafile"/>
-    </inputs>
-    <outputs>
-        <data format="png" name="ggCompareLevel" label="Compare production methods" from_work_dir="resultats/Papillons_CONDUITEPARCELLE_comparaison.png">
-            <filter>function=='ggCompareLevel'</filter>
-        </data>
-        <collection type="list" name="output_ggfiltre" label="Compare regions">
-            <discover_datasets pattern="__designation_and_ext__" visible="false" format="png" directory="resultats"/>
-                <filter>function=='ggfiltre1niveau'</filter>
-        </collection>
-        <collection type="list" name="output_gglocal" label="Compare local network">
-            <discover_datasets pattern="__designation_and_ext__" visible="false" format="png" directory="resultats"/>
-                <filter>function=='gglocal'</filter>
-        </collection>
-   </outputs>
-    <help><![CDATA[
-        TODO: Fill in help.
-    ]]></help>
-</tool>
--- a/code_couleurs.csv	Mon Aug 13 10:06:35 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-Filtre;Modalite;couleur
-TYPECULTURE;ARBORICULTURE;"#006600"
-TYPECULTURE;AUTRE_CULTURE_PERENNE;"#FF5050"
-TYPECULTURE;GRANDE_CULTURE;"#FFC000"
-TYPECULTURE;MARAICHAGE;"#FF6600"
-TYPECULTURE;PRAIRIE;"#97B314"
-TYPECULTURE;VITICULTURE;"#660066"
-NOM_RESEAU;;"#31849B"
-Protocole;Abeilles;"#EE7F00"
-Protocole;Invertebres;"#97B314"
-Protocole;Papillons;"#009EE0"
-Protocole;Vers de terre;"#666666"
-TYPECULTURE;GLOBAL;"#9f0d0d"
-NOM_RESEAU;GLOBAL;"#9f0d0d"
-REGIONNAME;;"#31849B"
-REGIONNAME;GLOBAL;"#9f0d0d"
-ANNEE;;"#31849B"
-ANNEE;GLOBAL;"#9f0d0d"
-REGION;GLOBAL;"#9f0d0d"
-REGION;;"#666666"
-CONDUITEPARCELLE;;"#31849B"
-CONDUITEPARCELLE;GLOBAL;"#9f0d0d"
-TRAVAILSOL;;"#31849B"
-TRAVAILSOL;GLOBAL;"#9f0d0d"
\ No newline at end of file
--- a/stat_bag.r	Mon Aug 13 10:06:35 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-library(ggplot2)
-StatBag <- ggproto("Statbag", Stat,
-                   compute_group = function(data, scales, prop = 0.5) {
-
-                     #################################
-                     #################################
-                     # originally from aplpack package, plotting functions removed
-                     plothulls_ <- function(x, y, fraction, n.hull = 1,
-                                            col.hull, lty.hull, lwd.hull, density=0, ...){
-                       # function for data peeling:
-                       # x,y : data
-                       # fraction.in.inner.hull : max percentage of points within the hull to be drawn
-                       # n.hull : number of hulls to be plotted (if there is no fractiion argument)
-                       # col.hull, lty.hull, lwd.hull : style of hull line
-                       # plotting bits have been removed, BM 160321
-                       # pw 130524
-                       if(ncol(x) == 2){ y <- x[,2]; x <- x[,1] }
-                       n <- length(x)
-                       if(!missing(fraction)) { # find special hull
-                         n.hull <- 1
-                         if(missing(col.hull)) col.hull <- 1
-                         if(missing(lty.hull)) lty.hull <- 1
-                         if(missing(lwd.hull)) lwd.hull <- 1
-                         x.old <- x; y.old <- y
-                         idx <- chull(x,y); x.hull <- x[idx]; y.hull <- y[idx]
-                         for( i in 1:(length(x)/3)){
-                           x <- x[-idx]; y <- y[-idx]
-                           if( (length(x)/n) < fraction ){
-                             return(cbind(x.hull,y.hull))
-                           }
-                           idx <- chull(x,y); x.hull <- x[idx]; y.hull <- y[idx];
-                         }
-                       }
-                       if(missing(col.hull)) col.hull <- 1:n.hull
-                       if(length(col.hull)) col.hull <- rep(col.hull,n.hull)
-                       if(missing(lty.hull)) lty.hull <- 1:n.hull
-                       if(length(lty.hull)) lty.hull <- rep(lty.hull,n.hull)
-                       if(missing(lwd.hull)) lwd.hull <- 1
-                       if(length(lwd.hull)) lwd.hull <- rep(lwd.hull,n.hull)
-                       result <- NULL
-                       for( i in 1:n.hull){
-                         idx <- chull(x,y); x.hull <- x[idx]; y.hull <- y[idx]
-                         result <- c(result, list( cbind(x.hull,y.hull) ))
-                         x <- x[-idx]; y <- y[-idx]
-                         if(0 == length(x)) return(result)
-                       }
-                       result
-                     } # end of definition of plothulls
-                     #################################
-
-
-                     # prepare data to go into function below
-                     the_matrix <- matrix(data = c(data$x, data$y), ncol = 2)
-
-                     # get data out of function as df with names
-                     setNames(data.frame(plothulls_(the_matrix, fraction = prop)), nm = c("x", "y"))
-                     # how can we get the hull and loop vertices passed on also?
-                   },
-
-                   required_aes = c("x", "y")
-)
-
-#' @inheritParams ggplot2::stat_identity
-#' @param prop Proportion of all the points to be included in the bag (default is 0.5)
-stat_bag <- function(mapping = NULL, data = NULL, geom = "polygon",
-                     position = "identity", na.rm = FALSE, show.legend = NA, 
-                     inherit.aes = TRUE, prop = 0.5, alpha = 0.3, ...) {
-  layer(
-    stat = StatBag, data = data, mapping = mapping, geom = geom, 
-    position = position, show.legend = show.legend, inherit.aes = inherit.aes,
-    params = list(na.rm = na.rm, prop = prop, alpha = alpha, ...)
-  )
-}
-
-
-geom_bag <- function(mapping = NULL, data = NULL,
-                     stat = "identity", position = "identity",
-                     prop = 0.5, 
-                     alpha = 0.3,
-                     ...,
-                     na.rm = FALSE,
-                     show.legend = NA,
-                     inherit.aes = TRUE) {
-  layer(
-    data = data,
-    mapping = mapping,
-    stat = StatBag,
-    geom = GeomBag,
-    position = position,
-    show.legend = show.legend,
-    inherit.aes = inherit.aes,
-    params = list(
-      na.rm = na.rm,
-      alpha = alpha,
-      prop = prop,
-      ...
-    )
-  )
-}
-
-#' @rdname ggplot2-ggproto
-#' @format NULL
-#' @usage NULL
-#' @export
-GeomBag <- ggproto("GeomBag", Geom,
-                   draw_group = function(data, panel_scales, coord) {
-                     n <- nrow(data)
-                     if (n == 1) return(zeroGrob())
-
-                     munched <- coord_munch(coord, data, panel_scales)
-                     # Sort by group to make sure that colors, fill, etc. come in same order
-                     munched <- munched[order(munched$group), ]
-
-                     # For gpar(), there is one entry per polygon (not one entry per point).
-                     # We'll pull the first value from each group, and assume all these values
-                     # are the same within each group.
-                     first_idx <- !duplicated(munched$group)
-                     first_rows <- munched[first_idx, ]
-
-                     ggplot2:::ggname("geom_bag",
-                                      grid:::polygonGrob(munched$x, munched$y, default.units = "native",
-                                                         id = munched$group,
-                                                         gp = grid::gpar(
-                                                           col = first_rows$colour,
-                                                           fill = alpha(first_rows$fill, first_rows$alpha),
-                                                           lwd = first_rows$size * .pt,
-                                                           lty = first_rows$linetype
-                                                         )
-                                      )
-                     )
-
-
-                   },
-
-                   default_aes = aes(colour = "NA", fill = "grey20", size = 0.5, linetype = 1,
-                                     alpha = NA, prop = 0.5),
-
-                   handle_na = function(data, params) {
-                     data
-                   },
-
-                   required_aes = c("x", "y"),
-
-                   draw_key = draw_key_polygon
-)