Exemple de service de géotraitement : polygones de temps de conduite
Dossier |
DriveTimePolygons |
Objet |
Crée des polygones de temps de conduite (ou des distances à parcourir) autour de points en entrée pour les valeurs de temps de conduite données |
Service |
DriveTimePolygonsService (service de géotraitement) |
Tâche de géotraitement |
Calculer les polygones de temps de conduite |
Entrées |
|
Sorties |
Un polygone correspondant à chaque valeur de temps de conduite ou de distance à parcourir en entrée pour chaque ressource |
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 |
|
A remarquer |
Présente les étapes de base nécessaires à la configuration et à l'utilisation d'une tâche de serveur pour la génération de zones de desserte (cette procédure est semblable à la configuration d'un service de tournée de véhicules ou un service Trouver le plus proche à l'aide des outils de géotraitement Résoudre une tournée de véhicules ou Rechercher les ressources les plus proches, respectivement.) |
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 sont stockés dans C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons. 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\DriveTimePolygons.
A propos de la tâche Calculer les polygones de temps de conduite
La tâche Calculer les polygones de temps de conduite a essentiellement pour objectif de créer des polygones de temps de conduite autour de points spécifiés par l'utilisateur. Un polygone de temps de conduite désigne une zone qui comprend toutes les rues accessibles à partir d'un point donné dans un temps de conduite spécifié. Les polygones de temps de conduite permettent d'évaluer l'accessibilité d'un point en fonction d'autres entités. Par exemple, des polygones de temps de conduite d'une, deux et trois minutes autour de l'emplacement d'une épicerie permettent de déterminer les personnes susceptibles de faire leurs courses dans ce magasin.
Pour créer des zones de desserte, il existe deux outils : Générer une couche de zones de desserte et Générer des zones de desserte. cet exemple utilise l'outil Générer des zones de desserte car il est conçu pour faciliter la création de services de zones de desserte et optimiser la performance du solveur dans un environnement serveur. Par ailleurs, l'outil Générer des zones de desserte présente l'avantage d'offrir des paramètres de limitation qui permettent de restreindre le volume de traitement du serveur et la bande passante en limitant la taille des problèmes de zone de desserte demandés par les clients. Dans notre exemple, le paramètre Nombre maximal de ressources est défini sur 10 afin que le serveur rejette automatiquement toute requête de résolution d'un problème de zone de desserte contenant plus de 10 ressources.
Données
Le jeu de données réseau de cet exemple se trouve dans C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\SanFrancisco.gdb et les documents ArcMap, la boîte à outils et d'autres données complémentaires sont stockés dans C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons.
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 cartes
La boîte à outils du service de géotraitement est DriveTimePolygonsService.tbx.
Les deux cartes, DriveTimePolygonsService.mxd et UsingDriveTimePolygonsService.mxd, sont incluses afin de sauter certaines étapes secondaires du workflow, comme l'ajout de couches, l'ajustement des étendues de la carte autour de la zone d'étude, etc.
Modèle
Vue d'ensemble des modèles
Le modèle Calculer les polygones de temps de conduite de la boîte à outils DriveTimePolygonsService est illustré ci-dessous. Il existe quatre variables en entrée :
- La variable Ressources en entrée constitue le centre des polygones de temps de conduite à générer. (Dans l'analyse de réseau, une ressource est tout emplacement fixe du réseau, tel qu'un bâtiment ou votre position actuelle.)
- La variable Valeurs des bornes est une liste de valeurs de temps de conduite ou de distance à parcourir séparée par des espaces.
- La variable Unités des bornes spécifie l'unité des Valeurs des bornes et détermine si ce sont des polygones de temps de conduite ou de distance à parcourir qui sont générés. Des polygones de temps de conduite sont générés lorsqu'une unité de temps est sélectionnée ; des polygones de distance à parcourir sont générés pour les unités de longueur.
- La variable Type de superposition des polygones indique si chaque valeur de borne est générée à partir de la ressource (DISKS) ou à partir de la fin de la dernière borne (RINGS). Cette variable affecte uniquement les données en sortie relatives à des zones de desserte qui ont plusieurs bornes par ressource.
L'outil Générer des zones de desserte de ce modèle crée une couche d'analyse de réseau pour les zones de desserte, ajoute les points numérisés par l'utilisateur comme ressources, effectue une opération d'analyse et génère les polygones de temps de conduite.
Elément |
Type |
Description |
---|---|---|
Ressources | Jeu d'entités (points), paramètre en entrée | Entités ponctuelles autour desquelles les polygones de temps de conduite sont déterminés |
Valeurs des bornes |
Chaîne, paramètre en entrée |
Liste de valeurs de temps de conduite ou de distance à parcourir séparée par des espaces |
Unités des bornes | Chaîne, paramètre en entrée | Unités des valeurs de borne |
Type de superposition des polygones | Chaîne, paramètre en entrée | Indique s'il faut créer des polygones de zone de desserte concentriques sous forme de disques ou d'anneaux lorsqu'il existe plusieurs valeurs de borne |
Barrières polygonales |
Jeu d’entités (polygones) |
Entités surfaciques qui interdisent la traversée des tronçons de réseau qu'elles couvrent ou en proportionnent le coût |
Barrières linéaires |
Jeu d’entités (lignes) |
Entités linéaires qui interdisent la traversée des tronçons de réseau qu'elles couvrent ou en proportionnent le coût |
Barrières ponctuelles |
Jeu d’entités (points) |
Entités ponctuelles qui interdisent la traversée via un point du réseau ou y ajoutent un coût |
Streets_ND | Couche du jeu de données réseau | Couche du jeu de données réseau sur laquelle les zones de dessertes sont calculées |
Valeurs des paramètres d’attributs |
Jeu d'enregistrements |
Valeurs de paramètre des attributs paramétrés du réseau |
Outil | Crée et résout une analyse de zone de desserte | |
SolveSucceeded | booléen | Sortie dérivée qui indique si l'analyse a réussi |
Polygones | Couche d'entités, paramètre en sortie | Couche de polygones en sortie représentant les zones de desserte |
Vue d'ensemble du workflow
Le workflow général de publication d'un solveur de zone de desserte en tant que service de géotraitement se décompose comme suit :
- Ajoutez l'outil Générer des zones de desserte à ModelBuilder.
- Etablissez les paramètres que les clients pourront définir et mettez-les à disposition en tant que paramètres de modèle.
- Documentez les paramètres dans la boîte de dialogue Description d'élément du modèle.
- Exécutez un fois le modèle dans ArcMap.
- Dans la fenêtre Résultats d'ArcMap, publiez le modèle en tant que service de géotraitement.
Utilisation de la couche du jeu de données réseau
Le jeu de données réseau de la zone de San Francisco est ajouté à la carte DriveTimePolygonsService en tant que couche de jeu de données réseau (Streets_ND). Cette couche est utilisée dans le modèle en tant que variable en entrée pour l'outil Générer des zones de desserte. L'utilisation d'une couche réseau améliore sensiblement le temps d'exécution global du modèle car la couche du jeu de données réseau garde ouverte une connexion au jeu de données réseau. Sinon, si le jeu de données réseau est référencé par le chemin de son emplacement sur le disque, une connexion au jeu de données réseau est établie chaque fois que le modèle est exécuté, ce qui réduit les performances du service de géotraitement créé à l'aide du modèle.
Processus de modèle
L'outil Générer des zones de desserte crée une couche Network Analyst de zones de desserte, qui stocke 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 stocke les ressources en entrée et les polygones en sortie. Le jeu de données réseau possède un attribut de coût de réseau nommé Temps de trajet, qui spécifie la durée nécessaire pour parcourir chaque segment de rue. Le jeu de données réseau possède également l'attribut de coût Mètres, qui spécifie la longueur de chaque segment de rue. L'un de ces deux attributs de coût est référencé dans l'analyse pour générer des polygones de temps de conduite ou de distance à parcourir. L'attribut de coût qui est référencé dépend du paramétrage de la variable Unités des bornes : si une unité de temps est sélectionnée, c'est l'attribut Temps de trajet qui est utilisé, si c'est une unité de distance, c'est l'attribut Mètres qui est utilisé. L'outil gère toutes les conversions d'unités nécessaires.
Les valeurs de borne par défaut sont lues à partir de la variable Valeurs des bornes sous la forme d'une liste de valeurs séparées par des espaces.
Pour ce service, l'option NO_MERGE a permis de créer des polygones superposés qui ne fusionnent pas pour chaque ressource.
Le paramètre Ressources est du type de données jeu d'entités, de sorte que le modèle peut accepter interactivement les points numérisés par l'utilisateur en tant que ressources.
L'outil calcule la zone de desserte en fonction des options spécifiées dans les paramètres en entrée et génère les polygones de temps de conduite. Les polygones calculés sont écrits dans la couche de polygones en sortie.
Fonctionnalités du service
Les paramètres de la section Fonctionnalités du service de la boîte de dialogue de l'outil sont conçus pour limiter les conditions de traitement et de stockage des requêtes des clients. Ils déclenchent certains comportements. Par exemple, comme le paramètre Nombre maximal de ressources pour ce modèle est défini sur 10, le service résultant vérifiera le nombre de ressources créées par l'utilisateur. S'il détecte 10 ressources ou moins, les zones de desserte seront générées. S'il y a plus de 10 ressources, le service est immédiatement arrêté.
Tous les autres paramètres des fonctionnalités du service fonctionnent de façon similaire, à l'exception des paramètres Forcer la hiérarchie au-delà de la valeur de temps des bornes et Forcer la hiérarchie au-delà de la valeur de distance des bornes. Ces deux paramètres sont désactivés car le jeu de données réseau San Francisco ne dispose pas d'attribut de hiérarchie. Si ce jeu de données réseau comportait un tel attribut, et que le paramètre Utiliser la hiérarchie lors de l’analyse était coché, vous pourriez alors forcer la mutation de la zone de desserte en zone de desserte hiérarchique lorsque des valeurs de bornes sont transmises. Les zones de desserte hiérarchiques, bien que moins précises, présentent l'avantage de nécessiter bien moins de traitement que les zones de desserte non hiérarchiques.
Description d'élément
En documentant la Description d'é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 générer des zones de desserte. Le modèle de notre exemple est documenté ; vous pouvez le vérifier en cliquant avec le bouton droit sur le modèle de géotraitement dans la fenêtre Catalogue 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.
- Ouvrez DriveTimePolygonsService.mxd. L'emplacement par défaut des données du didacticiel est C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons.
- Exécutez le modèle de géotraitement Calculer les polygones de temps de conduite.
- Dans la fenêtre Catalogue, développez la boîte à outils DriveTimePolygonsService.tbx et double-cliquez sur l'outil Calculer les polygones de temps de conduite.
- Dans la boîte de dialogue de l'outil Calculer les polygones de temps de conduite, cliquez sur le symbole situé à côté de Ressources, puis cliquez sur la carte pour ajouter une ressource.
- Cliquez sur OK pour générer des zones de desserte.
- Cliquez sur Géotraitement > Résultats pour ouvrir la fenêtre Résultats.
- Dans la fenêtre Résultats, développez Session en cours.
- Cliquez avec le bouton droit de la souris sur CalculateDriveTimePolygons (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.
- Dans la boîte de dialogue Partager en tant que service, cliquez sur Suivant.
- 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.
- Cliquez sur Suivant.
- 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 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 (Ressources, Valeurs des bornes, etc.).
- Cliquez sur Paramètres, dans le panneau gauche de la boîte de dialogue Editeur de services et sélectionnez Avertissement dans la liste déroulante Niveau du message.
Tout message d'erreur ou d'avertissement généré au cours de l'exécution du modèle dans le cadre d'un service est rapporté au client.
- Cliquez sur Analyse 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. Vous pouvez également recevoir d'autres messages. Les avertissements peuvent être ignorés mais pas les erreurs. Cliquez avec le bouton droit sur les messages d'erreur de la boîte de dialogue Editeur pour savoir comment les résoudre.
- Cliquez sur 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. Une fois le service publié avec succès, la boîte de dialogue Réussite apparaît.
- Cliquez sur OK.
Utilisation
- Ouvrez UsingDriveTimePolygonsService.mxd.
Notez que cette carte affiche une couche de fond de carte ArcGIS Online et zoome sur San Francisco.
- Créez, le cas échéant, une connexion utilisateur à ArcGIS for Server à partir de la fenêtre Catalogue.
- Développez la connexion utilisateur, puis la boîte à outils DriveTimePolygonsService.tbx.
- Ouvrez l'outil Calculer les polygones de temps de conduite en double-cliquant dessus.
- Ajoutez un point pour créer une localisation de ressource.
- Spécifiez 2 3 4 comme valeurs de temps de conduite, puis cliquez sur OK pour exécuter la tâche.
ArcGIS for Server reçoit la requête, résout l'analyse et renvoie une couche, des polygones, qui contient la zone de desserte générée.
- Activez cette couche de polygones pour la rendre visible.
Vérifiez le résultat de la tâche dans la fenêtre Résultats.
Vous pouvez, éventuellement, réexécuter l'analyse en ajoutant plus de 10 ressources, afin de savoir si les fonctionnalités du service bloquent la requête.