Dans ce document, on tente d’évaluer l’empreinte carbone du LBBE sur l’année 2018. Nous évaluons l’empreinte liée aux déplacements professionnels, l’empreinte liée aux calculs sur le cluster, l’empreinte liée aux ordinateurs personnels, l’empreinte liée à la consommation d’électricité dans le bâtiment, et l’empreinte liée aux achats de matériel pour la biologie expérimentale.
Nous avons choisi d’ignorer l’empreinte des transports pendulaires entre le lieu d’habitation et le lieu de travail, ainsi que l’empreinte de l’alimentation consommée au travail.
Une table des matières est disponible sur le côté gauche pour faciliter la navigation dans le document.
On dispose des données de mission pour 2018, obtenus à partir de la base de données interne du laboratoire. Nous n’avons pas réussi à exploiter les bases de données du CNRS et de l’université.
d<- read.csv("data_BSpataro_2020.csv")
Résumé du contenu de la base de données :
summary(d)
## objet_mission
## captures d'insectes : 8
## [Mission Invité]-- : 5
## captures de chevreuils : 5
## Suivi du succès reproducteur des chevrettes de Chizé: 5
## [Mission Invité]--Comité de pilotage : 4
## Échantillonnage d'insectes : 4
## (Other) :598
## pays ville date_depart
## france :544 Montpellier : 58 2018-08-18: 12
## Allemagne: 12 Paris : 51 2018-10-02: 12
## Italie : 9 Lyon : 32 2018-12-17: 11
## Suisse : 6 Villeurbanne : 27 2018-02-07: 9
## Brésil : 5 Grenoble : 14 2018-06-25: 9
## Japon : 5 Départements Isère / Savoie: 12 2018-12-13: 9
## (Other) : 48 (Other) :435 (Other) :567
## date_retour train avion vehicule_perso vehicule_labo
## 2018-08-23: 14 non:332 non:510 non:514 non:545
## 2018-10-03: 11 oui:297 oui:119 oui:115 oui: 84
## 2018-12-19: 10
## 2018-02-09: 9
## 2018-06-21: 9
## 2018-06-15: 8
## (Other) :568
## choix_credits
## sans_frais :171
## sur_credits:458
##
##
##
##
##
## type_credits
## :171
## |contrat|:CNRS - AGEX : 47
## |contrat|:CNRS - Mov-It : 18
## |equipe|Equipe Génétique et Evolution des interactions Hôtes-Parasites: 18
## |equipe|Equipe Bioinformatique, Phylogénie et Génomique Evolutive : 17
## |equipe|Equipe Evolution, Adaptation et Comportement : 14
## (Other) :344
## lieu_depart lieu_retour vehicule
## Lyon : 39 Paris Gare de Lyon : 29 non:384
## Chalamont : 34 Montpellier : 22 oui:245
## Lyon Part-Dieu : 31 Trois Fontaines : 19
## La Doua - Villeurbanne: 26 Paris : 17
## Saint-Etienne (42) : 21 Département Isère / Savoie: 12
## Lyon Part Dieu : 19 Lyon Part-Dieu : 11
## (Other) :459 (Other) :519
## place_vehicule heure_depart heure_retour
## :384 08:00 :152 18:00 : 92
## conducteur:194 07:00 : 75 20:00 : 61
## passager : 51 06:00 : 72 16:00 : 58
## 09:00 : 41 17:00 : 50
## 10:00 : 33 19:00 : 43
## 12:00 : 28 12:00 : 29
## (Other):228 (Other):296
## intitule_statut
## Directeur de recherche :151
## Chargé de recherche : 98
## Technicien : 90
## doctorant : 85
## Maître de conférence universitaire : 75
## Professeur des universités : 51
## (Other) : 79
## id
## Min. : 129
## 1st Qu.: 194
## Median :1447
## Mean :1348
## 3rd Qu.:2173
## Max. :2443
##
library(airportr)
# Construction d'une base de données limitée aux voyages en avion
d_avion = d[which(d$avion=="oui"),]
# d_avion$lieu_depart
# d_avion$lieu_retour
Inspirons nous de “https://sheilasaia.rbind.io/post/2019-04-19-carbon-cost-calcs/” pour calculer l’empreinte carbone des vols.
Cherchons l’aéroport de Lyon :
lyon_iata <- airport_lookup(input = "Lyon Saint-Exupéry Airport", input_type = "name", output_type = "IATA")
Il va falloir transformer les noms de la base de données en symboles IATA pour tous les points de départ et tous les points d’arrivée !
d_avion$iata_depart = rep("NA", length(d_avion$lieu_depart))
d_avion$iata_retour = rep("NA", length(d_avion$lieu_depart))
On remplit toutes les lignes où Lyon semble être le bon aéroport (cas discutables : UVBL1, Saint-Etienne, Domicile).
#depart_lyon_id = c(1,4,5,6,8,9,10,11,12,13,16,18,19,20,21,22,23,24,26,27,31,32,38,39,40,41,42,45,46,47,52,53,54,56,58,59,60,61,64,65,66,67,68,69,70,72,74,75,77,78,79,85,86,87,89,93,94,95,96,97,98,99,102,104,105,106,107,109,114,115,116,117,118,119)
#d_avion$iata_depart[depart_lyon_id] = lyon_iata
d_avion$iata_depart[grep("Lyon", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[grep("UVBL1", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[grep("LBBE", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[grep("MEYZIEU", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[grep("Villeurbanne", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[grep("exupéry", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[grep("Saint-Etienne", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[grep("ecully", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[grep("doua", d_avion$lieu_depart, ignore.case=TRUE)]=lyon_iata
d_avion$iata_depart[which(d_avion$lieu_depart=="Domicile")]=lyon_iata
#
# d_avion$iata_depart[which(d_avion$lieu_depart=="Lyon ")]=lyon_iata
# d_avion$iata_depart[which(d_avion$lieu_depart=="Lyon")]=lyon_iata
# d_avion$iata_depart[which(d_avion$lieu_depart=="Lyon Saint Exupéry")]=lyon_iata
# d_avion$iata_depart[which(d_avion$lieu_depart=="Lyon Saint-Exupéry ")]=lyon_iata
#d_avion$lieu_depart[which(d_avion$iata_depart=="NA")]
Maintenant, on remplit les blancs du départ…
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport international Pierre-Elliott-Trudeau de Montréal ")]=airport_lookup(input = "Montreal / Pierre Elliott Trudeau International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Los Angeles")]=airport_lookup(input = "Los Angeles International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport Seattle")]=airport_lookup(input = "Seattle Tacoma International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Domicile (Durham, Royaume-Uni)")]="NCL" #airport_lookup(input = "Newcastle Airport", input_type = "name", output_type = "IATA")$IATA[1] # The first one is in the UK
d_avion$iata_depart[which(d_avion$lieu_depart=="Munich (aéroport)")]=airport_lookup(input = "Munich International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="london heathrow")]=airport_lookup(input = "London Heathrow Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Hartford CT (BDL) (USA)")]=airport_lookup(input = "Bradley International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Toulouse TLS")]=airport_lookup(input = "Toulouse-Blagnac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Bordeaux Merignac")]=airport_lookup(input = "Bordeaux-Mérignac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Blagnac (toulouse)")]=airport_lookup(input = "Toulouse-Blagnac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Saint Mathieu de Tréviers (domicile)")]=airport_lookup(input = "Montpellier-Méditerranée Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Oxford")]=airport_lookup(input = "London Heathrow Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aas, Norvège")]=airport_lookup(input = "Oslo Gardermoen Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="aéroport d'East London, Afrique du Sud")]=airport_lookup(input = "Ben Schoeman Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport de Genève")]=airport_lookup(input = "Geneva Cointrin International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Brême")]=airport_lookup(input = "Bremen Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Sidney")]=airport_lookup(input = "Sydney Kingsford Smith International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Francfort (Allemagne)")]=airport_lookup(input = "Frankfurt am Main International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="aéroport Vienne Autriche")]=airport_lookup(input = "Vienna International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport de Porto")]=airport_lookup(input = "Francisco de Sá Carneiro Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Barcelone")]=airport_lookup(input = "Barcelona International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport de Toronto")]=airport_lookup(input = "Lester B. Pearson International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport de Bologne")]=airport_lookup(input = "Bologna Guglielmo Marconi Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="aéroport de Bologne, Italie")]=airport_lookup(input = "Bologna Guglielmo Marconi Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="51 James Street, OX4 1EU, Oxford, UK")]=airport_lookup(input = "London Heathrow Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport Roissy Charles de Gaulle, Paris")]="CDG"
d_avion$iata_depart[which(d_avion$lieu_depart=="Gare d'Uppsala, Suède")]=airport_lookup(input = "Stockholm-Arlanda Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Oslo - Aéroport")]=airport_lookup(input = "Oslo Gardermoen Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Toulouse Blagnac")]=airport_lookup(input = "Toulouse-Blagnac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Lisbonne")]=airport_lookup(input = "Lisbon Portela Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Fiumiccino, Rome")]=airport_lookup(input = "Leonardo da Vinci–Fiumicino Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Rome")]=airport_lookup(input = "Leonardo da Vinci–Fiumicino Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Curitiba")]=airport_lookup(input = "Afonso Pena Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Poitiers aéroport")]=airport_lookup(input = "Poitiers-Biard Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="aéroport d'Edimbourg")]=airport_lookup(input = "Edinburgh Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="George Airport")]=airport_lookup(input = "George Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Bulawayo")]=airport_lookup(input = "Joshua Mqabuko Nkomo International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport Vienne")]=airport_lookup(input = "Vienna International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport Brest")]=airport_lookup(input = "Brest Bretagne Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aeroport El Prat, Barcelone")]=airport_lookup(input = "Barcelona International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aéroport Faro")]="FAO" #airport_lookup(input = "Faro Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="aéroport Toulouse Blagnac")]=airport_lookup(input = "Toulouse-Blagnac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Nantes")]=airport_lookup(input = "Nantes Atlantique Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Aberdeen")]=airport_lookup(input = "Aberdeen Dyce Airport", input_type = "name", output_type = "IATA")
d_avion$iata_depart[which(d_avion$lieu_depart=="Goteborg")]=airport_lookup(input = "Gothenburg-Landvetter Airport", input_type = "name", output_type = "IATA")
d_avion$lieu_depart[which(d_avion$iata_depart=="NA")]
## factor(0)
## 234 Levels: lyon part-dieu rennes ... Villeurbanne, LBBE
Ensuite, même travail avec les retours.
#retour_lyon_id = c(3,7,14,15,17,28,29,30,35,36,43,44,48,49,50,51,55,57,62,63,65,76,80,81,82,88,90,94,100,101,110)
#d_avion$iata_retour[retour_lyon_id] = lyon_iata
d_avion$iata_retour[grep("Lyon", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[grep("UCBL1", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[grep("LBBE", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[grep("MEYZIEU", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[grep("Villeurbanne", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[grep("exupéry", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[grep("Saint-Etienne", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[grep("ecully", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[grep("doua", d_avion$lieu_retour, ignore.case=TRUE)]=lyon_iata
d_avion$iata_retour[which(d_avion$lieu_retour=="Domicile")]=lyon_iata
d_avion$iata_retour[which(d_avion$lieu_retour=="univsité de grenoble")]=lyon_iata
#d_avion$lieu_retour[which(d_avion$iata_retour=="NA")]
Maintenant, on remplit les blancs du retour.
d_avion$iata_retour[which(d_avion$lieu_retour=="Rio de Janeiro")]=airport_lookup(input = "Rio Galeão – Tom Jobim International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport international Pierre-Elliott-Trudeau de Montréal ")]=airport_lookup(input = "Montreal / Pierre Elliott Trudeau International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Trondheim")]=airport_lookup(input = "Trondheim Airport Værnes", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Victoria Falls (Hawange)")]=airport_lookup(input = "Victoria Falls International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Birmingham")]=airport_lookup(input = "Birmingham International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Rome")]=airport_lookup(input = "Roma Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Toulouse Blagnac")]=airport_lookup(input = "Toulouse-Blagnac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Bordeaux aéroport")]=airport_lookup(input = "Bordeaux-Mérignac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Hambourg Fuhlsbüttel")]=airport_lookup(input = "Hamburg Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Oxford")]=airport_lookup(input = "London Heathrow Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Oxford ")]=airport_lookup(input = "London Heathrow Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="YORK")]="MAN" #airport_lookup(input = "Manchester Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="COPENHAGUE")]=airport_lookup(input = "Copenhagen Kastrup Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="NOSI SAD")]=airport_lookup(input = "Belgrade Nikola Tesla Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="ROME")]=airport_lookup(input = "Roma Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="PARME")]=airport_lookup(input = "Parma Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport de Brest")]=airport_lookup(input = "Brest Bretagne Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Paris Orly")]="CDG"
d_avion$iata_retour[which(d_avion$lieu_retour=="Montpellier")]=airport_lookup(input = "Montpellier-Méditerranée Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport International Pékin")]=airport_lookup(input = "Beijing Capital International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroort de Vienne")]=airport_lookup(input = "Vienna International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="aéroport Bordeaux-merignac")]=airport_lookup(input = "Bordeaux-Mérignac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="aéroport de Paris CDG")]="CDG"
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport de Thessalonique")]=airport_lookup(input = "Thessaloniki Macedonia International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport de Londres \"Southend\"")]=airport_lookup(input = "Thessaloniki Macedonia International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="aéroport de Brest")]=airport_lookup(input = "Brest Bretagne Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Manchester UK")]="MAN" #airport_lookup(input = "Manchester Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Tegel, Berlin ")]=airport_lookup(input = "Berlin-Tegel International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Salt Lake City, Utah")]=airport_lookup(input = "Salt Lake City International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Chania")]=airport_lookup(input = "Chania International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Grimso (Suede)")]=airport_lookup(input = "Stockholm-Arlanda Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Trondheim (Norvège)")]=airport_lookup(input = "Trondheim Airport Værnes", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="rennes")]=airport_lookup(input = "Rennes-Saint-Jacques Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Bubión")]=airport_lookup(input = "Federico Garcia Lorca Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="rome")]=airport_lookup(input = "Roma Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="MUMBAI (CHHATRAPATI SHIVAJI)")]=airport_lookup(input = "Chhatrapati Shivaji International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Nantes")]=airport_lookup(input = "Nantes Atlantique Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Yokohama, Japon")]=airport_lookup(input = "Narita International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="paris")]="CDG"
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Birmingham (Grande Bretagne)")]=airport_lookup(input = "Birmingham International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Bordeaux")]=airport_lookup(input = "Bordeaux-Mérignac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="aéroport Narita, Tokyo")]=airport_lookup(input = "Narita International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="aéroport rome")]=airport_lookup(input = "Roma Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="aéroport rome")]=airport_lookup(input = "Roma Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Toulouse Matabiau")]=airport_lookup(input = "Toulouse-Blagnac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="INRA Castanet-Tolosan")]=airport_lookup(input = "Toulouse-Blagnac Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport international de Vancouver, Canada")]=airport_lookup(input = "Vancouver International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Gare d'Uppsala")]=airport_lookup(input = "Stockholm-Arlanda Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport de Oulu, Finlande")]=airport_lookup(input = "Oulu Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="gare d'Uppsala")]=airport_lookup(input = "Stockholm-Arlanda Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Safari Lodge, Hwange, Zimbabwe")]=airport_lookup(input = "Victoria Falls International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Safari Lodge, Hwange, Zimbabwe")]=airport_lookup(input = "Victoria Falls International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Sandvika, Norvège")]=airport_lookup(input = "Oslo Gardermoen Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Casablanca")]=airport_lookup(input = "Mohammed V International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Cayenne")]=airport_lookup(input = "Cayenne-Rochambeau Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="London Heathrow airport")]=airport_lookup(input = "London Heathrow Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="vancouver")]=airport_lookup(input = "Vancouver International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="vancouver ")]=airport_lookup(input = "Vancouver International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Victoria Falls Airport")]=airport_lookup(input = "Victoria Falls International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Johannesbourg")]=airport_lookup(input = "OR Tambo International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Campo Grande")]=airport_lookup(input = "Campo Grande Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Campo Grande")]=airport_lookup(input = "Campo Grande Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Rennes")]=airport_lookup(input = "Rennes-Saint-Jacques Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aeroport - Tokyo Haneda (HND)")]=airport_lookup(input = "Tokyo Haneda International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Budapest")]=airport_lookup(input = "Budapest Ferenc Liszt International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Narita Tokyo")]=airport_lookup(input = "Narita International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Yokohama Train Station, Yokohama")]=airport_lookup(input = "Narita International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Brest Guipavas ")]=airport_lookup(input = "Brest Bretagne Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport Franz-Josef-Strauß de Munich")]=airport_lookup(input = "Munich International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Montreal")]=airport_lookup(input = "Montreal / Pierre Elliott Trudeau International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Gare sncf Montpellier")]=airport_lookup(input = "Montpellier-Méditerranée Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Lisbonne centre")]=airport_lookup(input = "Lisbon Portela Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="univsité de grenoble")]=airport_lookup(input = "Grenoble-Isère Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Avignon")]=airport_lookup(input = "Avignon-Caumont Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Roscoff")]=airport_lookup(input = "Brest Bretagne Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Londres Heathrow")]=airport_lookup(input = "London Heathrow Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Rennes Saint Jacques")]=airport_lookup(input = "Rennes-Saint-Jacques Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Tokyo Haneda Airport")]=airport_lookup(input = "Tokyo Haneda International Airport", input_type = "name", output_type = "IATA")
d_avion$iata_retour[which(d_avion$lieu_retour=="Aéroport de Vienne (Autriche)")]=airport_lookup(input = "Vienna International Airport", input_type = "name", output_type = "IATA")
d_avion$lieu_retour[which(d_avion$iata_retour=="NA")]
## factor(0)
## 342 Levels: Collège de Claveisolles ...
#kilometers <- round(airport_distance("RDU", "CLT"))
#miles <- round(airport_distance("RDU", "CLT") * 0.621)
d_avion$km <- rep(0, length(d_avion$iata_depart))
for (i in 1:length(d_avion$iata_depart)) {
d_avion$km[i] <- round(airport_distance(d_avion$iata_depart[i], d_avion$iata_retour[i]))
}
d_avion$miles <- 0.621*d_avion$km
3 problèmes, avec des trajets à 0km. On les corrige.
d_avion[3,]
## objet_mission pays ville date_depart date_retour
## 14 [Mission Invité]--Jury de thèse france Lyon 2018-12-11 2018-12-18
## train avion vehicule_perso vehicule_labo choix_credits type_credits
## 14 non oui non non sur_credits ANR AGEX
## lieu_depart
## 14 Aéroport international Pierre-Elliott-Trudeau de Montréal
## lieu_retour vehicule
## 14 Aéroport international Pierre-Elliott-Trudeau de Montréal non
## place_vehicule heure_depart heure_retour
## 14 16:00 06:00
## intitule_statut
## 14 doctorant
## id iata_depart iata_retour km miles
## 14 2206 YUL YUL 0 0
On considère qu’il s’agit d’un aller-retour Lyon-Montréal.
d_aller <- d_avion[3,]
d_retour <-d_avion[3,]
d_aller$lieu_depart="Lyon"
d_aller$iata_depart=lyon_iata
d_aller$lieu_retour="Montreal"
d_aller$iata_retour=d_avion[3,]$iata_retour
d_retour$lieu_depart="Montreal"
d_retour$iata_depart=d_avion[3,]$iata_depart
d_retour$lieu_retour="Lyon"
d_retour$iata_retour=lyon_iata
d_avion[3,] <- d_aller
d_avion <- rbind(d_avion, d_retour)
d_avion[61,]
## objet_mission pays ville date_depart date_retour train
## 312 Jury de Thèse france Villenave d'Ornon 2018-05-02 2018-05-02 non
## avion vehicule_perso vehicule_labo choix_credits type_credits
## 312 oui non non sans_frais
## lieu_depart lieu_retour vehicule place_vehicule heure_depart
## 312 Domicile Domicile non 06:00
## heure_retour
## 312 21:40
## intitule_statut
## 312 Maître de conférence universitaire
## id iata_depart iata_retour km miles
## 312 1447 LYS LYS 0 0
On considère qu’il s’agit d’un aller-retour Lyon-Bordeaux.
d_aller <- d_avion[61,]
d_retour <-d_avion[61,]
d_aller$lieu_depart="Lyon"
d_aller$iata_depart=lyon_iata
d_aller$lieu_retour="Bordeaux"
d_aller$iata_retour=airport_lookup(input = "Bordeaux-Mérignac Airport", input_type = "name", output_type = "IATA")
d_retour$lieu_depart="Bordeaux"
d_retour$iata_depart=airport_lookup(input = "Bordeaux-Mérignac Airport", input_type = "name", output_type = "IATA")
d_retour$lieu_retour="Lyon"
d_retour$iata_retour=lyon_iata
d_avion[61,] <- d_aller
d_avion <- rbind(d_avion, d_retour)
d_avion[88,]
## objet_mission pays ville date_depart date_retour train avion
## 402 ISBE Conference USA Minneapolis 2018-08-10 2018-08-23 non oui
## vehicule_perso vehicule_labo choix_credits type_credits
## 402 non non sur_credits SMACL
## lieu_depart lieu_retour vehicule
## 402 Aéroport Lyon Saint Exupery Aéroport Lyon Saint Exupery non
## place_vehicule heure_depart heure_retour
## 402 06:00 13:40
## intitule_statut
## 402 doctorant
## id iata_depart iata_retour km miles
## 402 2171 LYS LYS 0 0
On considère qu’il s’agit d’un aller-retour Lyon-Minneapolis.
d_aller <- d_avion[88,]
d_retour <-d_avion[88,]
d_aller$lieu_depart="Lyon"
d_aller$iata_depart=lyon_iata
d_aller$lieu_retour="Minneapolis"
d_aller$iata_retour=airport_lookup(input = "Minneapolis-St Paul International/Wold-Chamberlain Airport", input_type = "name", output_type = "IATA")
d_retour$lieu_depart="Minneapolis"
d_retour$iata_depart=airport_lookup(input = "Minneapolis-St Paul International/Wold-Chamberlain Airport", input_type = "name", output_type = "IATA")
d_retour$lieu_retour="Lyon"
d_retour$iata_retour=lyon_iata
d_avion[88,] <- d_aller
## Warning in `[<-.factor`(`*tmp*`, iseq, value = "Minneapolis"): invalid
## factor level, NA generated
d_avion <- rbind(d_avion, d_retour)
On peut recalculer les distances.
#kilometers <- round(airport_distance("RDU", "CLT"))
#miles <- round(airport_distance("RDU", "CLT") * 0.621)
d_avion$km <- rep(0, length(d_avion$iata_depart))
for (i in 1:length(d_avion$iata_depart)) {
d_avion$km[i] <- round(airport_distance(d_avion$iata_depart[i], d_avion$iata_retour[i]))
}
d_avion$miles <- 0.621*d_avion$km
hist(d_avion$km, nclass = 20, xlab="Distance", ylab="Nombre", main="Histogramme des déplacements en avion du LBBE", col=rgb(0.6, 0.6, 0.6, 1), border=rgb(0.8, 0.8, 0.8, 1))
On liste l’ensemble des aéroports de départ et d’arrivée, et on compte leur nombre, qu’on affiche ensuite.
frequent_iatas <- table(c(d_avion$iata_depart, d_avion$iata_retour))
frequent_iatas <- sort(frequent_iatas)
long_names=rep("", length(frequent_iatas))
for (i in 1:length(frequent_iatas)) {
long_names[i] <- airport_lookup(input=names(frequent_iatas)[i], input_type = "IATA", output_type = "name")
}
long_names <- gsub("Airport", "", long_names)
names(frequent_iatas) <- long_names
par(mar=c(10, 4, 0, 2) + 0.1)
barplot(frequent_iatas, las=2, cex.axis=0.5, cex.lab=1.0, cex=0.6, ylab="Fréquence")
# Formattage des noms de catégorie.
nams = gsub(" ", "\n", trimws(as.character(levels(d$intitule_statut))))
nams[3] = "ATER"
nams[5] = "CDD"
nams[10] = "Maître\nde\nconférence"
frequent_flyers <- table(d_avion$id)
frequent_flyers <- sort(frequent_flyers)
statuts <- c()
for (i in names(frequent_flyers)) {
statuts <- c(statuts, unique(d_avion$intitule_statut[which(as.character(d_avion$id)==i)] ))
}
color_statuts <- c("grey", "grey", "orange", "lightgreen", "darkblue", "darkgreen", "lightblue", "darkgrey", "black", rgb(1,0,0,0.5), "lightblue", "darkblue", "darkred", "lightgrey")
barplot(frequent_flyers, las=2, cex.axis=0.5, cex.lab=1.0, cex=0.6, ylab="Nombre de voyages en avion", xlab="Individus", col=color_statuts[statuts])
legend("topleft", legend=levels(d_avion$intitule_statut), text.col=color_statuts, cex=0.5)
Même chose, pour le nombre de kilomètres et non plus le nombre de voyages.
long_flyers <- aggregate(d_avion$km, by=list(individu=d_avion$id), FUN=sum)
long_flyers <- long_flyers[order(long_flyers$x),]
statuts <- c()
for (i in long_flyers$individu) {
statuts <- c(statuts, unique(d_avion$intitule_statut[which(d_avion$id==i)] ))
}
color_statuts <- c("grey", "grey", "orange", "lightgreen", "darkblue", "darkgreen", "lightblue", "darkgrey", "black", rgb(1,0,0,0.5), "lightblue", "darkblue", "darkred", "lightgrey")
barplot(long_flyers$x, names.arg=long_flyers$individu, las=2, cex.axis=0.5, cex.lab=1.0, cex=0.6, ylab="Nombre de kms en avion", xlab="Individus", col=color_statuts[statuts])
legend("topleft", legend=levels(d_avion$intitule_statut), text.col=color_statuts, cex=0.5)
On calcule l’empreinte carbone en se basant sur les chiffres de la base carbone de l’ADEME, récupérés ici : https://ferme.yeswiki.net/Empreinte/?PagePrincipale&wiki=PagePrincipale par Eric Tannier.
Selon l’avion utilisé, l’empreinte carbone au km n’est pas la même. Il faut donc faire la différence entre longs courriers et vols moins longs.
On décide arbitrairement que tous les vols en-dessous de 2500km seront effectués dans des avions émettant 314g eCO2/km/personne, et ceux au-dessus dans des avions émettant 216g eCO2/km/personne.
computeCo2Avion <- function (x) {
if (as.numeric(x[22])<=2500) {
return(as.numeric(x[22])*314)
}
else {
return(as.numeric(x[22])*216)
}
}
d_avion$eco2_Eric <- apply(d_avion, 1, computeCo2Avion)
round(sum(d_avion$eco2_Eric), 3)
## [1] 93712626
95 tonnes eCO2 dues aux voyages en avion au LBBE. Or de nombreux voyages sont probablement indirects. En reprenant la valeur estimée par Lucas Fontana qui donne le ratio des distances des vols indirects vs directs à l’université de Lausanne: 8.6% plus d’eCO2.
En grammes :
total_voyages_avion <- round(sum(d_avion$eco2_Eric)*1.086, 3)
total_voyages_avion
## [1] 101771912
Soit 103 tonnes eCO2 dues au transport en avion pour le LBBE.
En me basant sur http://lbbe.univ-lyon1.fr/organigramme.php, je compte 147 personnes au total hors INRIA, Vetagro-Sup et les deux équipes des HCL. Ainsi, par personne :
round(sum(d_avion$eco2_Eric)*1.086, 3)/(147)
## [1] 692325.9
704kgs eCO2 par personne.
# Construction d'une base de données limitée aux voyages en train
d_train = d[which(d$train=="oui"),]
# d_train$lieu_depart
# d_train$lieu_retour
La base carbone de l’ADEME (http://www.basecarbone.fr/fr/basecarbone/donnees-consulter/liste-element/categorie/181) donne une valeur de 5.60E-3 kgCO2e/passager.km pour les trains grandes lignes.
Prenons, pour imaginer le pire des cas, un voyage de Lyon à Bordeaux : - 391km pour aller de Lyon Part Dieu à Paris Gare de Lyon (source https://www.thetrainline.com/en/train-times/lyon-part-dieu-to-paris-gare-de-lyon). - 497km pour aller de Paris Montparnasse à Bordeaux Saint Jean (source https://www.thetrainline.com/en/train-times/paris-montparnasse-to-bordeaux-st-jean). Soit
391+497
## [1] 888
888 km au total.
Si tous les voyages en train effectués par les membres du labo étaient si longs, on aurait une empreinte totale de :
total_voyages_train <- 888*5.6*length(d_train$lieu_depart)
total_voyages_train
## [1] 1476922
L’ensemble des personnels du LBBE n’a au plus occasionné qu’environ 1.48 tonne eCO2 pour ses déplacements en train.
Dans cette section on essaie de quantifier l’empreinte carbone des véhicules possédés par le labo.
Voici les infos recueillies auprès d’Odile, notamment les dates d’acquisition :
On considère qu’une voiture du labo est utilisée pendant 15 ans.
km_kangoo_2018 <- 1811 # première utilisation en octobre 2018
km_kangoo_ucbl <- 320334 - 311064
km_kangoo_2015 <- (243055 + 236000) / 2 - 221491 # le cahier ne permet pas de déterminer exactement le nombre de km à la fin 2018
extrapolation_autres_kangos <- (km_kangoo_ucbl + km_kangoo_2015 + km_kangoo_2018 * 4) / 3
# ici manquent des chiffres pour le kangoo ecofect et le kangoo mission
total_km_voitures_labo <- km_kangoo_2018 + km_kangoo_ucbl + km_kangoo_2015 + 2 * extrapolation_autres_kangos
emission_kangoo_g_par_km <- 145 # https://www.ademe.fr/sites/default/files/assets/documents/consommation-emissions-vehicules-particuliers-2018_8521.pdf
total_km_voitures_labo*emission_kangoo_g_par_km
## [1] 7561919
L’utilisation des voitures a occasionné une empreinte de 7.56 TeCO2.
On considère qu’une kangoo pèse environ 1 Tonne, et on utilise les chiffres de la base carbone de l’ADEME : http://www.basecarbone.fr/fr/basecarbone/donnees-consulter/liste-element/categorie/273
2 valeurs sont données, une à 5500 kgeCO2, l’autre à 7643 kgeCO2 par tonne. On prend la moyenne.
emission_production_kangoo <- (5500000+7643000)/2
#20000 / 1000 * 720000 # https://www.caradisiac.com/prime-a-la-casse-produire-une-nouvelle-voiture-pollue-plus-que-garder-une-ancienne-168187.htm
# https://www.lemonde.fr/planete/article/2019/09/10/les-voitures-vendues-en-2018-laisseront-une-empreinte-carbone-de-4-8-gigatonnes-de-co2_5508391_3244.html
emission_production_kangoos_amortie <- emission_production_kangoo * 5 / 15
emission_production_kangoos_amortie
## [1] 2190500
La construction des voitures, en considérant l’amortissement, a occasionné une empreinte de 2.19 TeCO2.
total_emission_voitures_labo <- total_km_voitures_labo * 145 + emission_production_kangoos_amortie
total_emission_voitures_labo
## [1] 9752419
Le LBBE a émis 9.75 TeCO2 en 2018 de par sa flotte de voitures.
Des membres du LBBE ont utilisé des voitures du LBBE pour des missions, mais également leurs propres voitures. Dans ces cas-là, nous n’avons pas accès au nombre de kilomètres en jeu.
nb_voyages_perso = table(d$vehicule_perso)[2]
nb_voyages_labo = table(d$vehicule_labo)[2]
On fait néanmoins l’hypothèse qu’en moyenne par mission on fait autant de km avec sa voiture perso qu’avec la voiture du labo :
total_co2_voiture_perso = total_km_voitures_labo * 145 *(table(d$vehicule_perso)[2]/table(d$vehicule_labo)[2])
total_co2_voiture_perso
## oui
## 10352627
10.2 TeCO2 pour les trajets en voiture personnelle.
Guy Perrière nous a transmis un tableau dans lequel on voit que en 2016, la salle Omega a consommé 1179129 kWh, utilisés pour les calculs du LBBE mais a priori pas par le département santé, ce qui nous arrange. Le cluster du labo représente en gros 1/4 des serveurs présents dans cette salle.
consommation_electricite_omega_lbbe <- 1179129/4
consommation_electricite_omega_lbbe
## [1] 294782.2
La part LBBE de consommation électrique de la salle omega est de 294kWh.
Par ailleurs, la base carbone de l’ADEME fixe à 79gCO2/kWh la production d’électricité française. Donc on a :
empreinte_consommation_electricite_omega_lbbe <- consommation_electricite_omega_lbbe*79
empreinte_consommation_electricite_omega_lbbe
## [1] 23287798
23,3 tonnes eCO2 pour 1 an de calcul, ce qui comprend aussi la climatisation de la salle. Ceci n’inclut pas la construction et le transport des serveurs, qu’Eco-info estime à 1260kgs pour un serveur de 16 coeurs (cf https://ferme.yeswiki.net/Empreinte/?PagePrincipale&wiki=PagePrincipale), sans prendre en compte le retraitement en fin de vie. Un serveur dure environ 5 ans. Donc on a, par coeur d’un serveur et par heure :
empreinte_construction_noeud_par_heure <- 1260000/(16*5*365*24)
empreinte_construction_noeud_par_heure
## [1] 1.797945
1.79geCO2 par heure de calcul par coeur pour la production et le transport du serveur.
Un coeur utilise 23.9W, soit 0.0239kW soit, pour une heure pour un coeur :
empreinte_heure_calcul <- 0.0239*79
empreinte_heure_calcul
## [1] 1.8881
1.89gCO2 par heure de calcul par coeur.
On peut donc faire une règle de trois pour calculer une empreinte CO2 du calcul au LBBE qui inclut l’empreinte d’acquisition des serveurs :
processor_footprint <- (empreinte_heure_calcul + empreinte_construction_noeud_par_heure) * 24 * 365 # part empreinte en geCO2 d'un processeur pour 1 an
processor_cons <- 0.0239*24*365 # consommation en kWh pour un processeur pour 1 an
clim_cons <- consommation_electricite_omega_lbbe - 1000* processor_cons # part clim en kWh pour 1 an, en supposant qu'on a 1000 processeurs dans le cluster
clim_footprint <- clim_cons * 79 # part empreinte clim en geCO2
cluster_footprint <- processor_footprint*1000 + clim_footprint
cluster_footprint
## [1] 39037798
39 TeCO2 pour le calcul au LBBE, hors machines personnelles.
On obtient les données d’heures de calcul en 2018 depuis http://adminlbbe.univ-lyon1.fr/pbsaccounting/
nbHeures <- 548151.79 + 476225.36 + 589034.72 + 434947.32 + 522977.69 + 664073.74 + 496768.85 + 36774.61 + 517547.35 + 528429.61 + 295533.16
Il nous manque décembre 2018, on rajoute décembre 2017 :
nbHeures <- nbHeures + 740922.34
nbHeures
## [1] 5851387
Soit, une empreinte de :
nbHeures * empreinte_heure_calcul
## [1] 11048003
11 tonnes. Il semblerait donc que sur l’ensemble de l’empreinte du cluster, 11 tonnes eCO2 sont émises de par les calculs, et le reste de par la construction et la climatisation.
Il y a 147 personnes au laboratoire, hors département de santé. Si on estime qu’un ordinateur est renouvelé tous les 3 ans, on achète 147/3 ordinateurs par an. La construction et le transport d’un portable consomme 250kgeCO2 (Eco-info, cf https://ferme.yeswiki.net/Empreinte/?PagePrincipale&wiki=PagePrincipale). Donc on a :
total_ordis_perso <- 250000*147/3
total_ordis_perso
## [1] 12250000
12.3 TeCO2.
Dans le document que Guy Perrière nous a passé, on a la consommation pour “Mendel+Déambulatoire+Patio+Amphis1er Cycle+Extension Prabi” : 1421000kWh. Cette consommation contiendrait la salle Omega. Donc hors salle Omega, pour le fonctionnement du bâtiment, on a :
electricite_sans_omega<-1421000 - 1179129
electricite_sans_omega
## [1] 241871
Soit 241871kWh. Le LBBE ne comprend qu’une petite partie de ce bâtiment. Disons 1/4 :
electricite_sans_omega/4
## [1] 60467.75
Convertissons en empreinte carbone :
total_electricite <- electricite_sans_omega/4*79
total_electricite
## [1] 4776952
4,78 TeCO2 pour l’électricité dans les locaux du LBBE.
Jeremy Panel, économe de flux à l’université, nous a fourni le chiffre de 12 TeCO2 en 2018 pour la partie LBBE du Mendel, en utilisant un ratio surfacique pour faire le calcul.
total_chauffage <- 12000000
On a dépensé en 2018 240 000 euros pour les expériences, hors gros équipements. Selon http://avenirclimatique.org/micmac/sources on aurait un taux de conversion de 128g eCO2 par euro.
Soit :
total_experimental_conso <- 128*240000
total_experimental_conso
## [1] 30720000
30.7 TeCO2 pour le matériel de biologie expérimentale.
On estime qu’on reçoit en moyenne 2 colis par semaine, chacun contenant 4kgs de carboglace. On suppose que la carboglace est fabriquée à partir de CO2 fossile, et on suppose qu’on reçoit des colis pendant 48 semaines. On ne compte pas le processus de fabrication de la carboglace.
total_experimental_carbo <- 48*8000
total_experimental_carbo
## [1] 384000
On compte 384 kgeCO2 dus à la carboglace des colis.
La part expérimentale du labo produit 200 poubelles de 50L /an et 100 poubelles de 25L /an de déchets biologiques. Il nous faut calculer l’empreinte eCO2 de l’incinération de ces déchets. On considère qu’une poubelle de 50L fait 10kgs, et une poubelle de 25L 5kgs. La base carbone de l’ADEME nous donne plusieurs chiffres d’empreinte carbone pour l’incinération des déchets (http://www.basecarbone.fr/fr/basecarbone/donnees-consulter/liste-element?recherche=incin%C3%A9ration). * Ordures ménagères : 362 kgeCO2/tonne * Déchets Industriels Spéciaux : 706 kgeCO2/tonne * Déchets d’Activités de Soins : 934 kgeCO2/tonne Pour référence, l’incinération du papier produit 46.6 kgeCO2/tonne, et celle de “plastique moyen” 2680 kgeCO2/tonne.
Les déchets industriels spéciaux peuvent être : * DIS organique : solvants, hydrocarbures, boues d’épuration ou Boue de curage de lagunes, d’égouts industriels, etc (déchets hospitaliers et vétérinaires)… * DIS minéral solide : cendres Refioms et mâchefers d’incinération, laitiers, poussières, amiante… * DIS minéral liquide et semi-liquides : bains de traitement de surface, acides…
On choisit d’utiliser ce chiffre de 706 kgeCO2/tonne, celui des Déchets Industriels Spéciaux.
total_experimental_incineration <- (200*10+100*5)*706
total_experimental_incineration
## [1] 1765000
L’incinération des déchets du travail expérimental provoque donc 1.765 TeCO2.
total_experimental <- total_experimental_conso + total_experimental_carbo + total_experimental_incineration
total_experimental
## [1] 32869000
Au total, on a :
total <- total_voyages_avion + cluster_footprint + total_ordis_perso + total_electricite + total_emission_voitures_labo + total_co2_voiture_perso + total_experimental + total_chauffage
total
## oui
## 222810708
223 TeCO2 pour le LBBE, soit :
total/(147) #38 + 5 INRIA
## oui
## 1515719
1.52TeCO2 par membre du LBBE par an. Pour référence, les engagements de l’UE à l’horizon 2050, qui sont aussi la quantité d’émissions soutenables par individu (sous l’hypothèse d’une allocation uniforme pour tous les humains), sont de 2TeCO2 par individu par an, vies personnelle et professionnelle incluses.
empreintes <- c(total_voyages_avion, cluster_footprint, total_experimental, total_ordis_perso, total_chauffage, total_co2_voiture_perso, total_emission_voitures_labo, total_electricite, total_voyages_train)/1000000
noms_empreintes <- c("1-Avion", "2-Calcul", "3-Expérimental", "4-Ordinateurs personnels", "5-Chauffage","6-Voitures perso", "7-Voitures labo", "8-Electricité", "9-Train" )
#barplot(as.matrix(empreintes))
library(reshape2)
library(ggplot2)
mock <- c(1,1,1,1,1,1)
empreintes_table<-data.frame(empreintes, noms_empreintes, row.names=noms_empreintes )
empreintes_table<-empreintes_table[order(empreintes_table$empreintes),]
noms_empreintes_ordered <- empreintes_table$noms_empreintes
empreintes_table<-subset(empreintes_table, select = -c(noms_empreintes) )
empreintes_table$volet <- seq_len(nrow(empreintes_table))
dat2 <- melt(empreintes_table, id.vars = "volet")
ggplot(dat2, aes(x = variable, y = value, fill = volet)) +
geom_col(show.legend = TRUE, aes(fill = noms_empreintes_ordered)) +
xlab("\nLBBE, Doua") +
ylab("Empreinte (TeCO2)\n") +
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank())
Cette partie est à but illustratif et absolument pas prescriptif. Elle fournit des exemples de mesures qui nous sont passées par la tête, ce qui on l’espère permet de mieux appréhender le bilan carbone et les secteurs de production de l’empreinte.
d_avion <- d_avion[order(d_avion$km, decreasing = TRUE),]
### add cumulative column to the data frame
d_avion[,"cum_eCO2"] <- cumsum(d_avion$eco2_Eric)
par(mar=c(5, 6, 0, 0) + 0.1)
plot(d_avion$km, d_avion$cum_eCO2/1000, ylab="Empreinte cumulative des\nvoyages au-dessus d'une distance (kgeCO2)", xlab="Distance", pch=20, col=rgb(0,0,1,0.5), xaxp=c(0,18000,18), yaxp=c(0, 110000, 11), cex=2)
grid(nx=18, ny=10)
Eviter les voyages de distance inférieure à 2000km permet d’enlever environ 30 tonnes du bilan carbone des voyages en avion, soit
100 - (d_avion[which(d_avion$km<2000)[1],"cum_eCO2"] / total_voyages_avion *100 )
## [1] 30.5258
30.5%.
Pour 1000 km, ce serait :
100 - (d_avion[which(d_avion$km<1000)[1],"cum_eCO2"] / total_voyages_avion *100 )
## [1] 19.5991
19.6%.
Et pour 500km :
100 - (d_avion[which(d_avion$km<500)[1],"cum_eCO2"] / total_voyages_avion *100 )
## [1] 10.19594
10.2%.
row.names(d_avion) <- 1:nrow(d_avion)
#On identifie à la main les missions pour des conférences :
conf_indices <- c(2,3,5,6,7,8,9,10,11,20,21,22,25,26,29,31,36,37,46,47,49,53,56,59,60,61,62,71,72,76,77,84,85,92,104,106,112,118)
total_voyages_conferences <- round(sum(d_avion$eco2_Eric[conf_indices])*1.086, 3)
total_voyages_conferences
## [1] 45191883
Abandonner les vols pour les missions invités permettrait d’annuler 45TeCO2 sur les 102TeCO2 dues aux voyages en avion au LBBE, soit :
total_voyages_conferences/total_voyages_avion * 100
## [1] 44.40506
44% du bilan carbone des voyages en avion.
total_voyages_avion_invites <- round(sum(d_avion$eco2_Eric[grep ("Mission Invité", d_avion$objet_mission)])*1.086, 3)
total_voyages_avion_invites
## [1] 24374521
Abandonner les vols pour les missions invités permettrait d’annuler 24TeCO2 sur les 102TeCO2 dues aux voyages en avion au LBBE, soit :
total_voyages_avion_invites/total_voyages_avion * 100
## [1] 23.95015
24% du bilan carbone des voyages en avion.