Skip To Content

Exemple de service de géotraitement : itinéraire le plus court sur un réseau de transport

Disponible avec une licence Network Analyst.

Dans cette rubrique
Complexité : IntermédiaireConditions requises pour les données ArcGIS Tutorial Data for DesktopChemin d'accès aux données : C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute Objectif : Créer, publier et utiliser un service de géotraitement qui recherche l'itinéraire le plus court, à un moment donné de la journée, sur un réseau de transport et génère des trajets.

Dossier

ShortestRoute

Objet

Indique l'itinéraire le plus rapide entre des points spécifiques d'un réseau de transport, à un moment donnée de la journée, et génère des trajets au format texte ou HTML.

Services

ShortestRouteService (service de géotraitement)

Tâches de géotraitement

Calculer l'itinéraire le plus court

Entrées

  • Au moins deux points numérisés par l'utilisateur
  • Une date et heure de début
  • Sélection d'un format de publication des trajets, HTML ou texte

Sorties

  • Une entité linéaire représentant l'itinéraire le plus rapide entre les points spécifiés par l'utilisateur, en fonction d'une heure de début spécifique.
  • Un fichier HTML ou texte contenant des trajets

Données

Utilise un jeu de données de réseau de transport pour la zone de San Francisco fournie dans le dossier ToolData

Extensions

Extension ArcGIS Network Analyst

A remarquer

  • Démontre comment réutiliser une couche d'analyse de réseau d'itinéraires existante à chaque exécution de la tâche.
  • Indique comment utiliser un outil de script et le module Network Analyst pour modifier la valeur d'heure de début de la couche d'analyse.
  • Vous pouvez vous servir de cet exemple comme guide d'utilisation des solveurs de ArcGIS Network Analyst suivants : Emplacement-allocation, Matrice de coût OD et Ressource la plus proche. Leurs workflows sont presque identiques. (Reportez-vous à cette rubrique lorsque vous publiez un service de géotraitement qui utilise le solveur de tournée de véhicules, de ressource la plus proche ou de zone de desserte.)

A propos de cet exemple

Dossier correspondant

Les données de ce didacticiel peuvent être téléchargées depuis ArcGIS.com. Extrayez les données dans C:\arcgis\ArcTutor. Le modèle et certaines données correspondantes se situent dans C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute. Le jeu de données réseau qui est référencé par la couche d’analyse de réseau dans le modèle est stocké dans la géodatabase SanFrancisco, contenue dans C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute.

A propos de cet exemple

Le service ShortestRouteService créé dans cet exemple vous explique comment publier des tâches de géotraitement qui calculent l'itinéraire le plus court sur un réseau de transport entre des points spécifiés par l'utilisateur et comment générer un fichier qui contient les trajets.

Exemple de sortie de la tâche Calculer l'itinéraire le plus court
Exemple de sortie de la tâche Calculer l'itinéraire le plus court

Le jeu de données réseau San Francisco utilisé dans cet exemple intègre des données de trafic historique, qui permettent de trouver l'itinéraire le plus rapide pour un jour de la semaine et une heure donnés. Cela signifie que vous pouvez trouver le meilleur itinéraire d'un point A à un point B à 8h00, 10h00, 22h25, etc. La forme ou la durée de l'itinéraire peut varier, mais en tout cas, l'itinéraire le plus rapide est calculé pour l'heure de début donnée.

Données

Le jeu de données réseau de cet exemple se trouvent dans C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\SanFrancisco.gdb. Les cartes, boîtes à outils et autres données supplémentaires sont stockées dans :\arcgis\ArcTutor\GP Service Examples\Network Analyst\\ShortestRoute.

Contenu du dossier ShortestRoute
Contenu du dossier ShortestRoute

Jeu de données réseau

Le dossier Network Analyst contient une géodatabase fichier (SanFrancisco.gdb). Le jeu de données réseau Streets_ND se trouve dans le jeu de données d’entité Transport. Ce jeu de données réseau modélise le réseau de transport d'une zone de San Francisco. Il fournit plusieurs attributs de réseau, notamment Temps de trajet, qui indique la durée nécessaire pour parcourir chaque segment de rue en minutes, et Mètres, qui indique la longueur de chaque segment de rue.

Boîte à outils et carte

La boîte à outils du service de géotraitement est ShortestRouteService.tbx.

La carte ShortestRouteService.mxd est incluse, afin de sauter certaines étapes secondaires du workflow, comme l'ajout de couches ou l'ajustement des étendues de la carte autour de la zone d'étude.

