Exemple de service de géotraitement : recherche d'entités à proximité sur un réseau de transport

Complexité : Avancé Exigences relatives aux données : ArcGIS Tutorial Data Setup Chemin des données : C:\ArcGIS\ArcTutor\GP Service Examples\ClosestFacilities Objectif : Créez, publiez et utilisez un service de géotraitement qui recherche les entités les plus proches d'un emplacement donné, en empruntant l'itinéraire le plus court sur un réseau de transport.

Dossier

ClosestFacilities

Objet

Recherche un nombre donné de bibliothèques les plus proches d'un emplacement de départ en fonction du temps de trajet sur un réseau de transport, calcule l'itinéraire le plus court jusqu'à chacune des bibliothèques les plus proches et génère des trajets dans un fichier texte.

Services

  • SanFranciscoBaseMap (service de carte)
  • ClosestFacilitiesService (service de géotraitement)

Tâche Géotraitement

Rechercher les bibliothèques à proximité

Entrées

Un ou plusieurs points numérisés par l'utilisateur et le nombre de bibliothèques les plus proches à rechercher

Sorties

  1. Les bibliothèques les plus proches
  2. Les itinéraires les plus courts entre les points spécifiés par l'utilisateur et chacune des bibliothèques les plus proches en fonction du temps de trajet
  3. Un fichier texte contenant les trajets de chaque itinéraire

Données

Utilise un jeu de données de réseau de transport et une classe d'entités contenant tous les emplacements de bibliothèques dans la zone de San Francisco fournis dans le dossier ToolData.

Extensions

Network Analyst

A remarquer

Montre comment utiliser la couche d'analyse de réseau recherchée à des fins d'analyse complémentaire.

A propos de cet exemple

Dossier correspondant

C:\arcgis\ArcTutor\GP Service Examples\ClosestFacilities contient l'intégralité des modèles et des données.

A propos de cet exemple

Le service ClosestFacilitiesService créé dans cet exemple vous indique comment publier une tâche de géotraitement qui effectue une analyse des ressources les plus proches sur un réseau de transport. La tâche Rechercher les bibliothèques à proximité détermine les itinéraires les plus courts jusqu'à un nombre spécifié par l'utilisateur de bibliothèques les plus proches de points donnés, en fonction du temps de trajet sur le réseau de transport. La tâche génère les itinéraires et les trajets jusqu'aux bibliothèques les plus proches.

Exemple de sortie de la tâche Rechercher les bibliothèques à proximité
Exemple de sortie de la tâche Rechercher les bibliothèques à proximité

Données

Les données de cet exemple se trouvent dans C:\arcgis\ArcTutor\GP Service Examples\ClosestFacilities.

Contenu du dossier ClosestFacilities
Contenu du dossier ClosestFacilities

Jeu de données réseau

Le dossier ToolData contient une géodatabase fichier (SanFrancisco.gdb). Cette géodatabase comporte un jeu de données réseau (Streets_ND) 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 un attribut de réseau (TravelTime), qui indique la durée nécessaire pour parcourir chaque segment de rue.

Fond de carte

La couche de fond de carte se trouvant dans SanFranciscoBaseMap.mxd possède une couche (Streets), comme indiqué ci-dessous. Cette couche affiche l'étendue du jeu de données réseau. Cela signifie que cette tâche permet uniquement de déterminer les bibliothèques à proximité dans cette étendue.

Fond de carte de San Francisco indiquant l'étendue du jeu de données réseau
Fond de carte de San Francisco indiquant l'étendue du jeu de données réseau

SanFranciscoBaseMap est publié en tant que service de carte.

Boîte à outils et carte

La boîte à outils du service de géotraitement est ClosestFacilitiesService, tandis que la carte source du service est ClosestFacilitiesService.mxd. ClosestFacilitiesService.mxd contient les quatre couches de données sources suivantes, ainsi que la couche d'outils Rechercher les bibliothèques à proximité.

  • Streets_ND - Jeu de données réseau.
  • Library - Couche d'entités qui contient les emplacements de toutes les bibliothèques dans la zone de San Francisco
  • ClosestLibrariesSymbology - Couche d'entités qui définit la symbologie pour les bibliothèques en sortie.
  • OutputRoutesSymbology - Couche d'entités qui définit la symbologie pour les itinéraires en sortie.

Modèle

Vue d'ensemble des modèles

Le modèle Rechercher les bibliothèques à proximité est illustré ci-dessous. Il existe deux variables en entrée :

  • Emplacements en entrée, qui correspondent aux points spécifiés par l'utilisateur à partir desquels les bibliothèques les plus proches sont recherchées.
  • Nombre de bibliothèques à rechercher

