wsj.
Analyse géospatiale

Priorisation géospatiale des communes pour un programme SSR, Haïti 2024

Une ONG doit choisir où ouvrir un programme de santé sexuelle et reproductive dans un pays de cent quarante communes. Trois fichiers publics permettent de retenir trente-huit communes et de tester la stabilité de cette sélection.

Commanditaire
Santé Commune Initiative, ONG fictive
Données
Réelles et publiques
Outils
QGIS 3.x, Python pour la vérification
Code
nah-yah/geospatial-ssr-haiti-2024
Sommaire

Sommaire

  1. Choix des communes
  2. Résultat national
  3. Les trois sources
  4. Population cible
  5. Compter les structures
  6. Seuils de priorisation
  7. Répartition des priorités
  8. Stabilité du classement
  9. Limites
  10. Reproduire

Choix des communes

Santé Commune Initiative, ONG fictive spécialisée en santé reproductive, prépare un programme couvrant quelques dizaines des cent quarante communes haïtiennes. Ses zones d'intervention, les recommandations de ses partenaires et la facilité d'accès décrivent son réseau et sa logistique. L'analyse mesure la demande de soins et retient les communes où une population cible nombreuse dispose de peu de structures de santé.

Résultat national

Trente-huit communes sur cent quarante réunissent les deux conditions. Elles abritent près de quatre femmes en âge de procréer sur dix et un cinquième des structures de santé recensées dans le pays.

38communes en priorité haute sur les 140 du pays
37,7 %de la population cible nationale y vit, soit 1 226 908 femmes
20,7 %des structures recensées s'y trouvent, soit 424 sur 2 051
10 sur 12communes du département du Centre y figurent
Carte des communes haïtiennes classées en priorité haute, moyenne et basse pour un programme de santé sexuelle et reproductive
Figure 1 La carte finale. Les communes rouges réunissent les deux conditions. Le nom apparaît pour les dix plus peuplées. Ouvrir la mise en page complète en PDF.

Ces trente-huit communes sont dispersées dans neuf départements sur dix. Le programme devra donc s'appuyer sur plusieurs antennes régionales.

Les trois sources

Les trois sources sont publiques et disponibles sur HDX. Les limites situent les communes, les données démographiques décrivent leur population et OpenStreetMap recense leurs structures de santé.

Sources utilisées pour la priorisation des communes
SourceJeuContenuLicence
OCHA COD-ABLimites administratives140 communes, 10 départementsCC BY-IGO
UNFPA COD-PSPopulation 2024 par sexe et âge17 tranches quinquennales par communeCC BY-IGO
HOT / OpenStreetMapStructures de santé2 073 points, extraction mai 2026ODbL

La population et les limites se rejoignent sur ADM2_PCODE, le code de commune partagé par les deux producteurs. Une jointure sur le nom aurait perdu 36 communes sur 140. Le shapefile écrit Petite Riviere de l'Artibonite et Cap-Haitien. Le CSV écrit Petite Rivière de l'Artibonite et Cap-Haïtien. Les noms non appariés produisent des cellules vides, ensuite interprétées comme des valeurs manquantes par la classification.

Les deux premières sources décrivent 11 899 555 habitants en 2024. Ces valeurs sont des projections démographiques fondées sur le dernier recensement haïtien, réalisé en 2003.

Population cible

Un programme SSR s'adresse d'abord aux femmes en âge de procréer, définies en santé publique comme celles de 15 à 49 ans. Cette population sert de dénominateur pour la contraception, le suivi prénatal, l'accouchement assisté et le suivi postnatal.

Cette colonne n'existe pas dans le COD-PS, qui publie des tranches de cinq ans. Elle se reconstitue en sommant les sept tranches féminines de F_15_19 à F_45_49, dans le Field Calculator de QGIS.

