Realiser des cartes d’etudes et d’analyses a partir de donnees mono ou bilocalisees.
Monolocalisees
ronds proportionnels pour des donnees en volume
analyse en classes pour des donnees en ratio
typologie pour des donnees categorisees
Bilocalisees
oursins pour des flux entre deux territoires
fleches joignantes pour des flux entre deux territoires, leurs volumes et leurs directions
fleches saphirs pour des flux d’entrees et de sorties d’un territoire par rapport a d’autres
Pour charger des donnees, le package rio
permet
d’importer des fichiers de formats differents (csv, sas, xls, dbf, rda,
rds, html, xml, ods…).
La fonction import(file)
permet d’importer le fichier de
donnees.
<- rio::import(file = system.file("data/donnees_monoloc.rda",
donnees_monoloc package = "oceanis"))
Pour information, la table donnees_monoloc
est un
data.frame contenant 6 variables, le code des departements, les
libelles, la population en 2010, en 2015, la variation annuelle moyenne
de la population entre 2010 et 2015 et le code region d’appartenance.
Son champ est la France metropolitaine.
Pour calculer une variable de classes a partir de variables en volume presentes dans le tableau de donnees, vous pouvez passer par l’une des fonctions suivantes :
calcul_ratio(data, var1, var2) pour calculer un ratio entre 2 variables en volume ;
calcul_tx_evol_global(data, var1, var2) pour calculer le taux d’evolution global entre deux periodes ;
calcul_tx_evol_ann_moy(data, var1, var2, nbAnnees) pour calculer le taux d’evolution annuel moyen entre deux periodes ;
calcul_part_ens(data, var) pour calculer la part dans l’ensemble ;
calculette(data, formule = NULL) pour entrer manuellement votre propre formule de calcul ;
Ces fonctions ajoutent au tableau de donnees la colonne de variable de classes.
Vous pouvez egalement visualiser la distribution d’une variable de classes :
library(oceanis)
## Le chargement a nécessité le package : shiny
## Le chargement a nécessité le package : shinyBS
# chargement des donnees
<- rio::import(file = system.file("data/donnees_monoloc.rda",
donnees_monoloc package = "oceanis"))
# visualisation de la distribution de la variable VAR_AN_MOY
distrib_variable(data = donnees_monoloc,
varRatio = "VAR_AN_MOY",
nbClasses = 4)
## Warning: Use of `donnees$VAR` is discouraged. Use `VAR` instead.
Les objets geometriques utilises dans les fonctions du package
“oceanis” sont des objets sf
issus du package
sf
(Simple Features for R).
En plus de la geometrie, les objets sf peuvent contenir des donnees de type data.frame ou tibble.
Pour charger un fond de carte de format ShapeFile (.shp) en un objet
R de format sf, il suffit d’appeler la fonction sf::read_sf
ou sf::st_read
.
# chemin du fond de carte .shp
<- system.file("extdata",
path_to_shp "dep_francemetro_2018.shp",
package = "oceanis")
# import de l'objet sf
<- sf::st_read(dsn = path_to_shp, quiet = TRUE)
depm
# visualisation de la geometrie
# modification des marges
par(mai = c(0,0,0,0))
# contour des departements de France metropolitaine
plot(sf::st_geometry(depm))
Vous n’avez pas a votre disposition de fond de carte .shp correspondant a votre zonage d’etudes. Vous pouvez le generer a partir d’autres fonds de carte disponibles. Par exemple, a partir de zonages administratifs (communes, departements, regions…) ou d’etudes (intercommunalites, aires urbaines, zones d’emploi…).
La fonction zonage_a_facon
permet de creer son propre
zonage a facon.
L’exemple ci-dessous permet de resconstituer les zones d’emploi des Bouches-du-Rhcne a partir d’un fond communal.
library(oceanis)
# chargement des donnees :
# donnees a facon avec variable de regroupement (ZE2010)
<- rio::import(file = system.file("data/donnees_a_facon.rda",
donnees_a_facon package = "oceanis"))
# fond communal des departements 13, 30, 83 et 84
<- sf::st_as_sf(rio::import(file = system.file("data/com_dep_13_30_83_84.rda",
com_dep_13_30_83_84 package = "oceanis")))
# chemin du fond de carte .shp
<- system.file("extdata",
path_to_shp "dep_francemetro_2018.shp",
package = "oceanis")
# import en objet sf
<- sf::st_read(dsn = path_to_shp, quiet = TRUE, stringsAsFactors = FALSE)
depm
# creation du zonage des zones d'emploi des Bouches-du-Rhone (partie entiere des ze)
<- zonage_a_facon(fondMaille = com_dep_13_30_83_84,
ze13etplus groupe = donnees_a_facon,
idMaille = "DEPCOM",
idGroupe = "ZE2010",
libGroupe = "LIB_ZE2010",
fondContour = NULL)
# creation du zonage des zones d'emploi des Bouches-du-Rhone (partie tronquee des ze au contour du departement)
<- zonage_a_facon(fondMaille = com_dep_13_30_83_84,
ze13 groupe = donnees_a_facon,
idMaille = "DEPCOM",
idGroupe = "ZE2010",
libGroupe = "LIB_ZE2010",
fondContour = depm[depm$CODE=="13",])
# visualisation de la geometrie
# modification des marges
par(mai = c(0,0,0,0))
# fond des ze des Bouches-du-Rhone en 1er pour fixer le niveau de zoom, en bleu
plot(sf::st_geometry(ze13etplus),
col = "powderblue",
border = "transparent")
# fond de la partie tronquee des ze des Bouches-du-Rhone, en rouge
plot(sf::st_geometry(ze13),
col = "lightsalmon",
border = "transparent",
add = TRUE)
# contour des communes
plot(sf::st_geometry(com_dep_13_30_83_84),
col = "transparent",
border = "lavender",
add = TRUE)
# contour de la partie tronquee des ze des Bouches-du-Rhone, en rouge
plot(sf::st_geometry(ze13),
col = "transparent",
border = "indianred",
lwd = 3,
add = TRUE)
# contour des ze des Bouches-du-Rhone, en bleu
plot(sf::st_geometry(ze13etplus),
col = "transparent",
border = "steelblue",
lwd = 3,
add = TRUE)
Les fonctions shiny_() permettent de visualiser les cartes dans un
environnement web utilisant la technologie R-Shiny (package
shiny
Web Application Framework for R). Cet environnement
permet de modifier a la volee le parametrage de la carte (nombre de
classes, methode de calcul des classes, taille des ronds, des fleches,
filtres sur les donnees etc…). La carte est alors actualisee a chaque
modification de parametres.
Les cartes sont interactives car elles sont dans le format leaflet
(package leaflet
Leaflet for R). Il est possible de se
deplacer, de zoomer sur la carte et de cliquer sur les territoires pour
faire apparaitre des informations sous forme d’info-bulles (ou
pop-up).
Voici deux exemples de cartes realisees avec les fonctions shiny_classes_ronds() pour une representation de donnees monolocalisees avec des ronds propotionnels sur une analyse en classes et shiny_joignantes() pour une representation de donnees bilocalisees avec visualisation de la direction et du volume du flux.
library(oceanis)
library(shiny)
# chargement des donnees
<- rio::import(file = system.file("data/donnees_monoloc.rda",
donnees_monoloc package = "oceanis"))
# import du fond des departements
<- sf::st_read(dsn = system.file("extdata",
depm "dep_francemetro_2018.shp",
package = "oceanis"),
quiet = TRUE,
stringsAsFactors = FALSE)
# import du fond des regions
<- sf::st_read(dsn = system.file("extdata",
regm "reg_francemetro_2018.shp",
package = "oceanis"),
quiet = TRUE,
stringsAsFactors = FALSE)
# import du fond de France metropolitaine
<- sf::st_read(dsn = system.file("extdata",
fram "francemetro_2018.shp",
package = "oceanis"),
quiet = TRUE,
stringsAsFactors = FALSE)
shiny_classes_ronds(data = donnees_monoloc,
fondMaille = depm[depm$REG %in% c("93","94"),],
fondMailleElargi = depm,
fondContour = fram,
fondSuppl = regm,
idData = "COD_DEP",
varVolume = "POP_2015",
varRatio = "VAR_AN_MOY")
library(oceanis)
library(shiny)
# chargement des donnees
<- rio::import(file = system.file("data/donnees_biloc.rda",
donnees_biloc package = "oceanis"))
# import du fond des regions
<- sf::st_read(dsn = system.file("extdata",
regm "reg_francemetro_2018.shp",
package = "oceanis"),
quiet = TRUE,
stringsAsFactors = FALSE)
# import du fond des departements
<- sf::st_read(dsn = system.file("extdata",
depm "dep_francemetro_2018.shp",
package = "oceanis"),
quiet = TRUE,
stringsAsFactors = FALSE)
# import du fond de France metropolitaine
<- sf::st_read(dsn = system.file("extdata",
fram "francemetro_2018.shp",
package = "oceanis"),
quiet = TRUE,
stringsAsFactors = FALSE)
shiny_joignantes(data = donnees_biloc,
fondMaille = regm,
typeMaille = "REG",
fondContour = fram,
fondSuppl = depm,
idDataDepart = "REG_DEPART",
idDataArrivee = "REG_ARRIVEE",
varFlux = "MIGR",
decalageAllerRetour = 10,
decalageCentroid = 20)
Les fonctions leaflet_() proposent des cartes en sorties utilisant la
technologie leaflet (package leaflet
Leaflet for R) comme
pour les fonctions shiny. Ces fonctions sont davantage parametrables et
la modification des cartes (ajout d’une legende, modification de
couleurs, etc…) est possible par d’autres fonctions dediees.
Ci-dessous, un exemple de cheminement possible pour realiser une
carte complete avec leaflet. Cette carte utilise des donnees
monolocalisees avec une analyse en classes dans les ronds. Appeler
l’objet map
dans la console a chaque etape pour afficher la
carte.
library(oceanis)
library(leaflet)
library(sf)
## Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1; sf_use_s2() is TRUE
library(classInt)
library(leaflet.extras)
library(stringr)
# chargement des donnees
<- rio::import(file = system.file("data/donnees_monoloc.rda",
donnees_monoloc package = "oceanis"))
# import du fond des departements
<- sf::st_read(dsn = system.file("extdata",
depm "dep_francemetro_2018.shp",
package = "oceanis"),
quiet = TRUE,
stringsAsFactors = FALSE)
# import du fond des regions
<- sf::st_read(dsn = system.file("extdata",
regm "reg_francemetro_2018.shp",
package = "oceanis"),
quiet = TRUE,
stringsAsFactors = FALSE)
# affichage de la carte
<- leaflet_ronds_classes(data = donnees_monoloc,
map fondMaille = depm[depm$REG=="93",],
fondMailleElargi = depm,
fondSuppl = regm,
idData = "COD_DEP",
varVolume = "POP_2015",
varRatio = "VAR_AN_MOY")
# affichage du rayon du rond le plus grand en metres
rayon_ronds(map)
## [1] 23668.55
# affichage de la carte avec des rayons de ronds plus grands
<- leaflet_ronds_classes(data = donnees_monoloc,
map fondMaille = depm[depm$REG == "93",],
fondMailleElargi = depm,
fondSuppl = regm,
idData = "COD_DEP",
varVolume = "POP_2015",
varRatio = "VAR_AN_MOY",
rayonRond = 29000,
rapportRond = NULL)
# affichage du rapport du rond le plus grand, a recuperer pour permettre la comparaison de plusieurs cartes
rapport_ronds(map)
## [1] 1310165
# ajout de la legende des ronds (position par defaut)
<- add_legende_ronds(map = map,
map titre = "Population en 2015",
zoom = 6)
## [INFO] Les coordonnées de la légende des ronds sont : longitude (x) =
## 7.71612696800038 degré ; latitude (y) = 45.1268480101768 degré
# ajout de la legende des classes (position par defaut)
<- add_legende_classes(map = map,
map titre = "Variation ann.moy. 2010-2015",
zoom = 6)
## [INFO] Les coordonnées de la légende des classes sont : longitude (x) =
## 7.71612696800038 degré ; latitude (y) = 42.9820332433454 degré
# modification de la position de la legende des ronds et du niveau de zoom
<- add_legende_ronds(map = map,
map titre = "Population en 2015",
lng = 8,
lat = 44,
zoom = 8)
## [INFO] Les coordonnées de la légende des ronds sont : longitude (x) = 8 degré ;
## latitude (y) = 44 degré
# modification de la position de la legende des classes et du niveau de zoom
<- add_legende_classes(map = map,
map titre = "Variation ann.moy. 2010-2015",
lng = 7.5,
lat = 43.5,
zoom = 8)
## [INFO] Les coordonnées de la légende des classes sont : longitude (x) = 7.5
## degré ; latitude (y) = 43.5 degré
# ajout d'une source a la carte
<- add_source(map = map,
map source = "Source : INSEE - RP2016")
# ajout d'un titre a la carte
<- add_titre(map = map,
map titre = "Population des departements de la region Provence-Alpes-Cote d'Azur en 2015 et son evolution depuis 2010")
# affichage de la palette par defaut
# affiche_palette(nomPalette = "defaut")
recup_palette(stylePalette = "defaut", nbPos = 3)
## $defaut_0N3P
## [1] "#FEE090" "#FDAE61" "#F46D43"
# affichage de la palette Insee_Rouge
recup_palette(stylePalette = "Insee_Rouge", nbPos = 3)
## $Insee_Rouge_0N3P
## [1] "#F5B8C2" "#EB617F" "#E4003A"
# modification du style de la palette et de la bordure des ronds
<- set_couleur_classes(map = map,
map stylePalette = "Insee_Rouge",
colBorder = "grey")
# modification de l'opacite de la representation elargie
<- set_opacite_elargi(map = map,
map opacite = 0.3)
map