Le modèle crée une couche d'analyse de réseau des ressources les plus proches, ajoute les emplacements de bibliothèque de la couche d'entités de bibliothèque comme ressources, ajoute les emplacements spécifiés par l'utilisateur en tant qu'incidents, effectue un calcul pour déterminer les itinéraires jusqu'aux bibliothèques les plus proches, génère des trajets et recherche uniquement les bibliothèques incluses dans les itinéraires parmi toutes les bibliothèques chargées en tant que ressources.

Élément

Type

Description

Réseau de transport

Couche du jeu de données réseau

La couche du jeu de données réseau.

Nombre de bibliothèques à rechercher

Long, paramètre en entrée

Le nombre de bibliothèques à rechercher pour chaque emplacement en entrée.

Générer une couche des ressources les plus proches

Outil

Crée une couche d'analyse de réseau des ressources les plus proches. Cette couche contient des données et des propriétés qui déterminent la manière dont seront calculées les ressources les plus proches, avec les résultats du calcul.

Ressource la plus proche

Couche Network Analyst

Couche des ressources les plus proches.

Bibliothèque

Couche d'entités

La classe d'entités ponctuelles contenant tous les emplacements de bibliothèque. Les positions de ces points sur le réseau de transport sont déjà calculées, comme indiqué dans la section Précalcul des emplacements sur le réseau pour les bibliothèques.

Ajouter des emplacements (bibliothèques)

Outil

Ajoute les emplacements de bibliothèque en tant que ressources à la couche des ressources les plus proches.

Ressource la plus proche (1)

Couche Network Analyst

Couche des ressources les plus proches avec des ressources

Emplacements en entrée

Jeu d'entités (points), paramètre en entrée

Entités ponctuelles à partir desquelles les bibliothèques à proximité sont déterminées.

Ajouter des emplacements

Outil

Ajoute les emplacements en entrée en tant qu'incidents à la couche des ressources les plus proches.

Ressource la plus proche (2)

Couche Network Analyst

Couche des ressources les plus proches avec des ressources et des incidents.

Rechercher

Outil

Calcule les ressources les plus proches et détermine l'itinéraire le plus rapide vers chaque ressource.

Ressource la plus proche (3)

Couche Network Analyst

Couche des ressources les plus proches contenant l'ensemble des ressources, ainsi que l'itinéraire le plus court jusqu'aux ressources les plus proches.

SolveSucceeded

Booléen

Sortie dérivée de l'outil Rechercher qui indique si le calcul a réussi.

Feuille de route

Outil

Génère les trajets des itinéraires vers les ressources les plus proches.

Feuilles de route texte

Fichier, paramètre en sortie

Le fichier texte contenant des trajets.

Ressource la plus proche (4)

Couche Network Analyst

Couche des ressources les plus proches contenant l'ensemble des ressources, ainsi que l'itinéraire le plus court jusqu'aux ressources les plus proches.

Sélectionner des données

Outil

Sélectionne la sous-couche Itinéraires dans la couche des ressources les plus proches.

Itinéraires

Couche d'entités

La couche d'itinéraires de la couche Network Analyst de la ressource la plus proche (3).

OutputRoutesSymbology

Couche

Couche de symbologie permettant d'appliquer la symbologie à la couche d'entités Itinéraires.

Appliquer la symbologie d'une couche

Outil

Applique la symbologie à la couche Itinéraires de la couche OutputRoutesSymbology.

Itinéraires les plus proches

Couche d'entités, paramètre en sortie

Couche Itinéraires avec la symbologie appropriée.

Sélectionner des données (ressources)

Outil

Sélectionne la sous-couche de ressources dans la couche des ressources les plus proches.

Ressources

Couche d'entités

Couche de ressources de la couche Network Analyst de la Ressource la plus proche (3).

Joindre un champ

Outil

Relie les champs FacilityID, FacilityRank, Total_TravelTime et Total_Meters de la couche Itinéraires à la couche Ressources.

Ressources (3)

Aperçu Table

La couche de ressources dérivée contenant les champs joints.

Générer une couche

Outil

Sélectionne uniquement les ressources pour lesquelles la valeur FacilityID n'est pas nulle. Seuls les champs requis dans les ressources en sortie sont configurés pour être visibles.

Facilities_Layer

Couche d'entités

La couche d'entités de ressources contenant uniquement les ressources incluses dans les itinéraires.

ClosestLibrariesSymbology

Couche

Couche de symbologie permettant d'appliquer la symbologie à la couche Facilities_Layer.

Appliquer la symbologie d'une couche (1)

Outil

Applique la symbologie de la couche ClosestLibrariesSymbology à la couche Facilities_layer.

Closest Libraries

Couche d'entités, paramètre en sortie

Facilities_Layer avec la symbologie appropriée.

Eléments du modèle
Modèle Rechercher les bibliothèques à proximité

Précalcul des emplacements sur le réseau pour les bibliothèques

