Calculer le temps de trajet entre des origines et des destinations avec la matrice de coût OD

Disponible avec une licence Network Analyst.

Le solveur de matrice de coût origine-destination (OD) recherche et mesure les chemins de moindre coût le long du réseau, de plusieurs origines à plusieurs destinations. Le meilleur chemin sur le réseau de transport est calculé pour chaque paire origine-destination. Les temps de déplacement et les distances à parcourir sont stockés sous forme d’attributs des lignes en sortie. Dans ce didacticiel, vous allez vous servir de cet outil pour créer une matrice de coût OD indiquant le temps de déplacement entre les patients et les hôpitaux. À partir des résultats, vous identifierez les patients qui ont un accès médiocre aux hôpitaux.

Remarque :
Vous pouvez suivre ce didacticiel en utilisant comme source de données réseau le jeu de données réseau désigné du didacticiel, ArcGIS Online ou un service de calcul d’itinéraire ArcGIS Enterprise publié avec un jeu de données réseau qui couvre la zone géographique des données en entrée de l’analyse. Si vous utilisez ArcGIS Online, des crédits sont utilisés. En savoir plus sur l'analyse de réseau à l'aide d'un service.

Obtenir les données

Les données de ce didacticiel sont disponibles au téléchargement.

  1. Accédez à la page de téléchargement des données.
  2. Cliquez sur le bouton Download (Télécharger) et enregistrez le fichier localement.
  3. Décompressez le fichier téléchargé.

Créer une carte

Pour créer une carte, procédez comme suit :

  1. Démarrez ArcGIS Pro.
  2. Créez un nouveau projet en cliquant sur le modèle Map (Carte). Si vous le souhaitez, vous pouvez modifier le nom de votre projet et son emplacement.

    Un nouveau projet avec une carte apparaît.

Ajouter les données du didacticiel au projet

Un jeu de données réseau modélise l’infrastructure routière. Il contient non seulement l'emplacement et les attributs des routes, mais également des informations sur les relations qui les unissent, indiquant, par exemple, quelles routes sont connectées et quels tournants entre des routes connectées sont autorisés ou interdits. En outre, il propose d'autres données ayant une incidence sur les itinéraires de déplacement possibles et sur la durée du trajet. Le solveur de matrice de coût OD se réfère au jeu de données réseau pour calculer le temps de déplacement ou la distance entre les origines et les destinations.

Remarque :
Si vous effectuez une analyse à l’aide de ArcGIS Online, le solveur fait référence à un jeu de données réseau mondial de haute qualité stocké sur le cloud ArcGIS Online et utilise des crédits ArcGIS Online. Vous pouvez également utiliser votre propre jeu de données réseau stocké localement sur votre machine ou vous appuyer sur ArcGIS Enterprise pour publier des services de calcul d’itinéraire utilisant votre propre jeu de données réseau et configurer ces services avec votre portail d’entreprise afin de les utiliser depuis ArcGIS Pro.

Suivez les étapes ci-dessous pour ajouter un jeu de données réseau à la carte.

  1. Dans la fenêtre Catalog (Catalogue), qui se trouve par défaut sur le côté droit de l’application, cliquez avec le bouton droit sur Folders (Dossiers) et choisissez Add Folder Connection (Ajouter la connexion au dossier) Ajouter la connexion au dossier.

    La boîte de dialogue Ajouter la connexion au dossier apparaît.

  2. Accédez au dossier dans lequel vous avez placé les données du didacticiel, double-cliquez sur Network Analyst, puis cliquez sur Didacticiel pour sélectionner le dossier.
  3. Cliquez sur OK.

    Une connexion au dossier Didacticiel est créée.

  4. Ensuite, ajoutez à la carte l'un des jeux de données réseau contenus dans le dossier.

    Remarque :

    Vous n'avez pas besoin d'ajouter le jeu de données réseau à la carte si vous avez l'intention d'utiliser ArcGIS Online ou un service de calcul d’itinéraire ArcGIS Enterprise comme source de données réseau.

  5. Dans la fenêtre Catalogue, développez Dossiers > Didacticiel > SanFrancisco.gdb > Transportation.
  6. Faites glisser Streets_ND, signalé par l’icône de jeu de données réseau Jeu de données réseau, jusqu’à la carte.

    Le jeu de données réseau est ajouté à la fenêtre Contents (Contenu) et à la carte.

  7. Dans la fenêtre Catalogue, accédez à Didacticiel > SanFrancisco.gdb > Analyse.
  8. Cliquez avec le bouton droit sur la couche Patients et sélectionnez Add to Current Map (Ajouter à la carte actuelle)Ajouter des données.

    La couche Patients est ajoutée à la fenêtre Contents (Contenu) et à la carte.

  9. Cliquez avec le bouton droit sur la couche Hospitals (Hôpitaux) et sélectionnez Add to Current Map (Ajouter à la carte actuelle)Ajouter des données.

    La couche Hospitals est ajoutée à la fenêtre Contents (Contenu) et à la carte.