Reconstitution de la population cibleQGIS, Field Calculator
"hti_admpop_adm2_2024_F_15_19" +
"hti_admpop_adm2_2024_F_20_24" +
"hti_admpop_adm2_2024_F_25_29" +
"hti_admpop_adm2_2024_F_30_34" +
"hti_admpop_adm2_2024_F_35_39" +
"hti_admpop_adm2_2024_F_40_44" +
"hti_admpop_adm2_2024_F_45_49"

Le résultat donne 3 252 136 femmes de 15 à 49 ans, soit 27,3 % de la population du pays. La plus petite commune en compte 982, la plus grande 305 055.

Cette population constitue un proxy, à signaler au commanditaire pour éviter d'interpréter la carte comme un décompte de bénéficiaires. Un programme SSR complet concerne aussi les adolescentes de moins de 15 ans, les hommes et les survivantes de violences basées sur le genre. Faute de source harmonisée à l'échelle communale pour ces groupes, ils restent hors du critère.

Carte de la population féminine de 15 à 49 ans par commune haïtienne en 2024
Figure 2 La population cible, commune par commune. Classification en cinq classes par seuils naturels de Jenks.

Compter les structures

Le jeu HOT OSM donne 2 073 points de santé, chacun avec ses coordonnées. Les affecter à une commune se fait par Count Points in Polygon, qui compte pour chaque polygone les points qui tombent dedans.

Vingt-deux points hors des communes

Le comptage rattache 2 051 points sur 2 073. Les vingt-deux autres se trouvent hors de toute commune, surtout le long du littoral. Le trait de côte des limites administratives est généralisé. Le tracé plus détaillé d'OpenStreetMap place en mer certains dispensaires cartographiés au bord de l'eau.

La couche produite totalise 2 051 points sans signaler les vingt-deux exclus. La comparaison avec l'effectif de départ permet de les repérer. Ce contrôle accompagne chaque comptage de points dans des polygones.

Écart entre le code administratif et la position

Le fichier de points contient déjà une colonne adm2_pcode, remplie par le producteur. Son usage évite le calcul géométrique. Les deux méthodes divergent sur 56 communes, pour 136 points d'écart absolu.

Le comptage spatial a été retenu parce que la position d'un point se vérifie sur la carte. L'origine de la valeur administrative reste inconnue. L'écart doit être signalé, car le choix de la colonne produirait une autre liste de communes à partir du même fichier.

Couverture pour 10 000 femmes

Un décompte brut de structures désignerait les communes rurales, qui en ont peu parce qu'il y vit peu de monde. Le nombre de structures suit la population de très près, avec une corrélation de rang de 0,73. Le ratio exprime donc le nombre de structures relativement à la population cible.

Ratio de couvertureQGIS, Field Calculator
("nb_facilities" / "F_15_49") * 10000

Le ratio se lit comme un nombre de structures pour 10 000 femmes de 15 à 49 ans. Il vaut 0 à Tiburon, qui n'a aucun point recensé, et 122 à Gressier. La médiane nationale tombe à 4,54.

Carte de la couverture en structures de santé par commune, avec les points des structures recensées superposés
Figure 3 La couverture par commune, avec les 2 073 points superposés. Les communes les plus foncées sont les moins couvertes.

Seuils de priorisation

Les seuils retenus correspondent aux médianes nationales, soit 11 902 femmes de 15 à 49 ans et 4,54 structures pour 10 000. La médiane partage les communes en deux groupes sans constituer une norme sanitaire. Elle repose uniquement sur la distribution haïtienne. Sa valeur relative empêche toute comparaison directe avec le niveau d'équipement d'un autre pays.

La règle de priorisationQGIS, Field Calculator
CASE
  WHEN "F_15_49" > 11902 AND "ratio_infra" < 4.54 THEN 'Priorité haute'
  WHEN "F_15_49" > 11902 OR  "ratio_infra" < 4.54 THEN 'Priorité moyenne'
  ELSE 'Priorité basse'
END

Indépendance des critères

Le second critère apporte de l'information si la couverture varie indépendamment de la population. Une forte relation entre les deux rendrait le seuil de couverture redondant.

