123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- 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########################################
|