Créer une matrice de coût OD entre les patients et les hôpitaux

Dans cette section, vous allez effectuer une analyse de matrice de coût OD pour calculer le temps de trajet entre chaque patient et chaque hôpital. Vous créerez la couche de matrice de coût OD, chargerez les patients en tant qu’origines et les hôpitaux en tant que destinations, résoudrez l’analyse, puis examinerez les résultats.

Créer la couche de matrice de coût OD

La couche d’analyse de matrice de coût OD stocke l’ensemble des entrées, des paramètres et des résultats d’une analyse de matrice de coût OD.

  1. Sous l’onglet Analysis (Analyse), dans le groupe Workflows (Processus), cliquez sur Network Analysis (Analyse du réseau) > Origin-Destination Cost Matrix (Matrice de coût origine-destination) Matrice de coût OD.

    La matrice de coût OD est ajoutée dans la fenêtre Contenu. Elle comprend plusieurs sous-couches contenant les entrées et sorties de l'analyse.

    La couche de matrice de coût OD se réfère au jeu de données réseau San Francisco, car ce réseau a été défini comme source de données réseau de la carte lors de la création de la couche.

    Remarque :
    Pour voir ou modifier la source de données réseau qui servira à créer la couche d’analyse du réseau, sous l’onglet Analysis (Analyse), dans le groupe Workflows (Processus), vous pouvez cliquer sur la flèche de la liste déroulante Network Analysis (Analyse du réseau) et consulter l’option Network Data Source (Source de données réseau). La modification de cette valeur n’a pas d’incidence sur la source de données réseau des couches d’analyse réseau existantes ; seules les couches d’analyse réseau créées après la source de données réseau sont mises à jour.
  2. Dans la fenêtre Contenu, cliquez sur Matrice de coût OD pour sélectionner le groupe de couches.

    L’onglet OD Cost Matrix Layer (Couche de matrice de coût OD) apparaît.

  3. Cliquez sur l'onglet OD Cost Matrix Layer (Couche de matrice de coût OD) pour afficher les options de cet onglet.
    Onglet OD Cost Matrix Layer (Couche de matrice de coût OD)

    Vous allez vous servir de ces contrôles pour configurer les paramètres de la matrice de coût OD que vous souhaitez générer.

    Conseil :

    L’onglet OD Cost Matrix Layer (Couche de matrice de coût OD) apparaît uniquement lorsque vous sélectionnez la couche de matrice de coût OD ou l’une de ses sous-couches dans la fenêtre Contents (Contenu). De plus, si vous disposez de plusieurs couches de matrice de coût OD, vous pouvez modifier les paramètres des couches individuellement ou sélectionner plusieurs couches afin de modifier les paramètres de toutes les couches sélectionnées si elles partagent la même source de données réseau.

  4. Sur l’onglet OD Cost Matrix Layer (Couche de matrice de coût OD), dans le groupe Travel Settings (Paramètres de déplacement), vérifiez que Driving Time (Temps de trajet) est sélectionné pour Mode.

    Cette matrice de coût OD calculera le temps de trajet entre les origines et les destinations.

    Plus d’informations sur les modes de déplacement

Ajouter des origines