La corrélation de rang entre population cible et ratio de couverture vaut moins 0,02. La population d'une commune ne permet donc pas d'anticiper sa couverture. Le nuage occupe quatre quadrants et justifie le croisement des deux critères.

Nuage de points des 140 communes selon la population cible et la couverture, avec les deux seuils médians formant quatre quadrants
Figure 4 Les 140 communes dans le plan des deux critères. Le quadrant teinté en haut à gauche est la priorité haute. Trois communes y sont repérées parce que la règle les classe mal, chacune pour une raison différente.

Deux profils en priorité moyenne

Soixante-quatre communes obtiennent l'étiquette moyenne. Elles comprennent 32 communes peuplées et correctement dotées ainsi que 32 communes peu peuplées et mal dotées.

Une veille suffit dans les communes peuplées et correctement dotées. Dans les communes peu peuplées et mal dotées, la réponse peut prendre la forme d'une antenne mobile ou d'un appui à une structure existante. L'étiquette commune masque deux programmes distincts. Une prochaine version devrait nommer les quadrants séparément.

Répartition des priorités

Trente-huit communes relèvent de la priorité haute, soixante-quatre de la moyenne et trente-huit de la basse. Dans les 38 premières vivent 37,7 % de la population cible du pays, avec 20,7 % des structures recensées. Rapporté aux femmes de 15 à 49 ans, leur nombre de points de santé est deux fois inférieur à celui du reste du pays.

Écarts entre départements

Répartition des priorités par département
DépartementHauteMoyenneBasseCommunes
Centre102012
Ouest810220
Artibonite67215
Nord69419
Sud-Est36110
Sud211518
Grande'Anse14712
Nippes17311
Nord-Ouest14510
Nord-Est04913

Le Centre est le département le plus touché. Dix de ses douze communes sont en priorité haute et aucune en priorité basse. Seule Hinche figure parmi les dix premières par population. Un programme fondé sur le tableau des grandes communes n'y ouvrirait donc qu'une antenne.

L'Ouest apporte huit communes, dont les trois plus peuplées du classement. Le Nord-Est n'en apporte aucune.

Les dix communes les plus peuplées parmi les trente-huit

Dix communes prioritaires classées par population cible
CommuneDépartementFemmes 15-49StructuresPour 10 000
CarrefourOuest146 744583,95
Pétion-VilleOuest120 159524,33
Cité SoleilOuest86 828374,26
Port-de-PaixNord-Ouest62 937203,18
DessalinesArtibonite47 191163,39
Petit-GoâveOuest46 232204,33
HincheCentre43 101153,48
Petite Rivière de l'ArtiboniteArtibonite42 901143,26
Gros MorneArtibonite40 625143,45
VerrettesArtibonite38 984143,59

Ce tableau suit l'effectif de la population. Verrettes ferme la liste avec 38 984 femmes et un ratio de 3,59. Pétion-Ville compte 120 159 femmes avec un ratio de 4,33. Un tri par effectif reproduit la taille des communes et ne mesure pas la gravité du déficit.

Stabilité du classement

Trois tests déplacent les seuils, modifient la définition d'une structure de santé et examinent les erreurs de classement les plus visibles.

Sensibilité aux seuils

Les deux seuils ont été repris au 40e, 45e, 55e et 60e centile, et à la moyenne.

Sensibilité du classement aux seuils retenus
SeuilsPopulationRatioPriorité hauteCommunes qui changent de classe
40e centile10 1673,853326
45e centile10 8994,243414
Médiane, retenue11 9024,5438référence
55e centile12 9044,713914
60e centile14 3595,233724
Moyenne23 2306,782451

Selon le centile retenu, la priorité haute compte entre 33 et 39 communes. Un déplacement de dix centiles reclasse jusqu'à vingt-six communes.