Les emplacements de bibliothèque utilisés dans l'analyse des ressources les plus proches ne sont pas transitoires. Leurs emplacements sur le réseau restent constants. Il est par conséquent plus pratique de calculer leurs emplacements sur le réseau une bonne fois pour toutes, au lieu de les calculer à chacun de leur ajout en tant que ressources.

L'outil Calculer les emplacements permet de déterminer les emplacements sur le réseau des bibliothèques et d'enregistrer les informations dans les champs SourceID, SourceOID, PosAlong et SideOfEdge. Ces informations peuvent ensuite être utilisées par l'outil Ajouter des emplacements pour charger les bibliothèques en tant que ressources dans la nouvelle couche des ressources les plus proches. Cela est bien plus rapide que d'utiliser l'outil Ajouter des emplacements pour d'abord déterminer les emplacements sur le réseau des bibliothèques, puis les charger en tant que ressources. Pour la couche de bibliothèques, les emplacements sur le réseau sont déterminés en fonction de la couche du jeu de données réseau Streets_ND à l'aide de l'outil Calculer les emplacements.

Calcul des emplacements sur le réseau pour les bibliothèques
Calcul des emplacements sur le réseau pour les bibliothèques

Notez que si, dans un autre scénario, les ressources sont transitoires, leurs emplacements sur le réseau doivent alors être déterminés à chacun de leur ajout en tant que ressources. Le précalcul de leurs emplacements sur le réseau à l'aide de l'outil Calculer les emplacements ne présente, dans ce cas, aucun avantage en matière de performances.

Processus de modèle

L'outil Générer une couche des ressources les plus proches crée une couche Network Analyst (Ressource la plus proche) qui enregistre les propriétés d'analyse, référence la couche du jeu de données réseau Streets_ND utilisée pour l'analyse et enregistre les incidents et les ressources en entrée, ainsi que les itinéraires en sortie. Le jeu de données réseau possède un attribut de coût de réseau nommé TravelTime, qui spécifie la durée nécessaire pour parcourir chaque segment de rue en minutes. Cet attribut est utilisé comme attribut d'impédance. La variable Nombre de bibliothèques à rechercher spécifie le nombre de ressources à rechercher.

Paramètres de l'outil Générer une couche des ressources les plus proches
Paramètres de l'outil Générer une couche des ressources les plus proches

L'outil Ajouter des emplacements (bibliothèques) ajoute les emplacements de bibliothèques en tant que ressources à la couche des ressources les plus proches. Comme les emplacements sur le réseau des bibliothèques ont déjà été calculés à l'aide de l'outil Calculer les emplacements, l'option Utiliser les champs d'emplacement du réseau au lieu de la géométrie était cochée.

Utilisation des champs d'emplacement sur le réseau pour ajouter des ressources
Utilisation des champs d'emplacement sur le réseau pour ajouter des ressources

L'outil Ajouter des emplacements ajoute des points numérisés par l'utilisateur en tant qu'incidents à la couche des ressources les plus proches. Le paramètre Emplacements en entrée est du type de données jeu d'entités, de sorte que le modèle puisse accepter interactivement les points numérisés par l'utilisateur en tant qu'incidents. La structure et la symbologie du jeu d'entités proviennent du fichier InputLocations.lyr qui se trouve dans le dossier ToolData.

L'outil Rechercher recherche le nombre indiqué de ressources les plus proches de chaque incident et calcule l'itinéraire le plus court jusqu'à chaque ressource en fonction de l'attribut de réseau TravelTime. Les itinéraires calculés sont écrits dans la sous-couche Itinéraires de la couche des ressources les plus proches en sortie.

La couche Network Analyst n'est pas un type de données de paramètre en sortie pris en charge par les clients ArcGIS Server. L'outil Sélectionner des données permet d'obtenir la sous-couche Itinéraires de la couche Network Analyst des ressources les plus proches.

La sous-couche Itinéraires utilise la symbologie de la couche Network Analyst. Pour appliquer une symbologie différente (une couleur par itinéraire, par exemple), l'outil Appliquer la symbologie d'une couche permet d'appliquer la symbologie à la sous-couche Itinéraires à partir de la couche OutputRoutesSymbology.

L'outil Directions permet de générer les trajets et de les exporter dans un fichier texte. Le fichier texte en sortie qui contient les trajets est créé dans le répertoire des tâches sur le serveur à l'aide de la variable en ligne %scratchworkspace%.

La sous-couche Itinéraires de la couche des ressources les plus proches contient un champ FacilityID qui indique l'ID d'objet de la ressource sur le trajet de l'itinéraire. Ces informations permettent de sélectionner uniquement les ressources sur le trajet des itinéraires parmi toutes les ressources. L'outil Champ de jointure relie la sous-couche Itinéraires à la couche de ressources à l'aide du champ FacilityID. L'outil relie les champs FacilityID, FacilityRank, Total_TravelTime et Total_Meters à la sous-couche de ressources en fonction de FacilityID dans les itinéraires et d'ObjectID dans les ressources.