L’objectif étant de calculer le temps de trajet entre les patients et les hôpitaux, vous allez utiliser la classe d’entités Patients comme origines pour la matrice de coût OD. Pour ce faire, vous devez charger les données de la classe d’entités Patients dans la sous-couche Origins (Origines) de la couche de matrice de coût OD.

  1. Sur l’onglet OD Cost Matrix Layer (Couche de matrice de coût OD), dans le groupe Input Data (Données en entrée), cliquez sur Import Origins (Importer des origines) Importer des origines.

    La fenêtre Add Locations (Ajouter des emplacements) apparaît.

  2. Vérifiez que l'option Couche d'analyse de réseau en entrée est définie sur Matrice de coût OD et Sous-couche sur Origines.
  3. Cliquez sur le menu déroulant sous Input Locations (Emplacements en entrée) et sélectionnez Patients.
  4. Sous Field Mappings (Appariements de champs), sélectionnez Name (Nom) et définissez Field Name (Nom du champ) sur PatientID.

    Utilisez Field Mappings (Appariements de champs) pour transférer les valeurs de champs des données en entrée vers les champs de la structure de la couche d’analyse de réseau. En appariant le champ PatientID avec la propriété Name (Nom) de la sous-couche Origins (Origines), vous pouvez utiliser les valeurs du champ Name par la suite pour joindre en retour les résultats de la matrice de coût OD aux données en entrée d’origine.

    Conseil :

    Le champ PatientID de la classe d’entités Patients est un champ de texte ; il en va de même pour le champ Name de la sous-couche Origins (Origines). Par conséquent, si vous renseignez le champ Name avec les valeurs de PatientID, vous pouvez joindre en retour les valeurs de la table Origins (Origines) à la classe d’entités Patients d’origine. Cependant, si vos données sont associées à l’identifiant unique d’un autre type de données, les jointures à partir du champ Name Origins (Origines) ne fonctionneront pas, car le type de données des champs ne correspondra pas.

    Vous pouvez transférer n’importe quel champ de la classe d’entités en entrée vers une sous-couche de la couche d’analyse de réseau, ce qui est souvent utile dans le cas des jointures :

    1. Utilisez l’outil Ajouter un champ à la couche d’analyse pour ajouter un champ à la sous-couche de la couche d’analyse de réseau.
    2. Lors du chargement de données en entrée avec l’outil Ajouter des localisations, utilisez les appariements de champ pour apparier les champs des données en entrée avec les champs que vous avez ajoutés à l’étape précédente.
    3. Une fois l’analyse terminée, utilisez les champs ajoutés pour les jointures ou d’autres étapes d’analyse.

  5. Conservez les valeurs par défaut des autres paramètres et cliquez sur le bouton OK.

    Dix patients se chargent en tant qu’origines.

Ajouter des destinations

L’objectif étant de calculer le temps de trajet entre les patients et les hôpitaux, vous allez utiliser la classe d’entités Hospitals (Hôpitaux) comme destinations pour la matrice de coût OD. Pour ce faire, vous devez charger les données de la classe d’entités Hospitals (Hôpitaux) dans la sous-couche Destinations de la couche de matrice de coût OD.

  1. Sur l’onglet OD Cost Matrix Layer (Couche de matrice de coût OD), dans le groupe Input Data (Données en entrée), cliquez sur Import Destinations (Importer des destinations) Importer des destinations.

    La fenêtre Add Locations (Ajouter des emplacements) apparaît.

  2. Vérifiez que l'option Couche d'analyse de réseau en entrée est définie sur Matrice de coût OD et Sous-couche sur Destinations.
  3. Cliquez sur le menu déroulant sous Emplacements en entrée et choisissez Hôpitaux.
  4. Sous Field Mappings (Appariements de champs), sélectionnez la propriété Name (Nom) et vérifiez que le champ NAME de la classe d’entités Hospitals (Hôpitaux) en entrée a été apparié avec cette propriété.

    Utilisez Field Mappings (Appariements de champs) pour transférer les valeurs de champs des données en entrée vers les champs de la structure de la couche d’analyse de réseau.

  5. Conservez les valeurs par défaut des autres paramètres et cliquez sur le bouton OK.

    Vingt-deux hôpitaux se chargent en tant que destinations.