ShortestRouteService contient un outil de script et un modèle. L'outil de script Modifier l'heure de début de l'itinéraire fait partie du modèle Calculer l'itinéraire le plus court .

Modèle

Vue d'ensemble des modèles

Le modèle Calculer l'itinéraire le plus court est illustré ci-dessous.

Il y a trois paramètres en entrée : Heure de début, qui est facultatif et représente l'heure de départ du premier arrêt ; Points d'entrée, qui représente les points numérisés par l'utilisateur par lesquels passera l'itinéraire ; Type de fichier pour les feuilles de route, qui spécifie si les feuilles de route seront générées au format HTML ou texte.

Le modèle utilise un outil de script pour définir l'heure de début de l'itinéraire pour une couche d'analyse de réseau existante, ajoute des arrêts à la couche d'analyse d'itinéraires, identifie les meilleurs itinéraires et génère la forme d’itinéraire et les trajets. L'itinéraire résultant passe par les arrêts dans l'ordre de leur numérisation.

Modèle Calculer l'itinéraire le plus court
Modèle Calculer l'itinéraire le plus court

Utilisation d'une couche d'analyse de réseau existante

Aucune couche d'analyse de réseau n'est créée dans le modèle Calculer l'itinéraire le plus court, qui présume qu'une couche existe déjà. Ainsi, le modèle et toute tâche de géotraitement publiée par son biais, réutilisent la même couche d'analyse de réseau, au lieu d'en créer une à chaque analyse. Cette méthode permet d'éviter un certains nombre de traitements qui ne sont pas nécessaires.

Le modèle référence un outil de script, Modifier l'heure de début de l'itinéraire, qui utilise le langage Python et le module Network Analyst (arcpy.na) pour accéder à la couche d'analyse de réseau d'itinéraires et substituer la date et heure de début d'itinéraire existantes, par la date et l'heure entrées par l'utilisateur. Plus particulièrement, le script applique arcpy.na.GetSolverProperties à la couche d’analyse de réseau, pour obtenir un objet RouteSolverProperties. A partir de cet objet, l'outil définit la propriété timeOfDay de la couche d’analyse de réseau.

Bien que cela ne soit pas recommandé, vous pouvez éviter d'ajouter l'outil de script en démarrant le modèle à partir de l'outil Générer une couche d’itinéraires et en fournissant le paramètre Heure de début de l'outil en tant que paramètre du modèle. Toutefois, une nouvelle couche d’analyse de réseau sera alors créée pour chaque requête de client, lorsque le modèle sera publié en tant que tâche sur un serveur. Cette méthode génère donc de nombreux traitements supplémentaires sur vos serveurs. L'outil de script et le module ArcGIS Network Analyst permettent de modifier les propriétés d'une couche d’analyse de réseau, de sorte qu'une seule couche soit créée et utilisée par le service.

Héritage :

Avant ArcGIS 10.1, le module ArcGIS Network Analyst n'existait pas. La seule façon de modifier les propriétés d'une couche d’analyse de réseau, était de créer une nouvelle couche dans un modèle qui utilisait l'un des outils de géotraitement de création de couche (par exemple, Générer une couche d’itinéraires), et de mettre à disposition un ou plusieurs paramètres d'analyse de l'outil, en tant que paramètres du modèle.

La couche d'itinéraires utilisée comme variable en entrée dans le modèle Calculer l'itinéraire le plus court a été créée en ajoutant le jeu de données réseau Streets_ND à ShortestRouteService.mxd, et en utilisant ensuite l'outil Générer une couche d’itinéraires. Dans cet exemple, les paramètres d'outil suivants ont été définis une fois la couche d'itinéraires créée. Les valeurs par défaut sont utilisées pour les paramètres non mentionnés dans cette table.

Paramètre

Valeur

Réseau d'analyse en entrée

Streets_ND

Nom de la couche en sortie

Itinéraire

Attribut d’impédance

Temps de trajet

Heure de début

Accumulateurs

Temps de trajet ; Mètres

Règle de demi-tour

ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY

Valeurs des paramètres utilisées avec l'outil Générer une couche d'itinéraires

Paramètres de la boîte de dialogue de l'outil Générer une couche d'itinéraires
Paramètres de la boîte de dialogue de l'outil Générer une couche d'itinéraires

Processus de modèle