Paramètres de l'outil Champ de jointure
Paramètres de l'outil Champ de jointure

La sortie de l'outil Champ de jointure contient le champ FacilityID de la sous-couche des ressources. Ce champ possède une valeur nulle pour toutes les ressources qui ne sont pas sur le trajet des itinéraires. Grâce à l'outil Générer une couche, seules les ressources pour lesquelles la valeur du champ FacilityID n'est pas nulle sont sélectionnées et exportées vers une nouvelle couche.

Paramètres de l'outil Générer une couche
Paramètres de l'outil Générer une couche

La symbologie de la couche de ressources est définie à partir de la couche OutputLibrariesSymbology à l'aide de l'outil Appliquer la symbologie d'une couche.

Couche d'outils

Pour créer la couche d'outils Rechercher les bibliothèques à proximité, faites glisser le modèle Rechercher les bibliothèques à proximité vers la table des matières d'ArcMap.

Comme les sorties du modèle sont des couches d'entités en mémoire, une rupture de la source de données se produit au niveau de la sous-couche Bibliothèques les plus proches et itinéraires de la couche d'outils lors de la première ouverture de ClosestFacilitiesService.mxd. La carte sera publiée en l'état. Cependant, vous devez ré-exécuter la couche d'outils et vérifier que le modèle fonctionne avant de publier le service.

Notez que si vous modifiez la symbologie d'une des couches en sortie de la couche d'outils, la nouvelle symbologie ne sera pas utilisée. Cela s'explique par le fait que les sorties de ce modèle sont des couches d'entités et que leurs symbologies ont déjà été définies à l'aide de l'outil Appliquer la symbologie à la couche dans le modèle.

Publication

SanFranciscoBaseMap.mxd est publié en tant que service de carte. ClosestFacilitiesService.mxd est publié en tant que service de géotraitement sans service de carte obtenu, comme suit :

  1. Dans la fenêtre Catalogue, cliquez avec le bouton droit sur SanFranciscoBaseMap.mxd, puis cliquez sur Publier sur un serveur ArcGIS.
  2. Acceptez toutes les valeurs par défaut.
  3. Dans la fenêtre Catalogue, accédez à votre connexion administrateur de serveur sous le nœud Serveurs SIG, cliquez dessus avec le bouton droit, puis choisissez Ajouter un nouveau service. Nommez le service ClosestFacilitiesService et sélectionnez Service de géotraitement comme type.
  4. Cliquez sur Suivant.
  5. Dans le volet suivant, sélectionnez Synchrone comme Type d'exécution. Pour l'option Les outils présentés par le service de géotraitement sont stockés dans, choisissez Une carte et spécifiez ClosestFacilitiesService.mxd pour Carte. Comme vous allez tester votre service, cochez Afficher les messages.
    Publication de ClosestFacilitiesService
    Publication de ClosestFacilitiesService
  6. Cliquez sur Suivant. A partir de ce point, vous pouvez accepter les valeurs par défaut fournies par l'assistant et créer le service.

Utilisation

  1. Démarrez ArcMap avec un document vide.
  2. Créez, le cas échéant, une connexion utilisateur à ArcGIS Server à partir de la fenêtre Catalogue.
  3. Ajoutez le service de carte SanFranciscoBaseMap à la table des matières d'ArcMap.
  4. Dans la fenêtre Catalogue, sous votre nœud de connexion utilisateur Serveurs SIG, développez la boîte à outils ClosestFacilitiesService et ouvrez l'outil Rechercher les bibliothèques à proximité. Le résultat obtenu après avoir suivi cette procédure est illustré ci-dessous.
    Tâche Rechercher les bibliothèques à proximité dans une session ArcMap
  5. Ajoutez un point pour créer un emplacement en entrée. Spécifiez 3 comme nombre de bibliothèques à rechercher, puis cliquez sur OK pour exécuter la tâche.

    Une fois la tâche exécutée, la table des matières contient la couche en sortie Bibliothèques les plus proches et itinéraires, comme illustré ci-dessous. Les emplacements en entrée ne font pas l'objet d'une sortie dans le cadre de cette tâche. Pour les ajouter à la table des matières, passez par le nœud Entrées dans la fenêtre Résultats.

    Tâche complétée
    Tâche complétée
  6. Le fichier texte contenant les trajets est copié du répertoire de tâches du serveur vers l'espace de travail temporaire pour la session ArcMap en cours. Pour afficher ce fichier, double-cliquez dessus dans la fenêtre Résultats.

    Affichage du fichier de trajet
    Affichage du fichier de trajet

Rubriques associées


3/6/2012