Dev Site — You are viewing the development build. Go to Main Site

  • English
  • Français
  1. 2 Assemblage et gestion des données
  2. 2.1 Utilisation des shapefiles
  3. Examiner les données du fichier shapefile
  • Bibliothèque de code pour l'adaptation infranationale
    Version française
  • 1 Pour commencer
    • 1.1 À propos et comment nous contacter
    • 1.2 Pour tous
    • 1.3 Pour l’équipe SNT
    • 1.4 Pour les analystes
    • 1.5 Produire des résultats de haute qualité
  • 2 Assemblage et gestion des données
    • 2.1 Utilisation des shapefiles
      • Aperçu des données spatiales
      • Examiner les données du fichier shapefile
      • Shapefile management and customization
      • Merge shapefile with excel
    • 2.2 Formations sanitaires
      • Health facility active/inactive status
      • Health facility coordinates
      • Master facility lists
    • 2.3 Données de cas de routine (DHIS2)
      • Health facility reporting rate
      • Outlier detection methods
      • Imputation of missing data
      • Final database
      • Data extraction from DHIS2
      • Import dataset
      • Outlier correction
      • Quality control/checks
    • 2.4 Données du stock
      • lmis
    • 2.5 Données démographiques
      • Données démographiques nationales
      • Raster de population WorldPop
    • 2.6 Enquêtes nationales auprès des ménages
      • DHS Data Overview and Preparation
      • All-Cause Child Mortality
      • Extraction of ITN ownership, access, and usage
      • Extracion of prevalence data
      • Calculation of treatment-seeking data
    • 2.7 Données entomologiques
    • 2.8 Données climatiques et environnementales
      • Extraction de données climatiques et environnementales à partir de données raster
    • 2.9 Données modélisées
      • Generating spatial modeled estimates
      • Travailler avec les estimations modélisées géospatiales
      • Modeled Estimates of Entomological Indicators
      • Mortality estimates from IHME
  • 3 Stratification
    • 3.1 Stratification épidémiologique
    • 3.2 Stratification des déterminants de la transmission du paludisme
  • 4 Revue des interventions passées
    • 4.1 Prise en charge des cas
    • 4.2 Interventions de routine
    • 4.3 Interventions de campagne
    • 4.4 Autres interventions
  • 5 Ciblage des interventions
  • 6 Analyse rétrospective
  • 7 Microstratification urbaine

On this page

  • Aperçu
  • Utilisation des shapefiles dans le contexte de SNT
    • Que sont les shapefiles ?
    • Où trouver des shapefiles pour SNT
  • Étape par étape
    • Étape 1 : Installer et charger les paquets
    • Étape 2 : Importer et préparer les shapefiles
    • Étape 3 : Examiner les données spatiales
    • Étape 4 : Visualiser le contenu du shapefile
    • Étape 5 : Superposer plusieurs niveaux administratifs
  • Résumé
  • Code complet
  1. 2 Assemblage et gestion des données
  2. 2.1 Utilisation des shapefiles
  3. Examiner les données du fichier shapefile

Examiner les données du fichier shapefile

Aperçu

Dans le contexte de l’adaptation au niveau infranational (SNT), il est essentiel de disposer de fichiers shapefile précis et à jour. Ces fichiers constituent la base permettant de relier les données aux unités géographiques. Cette page fournit un guide étape par étape sur la manière de charger et d’afficher efficacement les données shapefile.

Objectifs
  • Importer tous les composants du fichier de formes requis (.shp, .shx, .dbf)
  • Lire le fichier de formes dans un objet sf
  • Définir un système de référence de coordonnées (SRC) cohérent
  • Inspecter les attributs et la géométrie du fichier de formes
  • Créer des cartes de base à partir des données du fichier shapefile
  • Superposer plusieurs niveaux administratifs

Utilisation des shapefiles dans le contexte de SNT

Que sont les shapefiles ?