Trente-cinq communes se tiennent à moins de 10 % de l'un des deux seuils. Pour celles-là, quelques centaines de femmes ou un point de santé supplémentaire suffisent à changer la classe. La carte à trois couleurs masque cette proximité. Une remise au commanditaire devrait donc représenter cette bande d'incertitude.

La moyenne subit fortement l'influence de Port-au-Prince et de ses 305 055 femmes. Elle place le seuil à 23 230 et ramène le nombre de communes retenues à 24. La médiane décrit mieux le centre de cette distribution asymétrique.

Définition des points de soins

Le jeu HOT OSM mélange sous une même étiquette de santé des objets très différents. Sur les 2 051 points rattachés à une commune, 646 sont des pharmacies, des cabinets dentaires ou des laboratoires, soit près d'un tiers. Aucun ne délivre de consultation prénatale ni de contraception.

Le comptage a donc été refait sur les seuls 1 405 points de soins, et les seuils recalculés sur cette base.

Comparaison de la couverture par quartile de densité, avec et sans les pharmacies, dentistes et laboratoires
Figure 5 La part des points hors soins varie avec la densité. Elle atteint 39 % dans le quartile de communes le plus dense et tombe à 11 % dans le deuxième.

Quatorze communes changent de classe. Cinq entrent en priorité haute, dont Port-au-Prince et Gonaïves, et quatre en sortent. Les pharmacies représentent 39 % des points dans les communes urbaines, contre 11 % dans le deuxième quartile de densité. Leur concentration augmente la couverture apparente des grandes communes et les place au-dessus du seuil.

Gonaïves présente l'écart le plus marqué. Parmi ses 81 points, 48 sont des pharmacies. Après filtrage, sa couverture passe de 7,31 à 2,98 et la commune traverse la médiane.

La version livrée conserve le comptage complet, car le filtrage exige un jugement sur des étiquettes OpenStreetMap inégalement renseignées. Ce test reste publié en raison de son effet. Il ajoute cinq communes, soit davantage que tout réglage de seuil testé.

Trois erreurs de classement

Gressier obtient le ratio le plus élevé du pays, 122 structures pour 10 000 femmes, soit près de trois fois la deuxième valeur. Le COD-PS lui attribue 3 987 habitants sur 89,5 km². La densité obtenue, 45 habitants au kilomètre carré, paraît invraisemblable pour une commune de la périphérie métropolitaine dont la médiane nationale atteint 347. Cette anomalie produit un ratio ininterprétable et place Gressier en priorité basse.

Tiburon ne compte aucune structure recensée pour 7 155 femmes de 15 à 49 ans. Elle est la seule commune du pays dans ce cas. Sa population reste sous le seuil de 11 902 et la place en priorité moyenne. La règle conjonctive exclut ainsi de la priorité haute une commune dépourvue de structure en raison de son effectif.

Port-au-Prince concentre la plus grande population cible du pays, 305 055 femmes, et reste en priorité moyenne avec un ratio de 5,44. Soixante de ses 166 points sont des pharmacies. Leur retrait ramène le ratio à 3,47 et place la commune en priorité haute.

Limites

Capacité des structures

Un hôpital de référence et un dispensaire d'une pièce pèsent chacun un point. La figure 5 attribue ainsi la meilleure couverture apparente au quartile de communes le plus rural, avec 9,73 contre 6,61 pour le plus urbain. Les petites structures sont nombreuses dans les zones rurales où vivent peu de femmes. Les villes concentrent davantage de femmes et des structures plus grandes. Le ratio ignore leur taille, leur personnel et leurs heures d'ouverture.

Effets des limites communales

Le comptage point dans polygone attribue une structure à la commune qui la contient. Une femme vivant à deux kilomètres d'un hôpital situé de l'autre côté de la limite est comptée comme non couverte. L'hôpital bénéficie alors à des voisines potentiellement plus éloignées. Cet effet compte particulièrement dans l'aire métropolitaine, où les limites communales coupent un tissu urbain continu.