Exécuter l'analyse pour créer la matrice de coût OD

Pour exécuter l’analyse, effectuez les étapes suivantes :

  1. Sur l’onglet OD Cost Matrix Layer (Couche de matrice de coût OD), cliquez sur Run (Exécuter) Exécuter.

    Une fois l'analyse terminée, des lignes origine-destination apparaissent sur la carte. Une ligne droite apparaît entre chaque origine et chaque destination. Bien que les lignes soient droites, les temps de trajet, que vous examinerez par la suite, ont été calculés en suivant le trajet le long du réseau routier.

  2. Dans la fenêtre Contents (Contenu), développez la couche de groupe OD Cost Matrix (Matrice de coût OD) si ce n’est pas déjà fait.
  3. Cliquez avec le bouton droit sur la sous-couche OD Cost Matrix:Lines (Matrice de coût OD : lignes) et cliquez sur Attribute Table (Table attributaire).

    La table attributaire de la sous-couche Lines (Lignes) représente la matrice de coût origine-destination entre chaque patient et chaque hôpital. Chaque ligne de la table représente une paire origine-destination. Le champ Total_TravelTime indique le temps de trajet en minutes entre chaque origine et chaque destination, car le mode de déplacement Driving Time (Temps de trajet) employé pour l’analyse utilise l’attribut de coût TravelTime, dont les unités sont la minute. Les autres champs dont le nom commence par Total_ sont associés aux autres attributs de coût du jeu de données réseau qui n’ont pas été utilisés dans cette analyse.

    En savoir plus sur la structure d’une couche de matrice de coût OD

  4. Fermez la table attributaire.

Identifier les patients qui ont un accès médiocre aux hôpitaux

Une matrice de coût OD est souvent employée lors de l’étude de l’accès aux destinations. Dans la prochaine partie de ce didacticiel, vous allez identifier les patients dont le temps de trajet jusqu’à un hôpital est supérieur à 10 minutes et mettrez à jour un champ de la classe d’entités Patients à partir de ces informations. Vous résoudrez la couche de matrice de coût OD avec les paramètres mis à jour et utiliserez des jointures pour transférer en retour les résultats vers la classe d’entités Patients.

Mettre à jour les paramètres d’analyse et effectuer une nouvelle résolution

La matrice de coût OD précédente incluait le temps de trajet de chaque patient par rapport à chaque hôpital. Pour cette analyse, vous allez mettre à jour les paramètres de la couche de matrice de coût OD de façon à limiter les résultats à l’hôpital le plus proche pour chaque patient, avec un temps de trajet qui ne dépasse pas 10 minutes.

  1. Sur l’onglet OD Cost Matrix Layer (Couche de matrice de coût OD), dans le groupe Travel Settings (Paramètres de déplacement), défnissez la zone de texte Destinations sur 1.

    Ce paramètre limite le nombre de destinations à rechercher pour chaque origine. Les résultats de la matrice de coût OD incluront le temps de trajet jusqu’à l’hôpital le plus proche pour chaque patient, et non le temps de trajet pour tous les hôpitaux.

  2. Sur l’onglet OD Cost Matrix Layer (Couche de matrice de coût OD), dans le groupe Travel Settings (Paramètres de déplacement), définissez la zone de texte Cutoff (Limite) sur 10.

    Ce paramètre limite les résultats de façon à inclure uniquement les enregistrements pour lesquels le temps de trajet du patient jusqu’à l’hôpital est inférieur ou égal à la limite de temps spécifiée.

    Le mode de trajet Driving Time (Temps de trajet) utilise l’attribut de coût TravelTime (Temps de trajet), exprimé en minutes. De ce fait, la valeur Cutoff (Limite) est interprétée en minutes.

    En savoir plus sur l’attribut de coût

  3. Sur l’onglet OD Cost Matrix Layer (Couche de matrice de coût OD), cliquez sur Run (Exécuter) Exécuter pour résoudre une nouvelle fois l’analyse.

    À l’issue de la résolution, les lignes figurant sur la carte sont moins nombreuses que précédemment du fait des limites imposées. Vous noterez également que l’outil Résoudre a renvoyé des messages d’avertissement indiquant qu’une solution partielle est générée, car aucune destination n’a été trouvée pour deux origines. En effet, le solveur n’a trouvé aucune destination (hôpital) à 10 minutes ou moins de temps de trajet (valeur limite) pour ces deux origines (patients).

  4. Cliquez avec le bouton droit sur la sous-couche OD Cost Matrix:Lines (Matrice de coût OD : lignes) et cliquez sur Attribute Table (Table attributaire).

    Une seule ligne figure dans la table pour chaque origine. Il n’existe pas de ligne pour les deux origines indiquées dans les messages d’avertissement, car elles n’étaient connectées à aucune destination.

  5. Fermez la table attributaire.