Les shapefiles comptent parmi les formats les plus couramment utilisés pour stocker des données vectorielles géospatiales. Ils peuvent représenter des entités géographiques telles que des points, des lignes et des polygones, ainsi que leurs attributs associés, ce qui les rend indispensables pour les applications de systèmes d’information géographique (SIG).

Bien que communément appelé “shapefile” ou “fichier de forme”, ce format est en réalité un ensemble de plusieurs fichiers qui fonctionnent ensemble. Les shapefiles peuvent inclure plusieurs types de fichiers, mais seuls trois sont essentiels pour SNT :

  • .shp – contient la géométrie réelle des entités spatiales
  • .shx – un fichier d’index qui relie la géométrie aux données d’attributs
  • .dbf – un fichier de base de données qui stocke les informations d’attributs pour chaque entité

Ces trois fichiers fonctionnent en parallèle, chaque enregistrement étant aligné par position, ce qui signifie que la première entrée du fichier .shp correspond à la première entrée des fichiers .shx et .dbf, et ainsi de suite. Il est important de noter que les fichiers .shp et .shx utilisent des champs avec des ordres d’octets (endianness) différents, ce qui nécessite une manipulation prudente lors de la lecture ou de la mise en œuvre de ces formats.

Le fichier .shp contient spécifiquement les données géométriques, chaque élément spatial étant représenté par un ensemble de coordonnées vectorielles. Le fichier commence par un en-tête de longueur fixe, suivi d’un ou plusieurs enregistrements de longueur variable, chacun composé d’un en-tête et d’une section de contenu.

Ressources supplémentaires pour en savoir plus sur les shapefiles :

  • Wikipedia : Format shapefile
  • Atelier sur la cartographie dans R
  • Guide Mapscaping sur les shapefiles

Où trouver des shapefiles pour SNT

Consultez l’équipe SNT

Avant de commencer toute analyse, ces shapefiles doivent être examinés et validés par l’équipe SNT et doivent représenter l’ensemble officiel des limites nationales. Cela garantit la conformité avec les normes nationales, l’exactitude des limites et évite les divergences dans les données spatiales.

À des fins SNT, seuls les shapefiles officiels partagés par l’équipe SNT doivent être utilisés, mais les shapefiles téléchargés à partir de sources externes peuvent être utiles pour des travaux non liés à SNT, pour l’apprentissage ou pour l’exploration générale des shapefiles. Si l’équipe SNT ne peut pas obtenir un ensemble officiel de shapefiles pour SNT, elle peut décider d’envisager une source publique. Toutefois, l’analyste ne doit pas utiliser les shapefiles téléchargés avant qu’ils aient été examinés et validés par l’équipe SNT.

Les sources permettant d’accéder aux shapefiles généraux sont les suivantes :

  • GADM : limites administratives mondiales
  • Humanitarian Data Exchange (HDX) : ensembles de données sur les limites humanitaires et administratives

Étape par étape

Dans cette section, nous vous guidons à travers les étapes essentielles pour charger et visualiser des données shapefile.

L’exemple utilise des shapefiles de limites administratives de la Sierra Leone, en mettant l’accent sur les niveaux de chefferie (adm3) et de district (adm2). Les principes peuvent être appliqués à des shapefiles de n’importe quel pays.

Pour ignorer l’explication étape par étape, passez directement au code complet à la fin de cette page.

Étape 1 : Installer et charger les paquets

Commencez par installer et/ou charger les paquets nécessaires au traitement des données spatiales, à la manipulation des données et à la visualisation. Ces bibliothèques fournissent des fonctions essentielles pour travailler avec des données spatiales.

  • R
  • Python

Le paquet sf est particulièrement important, car il implémente des normes simples pour le traitement des données vectorielles géographiques dans R.

# Installer `pacman` si ce n'est pas déjà fait
if (!requireNamespace("pacman", quietly = TRUE)) {
  install.packages("pacman")
}

# Charger les paquets requis à l'aide de pacman
pacman::p_load(
  sf,         # gestion des données vectorielles spatiales
  dplyr,      # manipulation des données
  ggplot2,    # construir des graphiques
  here        # gestion des chemins d'accès aux fichiers
)