L'outil de script Modifier l'heure de début de l'itinéraire présente l'avantage de définir une heure de début pour l'itinéraire, à l'aide des temps de trajet dynamiques du jeu de données réseau. Si vous n'indiquez aucune date et heure, le solveur trouve le meilleur itinéraire en se fondant sur un attribut de coût de réseau généré par des temps de trajet génériques. Toutefois, si vous spécifiez une date et une heure, le solveur utilise un attribut de coût fondé sur des temps de trajet historiques, et, ainsi, génère souvent de meilleurs itinéraires.

L'outil Ajouter des emplacements ajoute les points numérisés par l'utilisateur en tant qu'arrêts à la couche d'itinéraires. Le paramètre Emplacements en entrée de l'outil est spécifié via le paramètre de modèle Points d'entrée. Le type de données de ce paramètre est jeu d'entités. La structure et la symbologie du jeu d'entités proviennent du fichier InputStops.lyr qui se trouve dans le dossier ToolData.

La structure du jeu d'entités Input Stops contient un champ de texte (Name). Ce champ permet de fournir des noms d'arrêts, tout en générant des trajets en établissant une correspondance entre la propriété Name et le champ de nom dans Appariement de champs, comme illustré ci-dessous. Si la valeur du champ de nom n'est pas spécifiée par l'utilisateur, les valeurs par défaut Emplacement 1, Emplacement 2, et ainsi de suite, sont utilisées pour les noms d'arrêt.

Etant donné que la même couche d'itinéraire est utilisée pour chaque exécution de modèle, tous les arrêts existants doivent être supprimés avant d'en ajouter de nouveaux. Pour supprimer des arrêts existants, décochez l'option Ajouter aux emplacements existants illustrée ci-dessous.

La case Exclure les portions restreintes du réseau est cochée, de sorte que, quand des arrêts son ajoutés, ils ne se situent pas sur des tronçons qu'il est impossible de traverser. Des échecs sont ainsi évités lors de l'analyse.

Ajout d'arrêts
Ajout d'arrêts

L'outil Calculer calcule l'itinéraire le plus court en fonction de l'attribut de réseau Temps de trajet, du paramètre Heure de début, et d'autres options spécifiées dans la couche d'itinéraires. L'itinéraire calculé est écrit dans la sous-couche Routes de la couche d'itinéraires en sortie.

Les couches d'analyse de réseau (comme une couche d'itinéraires, par exemple) ne sont pas des types de données de paramètre en sortie pris en charge pour les clients ArcGIS for Server. L'outil Sélectionner des données permet d'obtenir la sous-couche d'itinéraires à partir de la couche d'analyse d'itinéraires.

L'outil Feuilles de route génère les trajets sous forme de fichiers texte, HTML ou XML, en fonction du choix de l'utilisateur Toutefois, l'option XML n'est pas proposée quand la tâche résultante est exécutée depuis ArcGIS for Server. Pour supprimer cette option, désactivez la case XML dans l'Editeur de services, sous Type de fichier pour les feuilles de route, lors de la publication du service. La variable SolveSucceeded dérivée de l'outil Calculer est utilisée en tant que précondition pour l'outil Feuilles de route. En d'autres termes, le fichier de trajet n'est généré que si l'outil Rechercher parvient à trouver un itinéraire entre des points en entrée.

Description d'élément

En documentant la description de l'élément du modèle de géotraitement, vous documentez également le service résultant et ses paramètres, car l'assistant de publication copie le texte dans la description de l'article du service. Vous devez obligatoirement documenter ou décrire le service pour que les utilisateurs comprennent bien comment interagir avec le service et trouver les meilleurs itinéraires. Le modèle et l'outil de script de notre exemple sont documentés ; vous pouvez le vérifier en cliquant avec le bouton droit sur le modèle de géotraitement dans la fenêtre Table des matières et en sélectionnant Description d'élément.

Publication

