# ETL
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(data.table)
##
## Attachement du package : 'data.table'
##
## Les objets suivants sont masqués depuis 'package:lubridate':
##
## hour, isoweek, mday, minute, month, quarter, second, wday, week,
## yday, year
##
## Les objets suivants sont masqués depuis 'package:dplyr':
##
## between, first, last
##
## L'objet suivant est masqué depuis 'package:purrr':
##
## transpose
library(readr)
library(DT)
library(janitor)
##
## Attachement du package : 'janitor'
##
## Les objets suivants sont masqués depuis 'package:stats':
##
## chisq.test, fisher.test
library(lubridate)
library(magrittr)
##
## Attachement du package : 'magrittr'
##
## L'objet suivant est masqué depuis 'package:purrr':
##
## set_names
##
## L'objet suivant est masqué depuis 'package:tidyr':
##
## extract
library(purrr)
library(here)
## here() starts at C:/Users/Utilisateur/Documents/EIGSI/Semestre 8/Tronc commun/VisualisationData/Projet
library(stringr)
library(dplyr)
library(tidyr)
library(ggplot2)
library(shiny)
##
## Attachement du package : 'shiny'
##
## Les objets suivants sont masqués depuis 'package:DT':
##
## dataTableOutput, renderDataTable
library(geojsonio)
## Registered S3 method overwritten by 'geojsonsf':
## method from
## print.geojson geojson
##
## Attachement du package : 'geojsonio'
##
## L'objet suivant est masqué depuis 'package:base':
##
## pretty
library(RColorBrewer)
library(sf)
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(ggplot2)
library(sf)
library(tidyr)
library(shiny)
library(ggplot2)
library(sf)
library(dplyr)
library(tidyr)
# Charts
library(highcharter)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(plotly)
##
## Attachement du package : 'plotly'
##
## L'objet suivant est masqué depuis 'package:ggplot2':
##
## last_plot
##
## L'objet suivant est masqué depuis 'package:stats':
##
## filter
##
## L'objet suivant est masqué depuis 'package:graphics':
##
## layout
library(ggplot2)
library(RColorBrewer)
library(networkD3)
##
## Attachement du package : 'networkD3'
##
## L'objet suivant est masqué depuis 'package:highcharter':
##
## JS
##
## L'objet suivant est masqué depuis 'package:DT':
##
## JS
library(data.tree)
library(treemap)
library(leaflet)
##
## Attachement du package : 'leaflet'
##
## L'objet suivant est masqué depuis 'package:networkD3':
##
## JS
library(car)
## Le chargement a nécessité le package : carData
##
## Attachement du package : 'car'
##
## L'objet suivant est masqué depuis 'package:dplyr':
##
## recode
##
## L'objet suivant est masqué depuis 'package:purrr':
##
## some
library(colorRamps)
entete = NULL
data = NULL
files_names <- list.files(here("SH_TX_metropole"))
for (i in files_names) {
file= paste0("SH_TX_metropole/",i)
tmp = read.csv2(file,skip =12)
tmp_entete= read.csv2(file, sep = "=")
tmp_entete= tmp_entete[c(1,2,3,4,5),1]
tmp_entete[1] = gsub(" ", "", tmp_entete[1])
entete = rbind(entete, c(tmp_entete, substring(i,8,9)))
tmp$code = tmp_entete[1]
data = rbind(data, tmp)
}
entete = data.frame(entete)
names(entete) = c("code","nom", "latitude","longitude","altitude", "dep")
entete$latitude = as.numeric(entete$latitude)
#data <- data %>% separate(YYYYMM, c('YYYY', 'MM'))
data <- transform(data, Year = substr(YYYYMM, 1, 4), Month = substr(YYYYMM, 5, 6))
data <- data[,-1] # On supprime la 1eme colonne
data$Year = as.numeric(data$Year)
data$VALEUR = as.numeric(data$VALEUR)
data$Year = as.numeric(data$Year)
data$VALEUR = as.numeric(data$VALEUR)
val_moy = NULL
val_moy <- data %>% group_by(Year, code) %>% summarize(MOY_AN = mean(VALEUR, na.rm=TRUE))
## `summarise()` has grouped output by 'Year'. You can override using the
## `.groups` argument.
val_moy <- left_join(val_moy,entete,by=c("code"))
val_moy2 = NULL
val_moy2 <- val_moy %>% group_by(Year) %>% summarize(MOY_AN2= mean(MOY_AN, na.rm = TRUE))
scatterplot(MOY_AN2~Year, data=val_moy2)
val_moy3 = NULL
val_moy3 <- val_moy %>% group_by(dep,Year) %>% summarize(MOY_AN3= mean(MOY_AN, na.rm = TRUE))
## `summarise()` has grouped output by 'dep'. You can override using the `.groups`
## argument.
ggplot(val_moy3, aes(Year,MOY_AN3)) +
geom_line(aes(color=dep, group=dep))
ui <- fluidPage(
titlePanel("Moyenne Annuelle par Département"),
sidebarLayout(
sidebarPanel(
selectInput("dep", "Choisissez un département :", choices = unique(val_moy3$dep))
),
mainPanel(
plotOutput("line_plot")
)
)
)
# Constants
MAP_CENTER_LONGITUDE <- 2.35
MAP_CENTER_LATITUDE <- 46.23
MAP_ZOOM_LEVEL <- 5
# Load map data
load_map_data <- function() {
map_data <- st_read("georef-france-departement-millesime.geojson")
map_data <- map_data %>%
unnest(cols = c(reg_code, reg_name, dep_code, dep_current_code, dep_name, dep_status))
return(map_data)
}
# Create custom color palette
create_color_palette <- function() {
colorNumeric(
palette = "YlOrRd",
domain = c(9, 27)
)
}
# Create interactive map
create_map <- function(map_data, color_palette) {
leaflet(map_data) %>%
addTiles() %>%
setView(lng = MAP_CENTER_LONGITUDE, lat = MAP_CENTER_LATITUDE, zoom = MAP_ZOOM_LEVEL) %>%
addPolygons(
color = "#444444",
weight = 1,
smoothFactor = 0.5,
fillOpacity = 0.7,
fillColor = ~color_palette(val_moy3$MOY_AN3),
popup = ~paste(dep_name, "<br>", "Moyenne annuelle : ", round(val_moy3$MOY_AN3, 2), "°C")
)
}
# Load data and create interactive map
map_data <- load_map_data()
## Reading layer `georef-france-departement-millesime' from data source
## `C:\Users\Utilisateur\Documents\EIGSI\Semestre 8\Tronc commun\VisualisationData\Projet\georef-france-departement-millesime.geojson'
## using driver `GeoJSON'
## Simple feature collection with 941 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -178.1857 ymin: -49.72161 xmax: 168.1442 ymax: 51.08899
## Geodetic CRS: WGS 84
color_palette <- create_color_palette()
create_map(map_data, color_palette)
## Warning in color_palette(val_moy3$MOY_AN3): Some values were outside the color
## scale and will be treated as NA