La complétude d'OpenStreetMap varie

La cartographie haïtienne d'OpenStreetMap a été portée par la réponse au séisme de 2010, dont l'effort s'est concentré sur les zones urbaines et sur l'Ouest. Le déficit affiché dans une commune rurale peut donc provenir de structures existantes qui n'ont jamais été saisies.

Les chiffres de population sont des projections

Le COD-PS 2024 projette une structure d'âge établie sur un recensement de 2003, à travers vingt et un ans d'une démographie marquée par le séisme, le choléra et des déplacements internes massifs. Le cas de Gressier montre que ces projections peuvent produire des valeurs communales invraisemblables.

Accès effectif aux soins

La présence d'une structure dans une commune ne garantit pas son accessibilité. Un second travail mené pour la même ONG fictive mesure les temps de trajet sur le réseau routier réel dans l'étude accès aux soins obstétricaux d'urgence sous blocage routier.

Reproduire

Le projet tient dans un fichier QGIS, ssr-2024.qgz, et les données brutes se retéléchargent depuis HDX. Les étapes ci-dessous en donnent l'ordre.

Étapes de reproduction du projet QGIS
ÉtapeOpérationOutil QGIS
1Charger les communes et le CSV de populationAdd Vector Layer, Add Delimited Text Layer sans géométrie
2Joindre la population aux communesProperties, Joins, sur ADM2_PCODE
3Figer la jointureExport, Save Features As, GeoPackage
4Sommer les sept tranches fémininesField Calculator, champ F_15_49
5Compter les structures par communeCount Points in Polygon, champ nb_facilities
6Calculer le ratioField Calculator, champ ratio_infra
7Appliquer la règle de priorisationField Calculator, champ priorite, texte 20 caractères
8Symboliser et mettre en pageCategorized, Labels, New Print Layout

L'étape 3 est nécessaire. Les colonnes d'une jointure QGIS virtuelle apparaissent à l'écran sans être enregistrées dans le fichier. Le Field Calculator ne peut donc pas écrire un champ qui en dépend. L'export en GeoPackage matérialise ces colonnes.

L'étape 8 demande deux contrôles. Après un changement de variable, un clic sur Classify recalcule les seuils de classification. Sinon, la carte conserve les bornes de la variable précédente sous le nouveau titre. Dans l'expression qui filtre les étiquettes des dix communes, l'apostrophe de l'Artibonite doit être doublée en l''Artibonite pour empêcher la fermeture prématurée de l'expression.

Vérification indépendante

Une chaîne QGIS réalisée à la souris ne produit aucune trace exécutable et reste exposée aux erreurs de clic. Les trois nombres publiés ont donc été recalculés en Python à partir des mêmes fichiers sources. Le script refait la jointure, la somme des sept tranches, le comptage point dans polygone par lancer de rayon, le ratio et la règle. La répartition retombe sur 38, 64 et 38, et les médianes sur 11 901,5 et 4,5423.

Le script produit aussi les figures 4 et 5 et mesure les écarts rapportés plus haut, dont les vingt-deux points orphelins et l'effet du filtre sur les pharmacies. Une assertion vérifie l'égalité attendue. Si la source change et modifie la répartition, l'exécution s'arrête avant la production des figures.

Assertion de contrôledocs/geospatial-ssr/figures/documentation_figures.py
appliquer_style()
com = charger(a.donnees)

# Garde-fou : la page cite ces trois nombres, ils doivent tomber juste.
compte = com.priorite.value_counts()
attendu = (38, 64, 38)
obtenu = (compte["haute"], compte["moyenne"], compte["basse"])
assert obtenu == attendu, f"priorisation {obtenu}, attendu {attendu}"

Les cinq cartes du projet sortent du gestionnaire de mise en page de QGIS, en PNG à 300 dpi pour la lecture et en PDF vectoriel pour l'impression. Les deux graphiques de cette page sortent du script de vérification, qui relit les couches sans rien recalculer des cartes.