Joindre les résultats de la matrice de coût OD aux données d’origine

L’objectif de l’analyse est d’identifier les patients qui ont un accès médiocre aux hôpitaux. Dans cette section, vous allez joindre les résultats de l’analyse de la matrice de coût OD à la classe d’entités Patients et calculer un champ pour marquer les patients dont le temps de trajet jusqu’à un hôpital est supérieur à 10 minutes.

    Tout d’abord, joignez les données de la sous-couche Lines (Lignes) à la sous-couche Origins (Origines) pour associer le temps de trajet calculé à chaque origine.
  1. Cliquez avec le bouton droit sur la sous-couche OD Cost Matrix:Origins (Matrice de coût OD : origines) et cliquez sur Joins and Relates (Jointures et relations) > Add Join (Ajouter une jointure).

    L’outil Ajouter une jointure apparaît.

  2. Vérifiez que le paramètre Input Table (Table en entrée) est défini sur Origines (Origines).
  3. Définissez le paramètre Input Field (Champ en entrée) sur ObjectID.
  4. Définissez le paramètre Join Table (Table de jointure) sur OD Cost Matrix\Lines (Matrice de coût OD\Lignes).
  5. Définissez le paramètre Join Field (Champ de jointure) sur OriginID.

    Le champ OriginID de la sous-couche Lines (Lignes) correspond au champ ObjectID de la sous-couche Origins (Origines). Par conséquent, il peut être utilisé pour les jointures.

    Boîte de dialogue de l’outil Ajouter une jointure

  6. Conservez les valeurs par défaut des autres paramètres et cliquez sur le bouton OK.

    Les données de la sous-couche Lines (Lignes) sont jointes à la sous-couche Origins (Origines).

  7. Cliquez avec le bouton droit sur la sous-couche OD Cost Matrix:Lines (Matrice de coût OD : origines) et cliquez sur Attribute Table (Table attributaire).

    La table attributaire de la sous-couche Origines (Origines) comporte les données jointes de la sous-couche Lines (Lignes).

  8. Recherchez le champ Total_TravelTime et examinez les valeurs.

    Pour deux origines, la valeur de ce champ est nulle, car aucun enregistrement de la sous-couche Lines (Lignes) n’a été associé à ces origines. Il s’agit des patients dont le temps de trajet jusqu’à un hôpital dépasse la limite de 10 minutes.

  9. Fermez la table attributaire.
  10. Ensuite, joignez les données de la sous-couche Origins (Origines) à la couche Patients qui a été utilisée en entrée pour l’analyse de la matrice de coût OD. Cela vous permet de transférer les temps de trajet calculés et d’identifier les patients qui n’ont pas pu parvenir à un hôpital dans la limite du temps de trajet.
  11. Cliquez avec le bouton droit sur la couche Patients et cliquez sur Joins and Relates (Jointures et relations) > Add Join (Ajouter une jointure).

    L’outil Ajouter une jointure apparaît.

  12. Vérifiez que le paramètre Input Table (Table en entrée) est défini sur Patients.
  13. Définissez le paramètre Input Field (Champ en entrée) sur PatientID.
  14. Définissez le paramètre Join Table (Table de jointure) sur OD Cost Matrix\Origins (Matrice de coût OD\Origines).
  15. Définissez le paramètre Join Field (Champ de jointure) sur Name.

    Attention :
    La table jointe Origins (Origines) comporte deux champs appelés Name. L’un provient de la sous-couche Origins (Origines), et l’autre est un champ joint issu de la sous-couche Lines (Lignes). Utilisez le champ Name de la sous-couche Origins (Origines). Dans la liste des champs figurant dans le paramètre Join Field (Champ de jointure), un champ peut s’accompagner de texte supplémentaire indiquant la table dont il provient. Ce texte est le nom de classe d’entités automatiquement généré pour la sous-couche Origins (Origines), qui est généralement le texte Origins suivi de caractères aléatoires.

    Sachant que vous avez apparié le champ PatientID avec le champ Name de la sous-couche Origins (Origines), les valeurs peuvent être utilisées pour les jointures.

    Boîte de dialogue de l’outil Ajouter une jointure

  16. Conservez les valeurs par défaut des autres paramètres et cliquez sur le bouton OK.

    Les données de la matrice de coût OD sont jointes à la couche Patients.

  17. Pour finir, examinez la couche Patients et identifiez les patients dont le temps de trajet jusqu’à un hôpital est supérieure à 10 minutes.
  18. Cliquez avec le bouton droit sur la couche Patients et cliquez sur Attribute Table (Table attributaire).

    Les données combinées des sous-couches Lines (Lignes) et Origins (Origines) de la couche de matrice de coût OD sont incluses dans la table attributaire Patients.

  19. Recherchez le champ Total_TravelTime et examinez les valeurs.

    Comme vous avez pu le constater après avoir joint la sous-couche Lines (Lignes) à la sous-couche Origins (Origines), deux lignes de la table Patients ont un champ Total_TravelTime de valeur nulle, car aucun hôpital n’est accessible dans la limite de 10 minutes. Il s’agit des patients qui pâtissent d’un accès médiocre aux hôpitaux et qu’il convient de marquer à des fins de suivi.

  20. Sous l’onglet Map (Carte), dans le groupe Sélection (Sélection), cliquez sur le bouton Select By Attributes (Sélectionner selon les attributs) Sélectionner selon les attributs.
  21. Définissez le paramètre Input Rows (Enregistrements en entrée) sur Patients (Patients), si nécessaire.
  22. Configurez le paramètre Expression pour sélectionner les patients pour lesquels le champ Total_TravelTime est nul.

    Contrôle d’expression Select By Attributes (Sélectionner selon les attributs)

  23. Conservez les valeurs par défaut des autres paramètres et cliquez sur le bouton OK.

    Les patients qui n’ont pas accès à un hôpital à moins de 10 minutes sont sélectionnés.

  24. Dans la table attributaire des Patients, recherchez le champ PoorAccess.
  25. Cliquez avec le bouton droit sur l’en-tête du champ PoorAccess et cliquez sur Calculate Field (Calculer un champ).

    L’outil Calculer un champ s’ouvre.

  26. Vérifiez que le paramètre Input Table (Table en entrée) est défini sur Patients et que le paramètre Field Name (Nom du champ) est défini sur PoorAccess (Accès médiocre).
  27. Configurez le paramètre Expression de sorte que la valeur calculée du champ PoorAccess soit égale à 1 en définissant la zone de texte intitulée Patients.PoorAccess = sur 1.

    Boîte de dialogue Calculate Field (Calculer un champ)

  28. Conservez les valeurs par défaut des autres paramètres et cliquez sur le bouton OK.

    Le champ PoorAccess est défini sur 1 pour les lignes sélectionnées.

  29. Cliquez avec le bouton droit sur la couche Patients et cliquez sur Joins and Relates (Jointures et relations) > Remove All Joins (Supprimer toutes les jointures).

    Les données jointes sont supprimées de la couche Patients.

  30. Vous avez identifié et marqué un sous-ensemble de patients pâtissant d’un accès médiocre aux hôpitaux, des informations dont vous pouvez vous servir pour affiner l’analyse et la prise de décision.