Pour adapter le code :

  • Ne modifiez rien dans le code ci-dessus.

Étape 2 : Importer et préparer les shapefiles

Définissez les chemins d’accès aux composants de votre shapefile et importez-les en tant qu’objets spatiaux. Le chargement correct de tous les composants d’un shapefile et la configuration d’un système de référence de coordonnées cohérent garantissent une représentation spatiale précise et la compatibilité avec d’autres ensembles de données géospatiales.

  • R
  • Python
Montrer le code
#|

# Définir les chemins d'accès aux fichiers à l'aide de `here` pour garantir la reproductibilité
shapefile_shp <- here::here("english/data_r/shapefiles", "Chiefdom2021.shp")
shapefile_shx <- here::here("english/data_r/shapefiles", "Chiefdom2021.shx")
shapefile_dbf <- here::here("english/data_r/shapefiles", "Chiefdom2021.dbf")

# Niveau administratif 1 (par exemple, districts)
adm1_shapefile <- here::here("english/data_r/shapefiles", "District 2021.shp")

# Charger le shapefile chefferie dans un objet sf
gdf <- sf::st_read(shapefile_shp, quiet = TRUE)

# Charger le shapefile adm1
adm1_gdf <- sf::st_read(adm1_shapefile, quiet = TRUE)

# Définir le système de référence des coordonnées
sf::st_crs(gdf) <- 4326
sf::st_crs(adm1_gdf) <- 4326

Pour adapter le code :

  • Remplacez "english/data_r/shapefiles" par le nom du dossier ou sous-dossier dans lequel vos composants de shapefile sont enregistrés
  • Mettez à jour les noms de fichiers afin qu’ils correspondent aux noms spécifiques de vos shapefiles

Étape 3 : Examiner les données spatiales

Le code ci-dessous affiche les 10 premières lignes de votre ensemble de données spatiales, en indiquant à la fois les entités géographiques (telles que les polygones pour les zones administratives) et les données d’attributs associées (telles que les noms et les codes), ce qui vous aide à comprendre la structure et le contenu du shapefile avant de poursuivre l’analyse.

  • R
  • Python
# Afficher les 10 premières lignes de l'objet spatial
head(gdf, 10)
Sortie
Simple feature collection with 10 features and 6 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: -11.02525 ymin: 7.61446 xmax: -10.27056 ymax: 8.505881
Geodetic CRS:  WGS 84
   CCODE FIRST_REGI FIRST_RE_1 FIRST_DNAM FIRST_DCOD   FIRST_CHIE
1   1101    EASTERN          1   KAILAHUN          1          DEA
2   1102    EASTERN          1   KAILAHUN          1         JAHN
3   1103    EASTERN          1   KAILAHUN          1        JAWIE
4   1104    EASTERN          1   KAILAHUN          1   KISSI KAMA
5   1105    EASTERN          1   KAILAHUN          1   KISSI TENG
6   1106    EASTERN          1   KAILAHUN          1  KISSI TONGI
7   1107    EASTERN          1   KAILAHUN          1 KPEJE BONGRE
8   1108    EASTERN          1   KAILAHUN          1   KPEJE WEST
9   1109    EASTERN          1   KAILAHUN          1        LUAWA
10  1110    EASTERN          1   KAILAHUN          1       MALEMA
                         geometry
