library(plyr) library(dplyr) library(ggplot2) library("sf") library("rnaturalearth") library("rnaturalearthdata") library("rgeos") library(stringr) library(tidyverse) ###################################################################################### # # ###################################################################################### #Import des températures (partout sur la planète), on ne garde que l'année correspondante. temp = read.csv("D:/Rstudio/Projects/Data/GlobalTemperatures.csv") temp$dt <- substring(temp$dt,1,4) # Calcul de la moyenne par année MeanYear = ddply(temp, "dt" , summarise, meanYear = mean(na.omit(LandAverageTemperature))) # Importation des températures (pas dans l'eau) et mise en forme de l'année. tempCountries = read.csv("D:/Rstudio/Projects/Data/GlobalLandTemperaturesByCountry.csv") tempCountries$dt <- substring(tempCountries$dt,1,4) # Calcul de la moyenne par année, tout pays confondus MeanTempByYear = ddply(tempCountries, c("dt") , summarise, meanTemp = mean(na.omit(AverageTemperature))) # Mise en forme de la moyenne. ggplot(MeanTempByYear, aes(x=dt , y = meanTemp)) + geom_path(size = 1 , color = "red", aes(group=1)) + ggtitle("Evolution de la température moyenne au niveau mondial depuis 1750 (Continent)") + scale_x_discrete(breaks=seq(1750, 2015, 15)) + theme(panel.background = element_blank(), axis.line = element_line(colour = "black")) + ylab("moyenne des températures observées") + xlab("année") # Superposition des 2 courbes ggplot(MeanTempByYear, aes(x=dt , y = meanTemp)) + geom_path(size = 1 , color = "red", aes(group=1)) + geom_line() + geom_line(data = MeanYear, aes(x=dt , y = meanYear, group=2),color = "blue") + ggtitle("Comparaison de la température moyenne sur Terre et en Mer") + theme(panel.background = element_blank(), axis.line = element_line(colour = "black")) + scale_x_discrete(breaks=seq(1750, 2015, 15)) + ylab("moyenne des températures observées") + xlab("année") # Calcul de l'année la plus chaude. x = MeanTempByYear$dt[which.max(MeanTempByYear$meanTemp)] tempCountries2013 = subset(tempCountries, dt == x) MeanTemp2013ByCountry = ddply(tempCountries2013, c("Country") , summarise, meanTemp = mean(na.omit(AverageTemperature))) MeanTemp2013ByCountry = MeanTemp2013ByCountry[order(MeanTemp2013ByCountry$meanTemp, decreasing = TRUE), ] #On ne garde que les 10 pays les plus chauds TenHottest2013Countries = head(MeanTemp2013ByCountry,10) # Mise en forme de la moyenne. ggplot(TenHottest2013Countries, aes(x=Country , y = meanTemp, fill=factor(meanTemp))) + geom_bar(stat = "identity") + ggtitle("Les 10 pays les plus chauds durant l'année 2013") + theme(axis.text.x = element_text(color = "blue", size = 15)) + ylab("moyenne des températures observées") + xlab("Pays") ###################################################################################### # # ###################################################################################### ## develop a model #on enlève les années 1743-1745 MeanTempByYear = na.omit(MeanTempByYear) linear_model <- lm( MeanTempByYear$meanTemp ~ MeanTempByYear$dt) FutureData <- data.frame(2020) Prediction <- data.frame(predict(linear_model,FutureData)) print(Prediction) summary(linear_model) #Essai peu concluant ... Circulez, il n'y a rien de fonctionnel à voir ! ###################################################################################### # # ##################################################################################### MeanTempByYear = ddply(tempCountries, c("dt") , summarise, meanTemp = mean(na.omit(AverageTemperature))) MeanTempByYear <- MeanTempByYear[-c(1:10), ] #On plot le résultat obtenu, on décide d'enlever les 10 premières années qui sont très inconsistantes new_row = c(2050, 20) MeanTempByYear = rbind(MeanTempByYear,new_row) #On ajoute cette valeur afin que notre smooth puisse extrapoler jusqu'en 2050, on replot MeanTempByYear <- MeanTempByYear[-c(1:107), ] # On enlève tous les ans qui ont appartenu à la période dite du "Petit Age glaciaire, ainsi, # on essaye d'enlever les impacts qui ne dépendant pas de l'activité humaine et de prédire au mieux # ce qui se serait passé sans cette période. On remarque des résultats plus catastrophiques new_row = c(2050, 21) MeanTempByYear = rbind(MeanTempByYear,new_row) #On ajoute cette valeur afin que notre smooth puisse extrapoler jusqu'en 2050, on replot #En appelant ou non les lignes au dessus de nous, nous obtenons les résultats présentés sur le rapport. ggplot(MeanTempByYear, aes(x=as.numeric(dt) , y = meanTemp)) + geom_point() + ggtitle("Températures terrestres et extrapolation à 40 ans") + geom_smooth(stat = "smooth", color = "red", method="auto", fullrange = TRUE) + ylab("moyenne des températures observées") + xlab("année") ###################################################################################### # # ##################################################################################### # Importation des Bases de données et mise en forme de l'année. LocationTemp = read.csv("D:/Rstudio/Projects/Data/GlobalLandTemperaturesByMajorCity.csv") LocationTemp$dt <- substring(LocationTemp$dt,1,4) LocationTemp <- subset(na.omit(LocationTemp), dt == "2003") #LocationTemp$Latitude[str_sub(LocationTemp$Latitude, -1) == "N"] <-1 #LocationTemp$Latitude[str_sub(LocationTemp$Latitude, -1) == "S"] <- -LocationTemp$Latitude TrLocationTemp <- LocationTemp %>% mutate(Latitude = case_when (str_sub(LocationTemp$Latitude, -1) == "N" ~ str_sub(LocationTemp$Latitude, 0,-2), (str_sub(LocationTemp$Latitude, -1) == "S" ~ paste("-",str_sub(LocationTemp$Latitude, 0,-2), sep = "")))) %>% mutate(Longitude = case_when (str_sub(LocationTemp$Longitude, -1) == "E" ~ str_sub(LocationTemp$Longitude, 0,-2), (str_sub(LocationTemp$Longitude, -1) == "W" ~ paste("-",str_sub(LocationTemp$Longitude, 0,-2),sep = "")))) #Essai de transformation des données, échec cuisant car ça n'a rien changé mais démarche intéressante # Calcul de la moyenne par année MeanLocationYear = ddply(TrLocationTemp, "Country" , summarise, meanYear = mean(AverageTemperature), Latitude = Latitude, Longitude = Longitude) world <- ne_countries(returnclass = "sf") ggplot() + geom_sf(data= world) + geom_point(data = LocationTemp, aes(x = Longitude, y = Latitude)) #Le plot fonctionne, et grâce à lui, on s'aperçoit que le monde est petit... ######################################################################################### # # ######################################################################################### library(countrycode) continent <- countrycode(sourcevar = MeanTemp2013ByCountry[, "Country"], origin = "country.name", destination = "continent") #import d'un référencement des continents de chaque payes continent30 = head(na.omit(continent),30) # On ne garde que les 30 pays les plus chauds, ainsi que leur continent ggplot(data=as.data.frame(continent30), aes(x = factor(1),fill = factor(continent30))) + geom_bar(stat = "count") + ggtitle("Distribution au sein des continents des 30 pays les plus chauds") + coord_polar(theta='y') + theme(axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks.y = element_blank(), axis.title.x = element_blank()) + labs(fill = "Continents") # On plotte la proportion de continents parmi les 30 pays les plus chauds ################################Fin du code########################################