Les données
# install.packages("sf")
# install.packages("mapsf")
library(sf)
Linking to GEOS 3.10.2, GDAL 3.4.1, PROJ 8.2.1; sf_use_s2() is TRUE
BD <- st_read("data/Couche Polygones.gpkg", quiet = TRUE)
Quartier <- st_read("data/Q.shp", quiet = TRUE)
BBOX <- st_read("data/bbox.shp", quiet = TRUE)
# Reprojection
Quartier <- st_transform(Quartier, crs= "EPSG:32636")
Données importées
On ne garde que les zones (polygones) considérées comme “Positives”
BD_POS <- BD[ BD$Indicateur == "Positif", ]
Affichage des données utilisées (Polygone, Quartier et étendue de la grille) :
library(mapsf)
mf_map(BD_POS, col = NA)
mf_map(BBOX, col = NA, add = TRUE)
mf_map(Quartier, col="red", add = TRUE)
mf_label(Quartier, var = "id")
Création grille régulière
Construction grille régulière de 100 x 100 m :
# Création grille vectorielle - objet sfc - POINTS
gridCenters <- st_make_grid(x = BBOX ,
cellsize = 100,
square = TRUE,
what = "centers")
# Ajout d'un attribut (identifiant) à l'objet sfc (= objet sf)
gridCenters <- st_sf(ID = 1:length(gridCenters), geom = gridCenters)
Affichage :
mf_map(gridCenters, col = "black", pch = 21)
mf_map(BD_POS, col = NA, add = TRUE)
mf_map(Quartier, border="red", col=NA, lwd=3, add = TRUE)
1. Homme
Sélection des polygones positifs dessinés par les Hommes (Perception.du.genre.dans.l.espace.public) :
BD_Homme <- BD_POS[ BD_POS$Perception.du.genre.dans.l.espace.public == "Homme", ]
Affichage des polygones considérés :
plot(st_geometry(BD_Homme))
plot(st_geometry(BBOX), add = TRUE)
plot(st_geometry(Quartier), border="red", col=NA, lwd=3 , add = TRUE)
Grid vs polygones
# Calcul des intersections grille - polygones
intersection_homme <- st_intersects(x = gridCenters,
y = BD_Homme,
sparse = TRUE)
# Ajout du nombre d'intersection détectés dans l'attribut "count"
gridCenters$count <- lengths(intersection_homme)
# Calcul pourcentage
gridCenters$pct <- gridCenters$count / length(unique(BD_Homme$Numéro.carte.mentale)) * 100
# gridCenters$pct[gridCenters$pct == 0] <- NA
Carte globale
mf_map(Quartier, border=NA, col=NA)
mf_map(gridCenters, type="choro", var="pct", breaks=c(0,10,20,30,40,50,60,70,80,90,100), pal = rev(hcl.colors(10, "YlOrRd")),leg_frame = TRUE, leg_bg = "white", add = TRUE)
mf_map(Quartier, border="black", lwd = 3,col=NA, add = TRUE)
Grid vs quartier
Quartier 1
intersection_quartier_1 <- st_intersects(x = Quartier[Quartier$id == 1,],
y = gridCenters,
sparse = TRUE)
extract_square_1 <- gridCenters[gridCenters$ID %in% intersection_quartier_1[[1]],]
Quartier 2
## Quartier 2
intersection_quartier_2 <- st_intersects(x = Quartier[Quartier$id == 2,],
y = gridCenters,
sparse = TRUE)
extract_square_2 <- gridCenters[gridCenters$ID %in% intersection_quartier_2[[1]],]
Quartier 3
## Quartier 3
intersection_quartier_3 <- st_intersects(x = Quartier[Quartier$id == 3,],
y = gridCenters,
sparse = TRUE)
extract_square_3 <- gridCenters[gridCenters$ID %in% intersection_quartier_3[[1]],]
Affichage
mf_map(Quartier, border=NA, col=NA)
mf_map(gridCenters, col = "black", pch = 21, add = TRUE)
mf_map(extract_square_3, border="red", col="red", add = TRUE)
mf_map(extract_square_2, border="red", col="red", add = TRUE)
mf_map(extract_square_1, border="red", col="red", add = TRUE)
mf_map(Quartier, border="black", lwd = 1,col=NA, add = TRUE)
mf_label(Quartier, var = "id", cex = 3)
Résultats
Moyenne par quartier :
print(paste0("Quartier 1 - Taux de prévalence moyen pour les hommes : ", mean(extract_square_1$pct), " %"))
[1] "Quartier 1 - Taux de prévalence moyen pour les hommes : 76.3618190904548 %"
print(paste0("Quartier 2 - Taux de prévalence moyen pour les hommes : ", mean(extract_square_2$pct), " %"))
[1] "Quartier 2 - Taux de prévalence moyen pour les hommes : 61.7405582922824 %"
print(paste0("Quartier 3 - Taux de prévalence moyen pour les hommes : ", mean(extract_square_3$pct), " %"))
[1] "Quartier 3 - Taux de prévalence moyen pour les hommes : 64.367816091954 %"
2. Femmes
Sélection des polygones positifs dessinés par les Femmes (Perception.du.genre.dans.l.espace.public) :
BD_Femme <- BD_POS[ BD_POS$Perception.du.genre.dans.l.espace.public == "Femme", ]
Affichage des polygones considérés :
plot(st_geometry(BD_Femme))
plot(st_geometry(BBOX), add = TRUE)
plot(st_geometry(Quartier), border="red", col=NA, lwd=3 , add = TRUE)
Grid vs polygones
# Calcul des intersections grille - polygones
intersection_femme <- st_intersects(x = gridCenters,
y = BD_Femme,
sparse = TRUE)
# Ajout du nombre d'intersection détectés dans l'attribut "count"
gridCenters$count <- lengths(intersection_femme)
# Calcul pourcentage
gridCenters$pct <- gridCenters$count / length(unique(BD_Femme$Numéro.carte.mentale)) * 100
# gridCenters$pct[gridCenters$pct == 0] <- NA
Carte globale
mf_map(Quartier, border=NA, col=NA)
mf_map(gridCenters, type="choro", var="pct", breaks=c(0,10,20,30,40,50,60,70,80,90,100), pal = rev(hcl.colors(10, "YlOrRd")),leg_frame = TRUE, leg_bg = "white", add = TRUE)
mf_map(Quartier, border="black", lwd = 3,col=NA, add = TRUE)
Grid vs quartier
Quartier 1
intersection_quartier_1 <- st_intersects(x = Quartier[Quartier$id == 1,],
y = gridCenters,
sparse = TRUE)
extract_square_1 <- gridCenters[gridCenters$ID %in% intersection_quartier_1[[1]],]
Quartier 2
## Quartier 2
intersection_quartier_2 <- st_intersects(x = Quartier[Quartier$id == 2,],
y = gridCenters,
sparse = TRUE)
extract_square_2 <- gridCenters[gridCenters$ID %in% intersection_quartier_2[[1]],]
Quartier 3
## Quartier 3
intersection_quartier_3 <- st_intersects(x = Quartier[Quartier$id == 3,],
y = gridCenters,
sparse = TRUE)
extract_square_3 <- gridCenters[gridCenters$ID %in% intersection_quartier_3[[1]],]
Affichage
mf_map(Quartier, border=NA, col=NA)
mf_map(gridCenters, col = "black", pch = 21, add = TRUE)
mf_map(extract_square_3, border="red", col="red", add = TRUE)
mf_map(extract_square_2, border="red", col="red", add = TRUE)
mf_map(extract_square_1, border="red", col="red", add = TRUE)
mf_map(Quartier, border="black", lwd = 1,col=NA, add = TRUE)
mf_label(Quartier, var = "id", cex = 3)
Résultats
Moyenne par quartier :
print(paste0("Quartier 1 - Taux de prévalence moyen pour les femmes : ", mean(extract_square_1$pct), " %"))
[1] "Quartier 1 - Taux de prévalence moyen pour les femmes : 76.6245909303413 %"
print(paste0("Quartier 2 - Taux de prévalence moyen pour les femmes : ", mean(extract_square_2$pct), " %"))
[1] "Quartier 2 - Taux de prévalence moyen pour les femmes : 49.1551459293395 %"
print(paste0("Quartier 3 - Taux de prévalence moyen pour les femmes : ", mean(extract_square_3$pct), " %"))
[1] "Quartier 3 - Taux de prévalence moyen pour les femmes : 30.2508960573477 %"
3. Non-binaire
Sélection des polygones positifs dessinés par les Non-binaire (Perception.du.genre.dans.l.espace.public) :
BD_Nbinaire <- BD_POS[ BD_POS$Perception.du.genre.dans.l.espace.public == "Non-binaire", ]
Affichage des polygones considérés :
plot(st_geometry(BD_Nbinaire))
plot(st_geometry(BBOX), add = TRUE)
plot(st_geometry(Quartier), border="red", col=NA, lwd=3 , add = TRUE)
Grid vs polygones
# Calcul des intersections grille - polygones
intersection_nbinaire <- st_intersects(x = gridCenters,
y = BD_Nbinaire,
sparse = TRUE)
# Ajout du nombre d'intersection détectés dans l'attribut "count"
gridCenters$count <- lengths(intersection_nbinaire)
# Calcul pourcentage
gridCenters$pct <- gridCenters$count / length(unique(BD_Nbinaire$Numéro.carte.mentale)) * 100
# gridCenters$pct[gridCenters$pct == 0] <- NA
Carte globale
mf_map(Quartier, border=NA, col=NA)
mf_map(gridCenters, type="choro", var="pct", breaks=c(0,10,20,30,40,50,60,70,80,90,100), pal = rev(hcl.colors(10, "YlOrRd")),leg_frame = TRUE, leg_bg = "white", add = TRUE)
mf_map(Quartier, border="black", lwd = 3,col=NA, add = TRUE)
Grid vs quartier
Quartier 1
intersection_quartier_1 <- st_intersects(x = Quartier[Quartier$id == 1,],
y = gridCenters,
sparse = TRUE)
extract_square_1 <- gridCenters[gridCenters$ID %in% intersection_quartier_1[[1]],]
Quartier 2
## Quartier 2
intersection_quartier_2 <- st_intersects(x = Quartier[Quartier$id == 2,],
y = gridCenters,
sparse = TRUE)
extract_square_2 <- gridCenters[gridCenters$ID %in% intersection_quartier_2[[1]],]
Quartier 3
## Quartier 3
intersection_quartier_3 <- st_intersects(x = Quartier[Quartier$id == 3,],
y = gridCenters,
sparse = TRUE)
extract_square_3 <- gridCenters[gridCenters$ID %in% intersection_quartier_3[[1]],]
Affichage
mf_map(Quartier, border=NA, col=NA)
mf_map(gridCenters, col = "black", pch = 21, add = TRUE)
mf_map(extract_square_3, border="red", col="red", add = TRUE)
mf_map(extract_square_2, border="red", col="red", add = TRUE)
mf_map(extract_square_1, border="red", col="red", add = TRUE)
mf_map(Quartier, border="black", lwd = 1,col=NA, add = TRUE)
mf_label(Quartier, var = "id", cex = 3)
Résultats
Moyenne par quartier :
print(paste0("Quartier 1 - Taux de prévalence moyen pour les non-binaire : ", mean(extract_square_1$pct), " %"))
[1] "Quartier 1 - Taux de prévalence moyen pour les non-binaire : 71.5942028985507 %"
print(paste0("Quartier 2 - Taux de prévalence moyen pour les non-binaire : ", mean(extract_square_2$pct), " %"))
[1] "Quartier 2 - Taux de prévalence moyen pour les non-binaire : 47.3333333333333 %"
print(paste0("Quartier 3 - Taux de prévalence moyen pour les non-binaire : ", mean(extract_square_3$pct), " %"))
[1] "Quartier 3 - Taux de prévalence moyen pour les non-binaire : 36.6222222222222 %"
4. Nat. Syrienne
Sélection des polygones positifs dessinés par les personnes de nationalité syrienne (Perception.du.genre.dans.l.espace.public) :
BD_syrien <- BD_POS[ BD_POS$Nationalité == "Syrienne", ]
Affichage des polygones considérés :
plot(st_geometry(BD_syrien))
plot(st_geometry(BBOX), add = TRUE)
plot(st_geometry(Quartier), border="red", col=NA, lwd=3 , add = TRUE)
Grid vs polygones
# Calcul des intersections grille - polygones
intersection_syrien <- st_intersects(x = gridCenters,
y = BD_syrien,
sparse = TRUE)
# Ajout du nombre d'intersection détectés dans l'attribut "count"
gridCenters$count <- lengths(intersection_syrien)
# Calcul pourcentage
gridCenters$pct <- gridCenters$count / length(unique(BD_syrien$Numéro.carte.mentale)) * 100
# gridCenters$pct[gridCenters$pct == 0] <- NA
Carte globale
mf_map(Quartier, border=NA, col=NA)
mf_map(gridCenters, type="choro", var="pct", breaks=c(0,10,20,30,40,50,60,70,80,90,100), pal = rev(hcl.colors(10, "YlOrRd")),leg_frame = TRUE, leg_bg = "white", add = TRUE)
mf_map(Quartier, border="black", lwd = 3,col=NA, add = TRUE)
Grid vs quartier
Quartier 1
intersection_quartier_1 <- st_intersects(x = Quartier[Quartier$id == 1,],
y = gridCenters,
sparse = TRUE)
extract_square_1 <- gridCenters[gridCenters$ID %in% intersection_quartier_1[[1]],]
Quartier 2
## Quartier 2
intersection_quartier_2 <- st_intersects(x = Quartier[Quartier$id == 2,],
y = gridCenters,
sparse = TRUE)
extract_square_2 <- gridCenters[gridCenters$ID %in% intersection_quartier_2[[1]],]
Quartier 3
## Quartier 3
intersection_quartier_3 <- st_intersects(x = Quartier[Quartier$id == 3,],
y = gridCenters,
sparse = TRUE)
extract_square_3 <- gridCenters[gridCenters$ID %in% intersection_quartier_3[[1]],]
Affichage
mf_map(Quartier, border=NA, col=NA)
mf_map(gridCenters, col = "black", pch = 21, add = TRUE)
mf_map(extract_square_3, border="red", col="red", add = TRUE)
mf_map(extract_square_2, border="red", col="red", add = TRUE)
mf_map(extract_square_1, border="red", col="red", add = TRUE)
mf_map(Quartier, border="black", lwd = 1,col=NA, add = TRUE)
mf_label(Quartier, var = "id", cex = 3)
Résultats
Moyenne par quartier :
print(paste0("Quartier 1 - Taux de prévalence moyen pour les syrien·nes : ", mean(extract_square_1$pct), " %"))
[1] "Quartier 1 - Taux de prévalence moyen pour les syrien·nes : 62.0553359683794 %"
print(paste0("Quartier 2 - Taux de prévalence moyen pour les syrien·nes : ", mean(extract_square_2$pct), " %"))
[1] "Quartier 2 - Taux de prévalence moyen pour les syrien·nes : 45.4545454545455 %"
print(paste0("Quartier 3 - Taux de prévalence moyen pour les syrien·nes : ", mean(extract_square_3$pct), " %"))
[1] "Quartier 3 - Taux de prévalence moyen pour les syrien·nes : 18.3838383838384 %"