1  MULTIPOLYGON (((-10.66063 8...
2  MULTIPOLYGON (((-10.90197 8...
3  MULTIPOLYGON (((-10.80831 8...
4  MULTIPOLYGON (((-10.35814 8...
5  MULTIPOLYGON (((-10.31537 8...
6  MULTIPOLYGON (((-10.27389 8...
7  MULTIPOLYGON (((-10.73638 8...
8  MULTIPOLYGON (((-10.75001 8...
9  MULTIPOLYGON (((-10.455 8.3...
10 MULTIPOLYGON (((-10.72614 7...

Étape 4 : Visualiser le contenu du shapefile

Générez des cartes pour représenter visuellement vos données spatiales, en commençant par une carte de base d’un seul niveau administratif. La représentation visuelle permet de vérifier que votre shapefile s’est chargé correctement et vous offre une vue claire des limites géographiques. Ce code génère les limites administratives au niveau des chefferies (adm3) pour la Sierra Leone.

  • R
  • Python
Montrer le code
#|
# Visualiser le shapefile des chefferies
basic_map <- ggplot() +
  geom_sf(data = gdf, fill = "lightblue", color = "black") +
  theme_minimal() +
  theme(
    panel.grid = element_blank(),
    axis.title = element_blank(),
    axis.text = element_blank(),
    axis.ticks = element_blank()
  ) +
  labs(
    title = "Carte des chefferies de Sierra Leone (adm3)",
    subtitle = "Limites administratives de niveau 3"
  ) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 12)
  )

ggsave(
  filename = file.path(output_dir, "chiefdom_boundaries.png"),
  plot = basic_map,
  width = 10,
  height = 6
)

Pour adapter le code :

  • Ligne 23 : Veuillez mettre à jour le chemin d’accès au dossier de sortie afin qu’il corresponde à votre structure de dossiers.
  • Modifiez les paramètres color, fill et title ainsi que le style en fonction de vos besoins et de vos préférences.
Sortie

Vérifiez auprès de l’équipe SNT

Après avoir créé vos cartes des unités administratives, examinez-les avec l’équipe SNT afin de vous assurer qu’elles représentent fidèlement les unités opérationnelles pour la prise de décision. Cette étape de validation permet d’identifier tout problème lié aux shapefiles avant de poursuivre l’analyse.

Étape 5 : Superposer plusieurs niveaux administratifs

  • R
  • Python

Pour ajouter les limites adm2 à la carte de l’étape 4, superposez les lignes adm2 sans fill, comme indiqué à la ligne 4 ci-dessous. Nous ajoutons également les noms adm2 à la carte afin d’identifier clairement les districts.

Montrer le code
# Superposition des limites des districts et des chefferies
overlay_map <- ggplot() +
  geom_sf(data = gdf, fill = "lightblue", color = "black") +
  geom_sf(data = adm1_gdf, fill = NA, color = "black", linewidth = 1.0) +
  geom_sf_text(data = adm1_gdf, aes(label = FIRST_DNAM), size = 3) +
  theme_minimal() +
  theme(
    panel.grid = element_blank(),
    axis.title = element_blank(),
    axis.text = element_blank(),
    axis.ticks = element_blank()
  ) +
  labs(
    title = "Superposition des limites administratives de la Sierra Leone",
    subtitle = "Districts (adm2) et chefferies (adm3)"
  ) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 12)
  )

ggsave(
  filename = file.path(output_dir, "overlay_district_chiefdom.png"),
  plot = overlay_map,
  width = 8,
  height = 6
)

Pour adapter le code :

  • Modifiez color, fill, title et le style en fonction de vos besoins et de vos préférences
  • Si vous avez plus de deux niveaux administratifs, vous pouvez ajouter des couches geom_sf() supplémentaires
  • Vous devrez peut-être ajuster le paramètre label dans geom_sf_text() pour qu’il corresponde à la colonne de vos données contenant les noms
Sortie

Résumé

Nous avons maintenant abordé les étapes essentielles pour lire et visualiser des shapefiles géospatiales en R à l’aide du package sf. Cela comprenait :

  1. La configuration de l’environnement nécessaire avec les packages de données spatiales
  2. L’importation des shapefiles et la configuration des systèmes de référence de coordonnées
  3. L’examen de la structure des données spatiales
  4. La création de cartes de base et de superposition des limites administratives

Ces étapes constituent la base d’une analyse et d’une visualisation spatiales plus avancées.

Vérifiez auprès de l’équipe SNT

Avant de poursuivre l’analyse, veuillez partager vos cartes de shapefile avec l’équipe SNT pour validation. L’équipe s’assurera que :

  1. Les shapefiles représentent fidèlement les limites administratives actuelles
  2. Les limites correspondent aux unités opérationnelles utilisées pour la prise de décision
  3. Il n’y a pas de divergences entre les données des shapefiles et les limites officielles
  4. Toutes les décisions relatives à la cartographie (couleurs, libellés, symbologie) sont conformes aux normes du programme

Cette étape de validation est essentielle pour garantir l’intégrité des données tout au long du processus SNT.

Code complet

  • R
  • Python

Veuillez trouver ci-dessous le code complet pour afficher les données des shapefiles.

Montrer le code
# ----------------------------------
# Étape 1 : Configurer l'environnement
# ----------------------------------

if (!requireNamespace("pacman", quietly = TRUE)) {
  install.packages("pacman")
}

pacman::p_load(
  sf,
  dplyr,
  ggplot2,
  here
)

# ----------------------------------------------
# Étape 2 : Importer et préparer les shapefiles
#-----------------------------------------------

# Définir les chemins d'accès aux fichiers à l'aide de `here` pour garantir la reproductibilité
shapefile_shp <- here::here("english/data_r/shapefiles", "Chiefdom2021.shp")
shapefile_shx <- here::here("english/data_r/shapefiles", "Chiefdom2021.shx")
shapefile_dbf <- here::here("english/data_r/shapefiles", "Chiefdom2021.dbf")

# Niveau administratif 1 (par exemple, districts)
adm1_shapefile <- here::here("english/data_r/shapefiles", "District 2021.shp")

# Charger le shapefile chefferie dans un objet sf
gdf <- sf::st_read(shapefile_shp, quiet = TRUE)

# Charger le shapefile adm1
adm1_gdf <- sf::st_read(adm1_shapefile, quiet = TRUE)

# Définir le système de référence des coordonnées
sf::st_crs(gdf) <- 4326
sf::st_crs(adm1_gdf) <- 4326

# --------------------------------------------------
# Étape 3 : Examiner les données spatiales
# --------------------------------------------------

# Afficher les 10 premières lignes de l'objet spatial
head(gdf, 10)

# --------------------------------------------------
# Étape 4 : Visualiser le contenu du shapefile
# --------------------------------------------------

# Créer un dossier de sortie s'il n'existe pas
output_dir <- here::here("english/library/data/shapefiles/Shapefile outputs/")
if (!dir.exists(output_dir)) dir.create(output_dir)

# Visualiser le shapefile des chefferies
basic_map <- ggplot() +
  geom_sf(data = gdf, fill = "lightblue", color = "black") +
  theme_minimal() +
  theme(
    panel.grid = element_blank(),
    axis.title = element_blank(),
    axis.text = element_blank(),
    axis.ticks = element_blank()
  ) +
  labs(
    title = "Carte des chefferies de Sierra Leone (adm3)",
    subtitle = "Limites administratives de niveau 3"
  ) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 12)
  )

ggsave(
  filename = file.path(output_dir, "chiefdom_boundaries.png"),
  plot = basic_map,
  width = 10,
  height = 6
)

# --------------------------------------------------
# Étape 5 : Superposer plusieurs niveaux administratifs
# --------------------------------------------------

# Superposition des limites des districts et des chefferies
overlay_map <- ggplot() +
  geom_sf(data = gdf, fill = "lightblue", color = "black") +
  geom_sf(data = adm1_gdf, fill = NA, color = "black", linewidth = 1.0) +
  geom_sf_text(data = adm1_gdf, aes(label = FIRST_DNAM), size = 3) +
  theme_minimal() +
  theme(
    panel.grid = element_blank(),
    axis.title = element_blank(),
    axis.text = element_blank(),
    axis.ticks = element_blank()
  ) +
  labs(
    title = "Superposition des limites administratives de la Sierra Leone",
    subtitle = "Districts (adm2) et chefferies (adm3)"
  ) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 12)
  )

ggsave(
  filename = file.path(output_dir, "overlay_district_chiefdom.png"),
  plot = overlay_map,
  width = 8,
  height = 6
)
 

©2025 Applied Health Analytics for Delivery and Innovation. All rights reserved