Exemple de service de géotraitement : recherche d'entités à proximité 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 |
|
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 |
|
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 |
|
A remarquer |
Montre comment utiliser la couche d'analyse de réseau recherchée à des fins d'analyse complémentaire. |
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.
Données
Les données de cet exemple se trouvent dans C:\arcgis\ArcTutor\GP Service Examples\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.
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. |
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. |
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. |
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. |
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. |
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. |
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). |
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. |
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. |
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.
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.
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.
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.
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.
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 :
- Dans la fenêtre Catalogue, cliquez avec le bouton droit sur SanFranciscoBaseMap.mxd, puis cliquez sur Publier sur un serveur ArcGIS.
- Acceptez toutes les valeurs par défaut.
- 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.
- Cliquez sur Suivant.
- 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.
- 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
- Démarrez ArcMap avec un document vide.
- Créez, le cas échéant, une connexion utilisateur à ArcGIS Server à partir de la fenêtre Catalogue.
- Ajoutez le service de carte SanFranciscoBaseMap à la table des matières d'ArcMap.
- 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.
- 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.
- 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.