La publication du service de géotraitement s'effectue comme décrit dans les étapes suivantes.

  1. Ouvrez ShortestRouteService.mxd. L'emplacement par défaut des données du didacticiel est C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute.
  2. Exécutez le modèle de géotraitement Calculer l'itinéraire le plus court.
    1. Dans la fenêtre Catalogue, développez la boîte à outils ShortestRouteService.tbx, et double-cliquez sur le modèle Calculer l'itinéraire le plus court.
    2. Dans la boîte de dialogue de l'outil Calculer l'itinéraire le plus court, cliquez sur le symbole situé à côté de Arrêts, puis cliquez sur la carte pour ajouter des arrêts.
    3. Cliquez sur OK pour générer un itinéraire et des trajets.
  3. Cliquez sur Géotraitement > Résultats pour ouvrir la fenêtre Résultats.
  4. Dans la fenêtre Résultats, développez Session en cours.
  5. Cliquez avec le bouton droit de la souris sur CalculateShortestRoute (qui est suivi par l'heure et la date d'exécution du modèle), puis sélectionnez Partager en tant que > Service de géotraitement.
  6. Dans la boîte de dialogue Partager en tant que service, cliquez sur Suivant.
  7. Sélectionnez une connexion ArcGIS for Server disposant de fonctionnalités d'éditeur dans la liste déroulante ou établissez une connexion à l'aide du bouton situé à droite de la liste déroulante.
  8. Cliquez sur Suivant.
  9. Sélectionnez le dossier racine ou indiquez un autre dossier pour publier le service et cliquez sur Continuer.

    La boîte de dialogue Editeur de service s'affiche. Le texte de la description de l'élément du modèle de géotraitement et de l'outil de script est copié pour décrire le service. Il est alors affiché pour modification éventuelle dans la section Description d'élément de la boîte de dialogue, ainsi que dans les sections situées immédiatement au-dessus (Route_Directions, Heure de début, etc.).

  10. Le traitement de l'analyse d’itinéraires dans cette zone d’étude étant relativement rapide, il est préférable de définir un service synchrone ; pour cela, cliquez sur l'onglet Paramètres et cochez la case Synchrone. Si vous publiez un service destiné à résoudre des problèmes de matrice de coût OD ou d'emplacement-allocation, définissez cette propriété sur Asynchrone et augmentez éventuellement la valeur de Durée maximale pendant laquelle un client peut utiliser un service, située sous l'onglet Groupage.
  11. Paramétrez le Niveau du message sur Avertissement, afin que les messages d'erreur et d'avertissement soient renvoyées lorsque vous exécutez la tâche.
  12. Supprimez l'option XML des formats de fichier de trajets en cliquant sur Type de fichier pour les feuilles de route et en désactivant la case XML.
  13. Cliquez sur Analyse Analyser pour consulter les messages d'erreur et d'avertissement dans la boîte de dialogue Editeur.

    Si vous n'avez pas configuré de magasin de données, vous recevrez un message vous avertissant que les données seront copiées sur le serveur.

    Cliquez avec le bouton droit sur les messages d'erreur de la boîte de dialogue Editeur pour savoir comment les résoudre.

  14. Cliquez sur Publier Publier dans la boîte de dialogue Editeur de services.

    Une boîte de dialogue peut alors s'afficher pour vous informer que Streets_ND va être copié sur le serveur. Dans ce cas, cliquez sur OK. Une fois le service publié avec succès, la boîte de dialogue Réussite apparaît.

  15. Cliquez sur OK.

Utilisation

  1. Ouvrez une carte vide et ajoutez la classe d'entités Streets provenant des données de didacticiel (C:/arcgis/ArcTutor/GP Service Examples/Network Analyst/SanFrancisco/Transportation/Streets). Vous pouvez éventuellement ajouter une couche de fond de carte depuis ArcGIS Online et supprimer la couche d’entités Streets.
  2. Créez une connexion utilisateur à ArcGIS for Server à partir de la fenêtre Catalogue, si une telle connexion n'existe pas déjà.
  3. Développez la connexion utilisateur et le service CalculateShortestRoute.
  4. Ouvrez la tâche Calculer l'itinéraire le plus court en double-cliquant dessus.
  5. Ajoutez au moins deux points pour créer des emplacements d'arrêt. Indiquez éventuellement le nom de chaque arrêt dans la table attributaire pour la couche qui s'affiche dans la table des matières : CalculateShortestRoute:Stops.
  6. Indiquez une date et une heure de départ du premier arrêt. Sélectionnez un format de sortie des trajets : HTML ou texte. Cliquez sur OK pour exécuter la tâche.

    ArcGIS for Server reçoit la requête, résout l'analyse, renvoie la couche Itinéraires, et stocke le fichier des trajets dans votre répertoire temporaire. Vous pouvez accéder aux trajets dans la fenêtre Résultats : développez Session en cours > CalculateShortestRoute, puis double-cliquez sur Directions d'acheminement: RouteDirections. (Vous pouvez double-cliquer sur Directions d'acheminement: RouteDirections et sélectionner Copier l’emplacement, pour connaître l'emplacement de stockage du fichier sur votre ordinateur.)

Rubriques connexes