Publier des services de calcul d’itinéraire personnalisés

Les services de calcul d’itinéraire personnalisés sont des services de géotraitement avec des fonctionnalités personnalisées. Tandis que les services de calcul d’itinéraire standard effectuent uniquement des processus d’analyse de réseau spécifiques avec un jeu d’options par défaut, vous pouvez publier un service de calcul d’itinéraire personnalisé si vous avez besoin de fonctionnalités supplémentaires ou de davantage de flexibilité dans les processus d’analyse. Par exemple, vous pouvez rechercher un itinéraire entre deux arrêts et générer un profil d’altitude pour cet itinéraire ou associer plusieurs analyse de réseau différentes dans un seul service web. Pour une telle analyse, vous pouvez créer un service de calcul d’itinéraire personnalisé. Les services de calcul d’itinéraire personnalisés sont des services de géotraitement avec des fonctionnalités personnalisées. Les services de géotraitement vous permettent de partager des outils d’analyse personnalisés dans ArcGIS Server, un composant de ArcGIS Enterprise. Les services de géotraitement s’exécutent souvent en tant qu’outils web hébergés sur le portail ArcGIS Enterprise. Ces outils sont créés et exécutés dans ArcGIS Pro en tant qu’outil de script avant d’être partagés sur un serveur.

La création d’un service de calcul d’itinéraire personnalisé (service de géotraitement) est un processus en trois étapes, comme décrit dans les sections suivantes.

Créer un outil de script

La première étape de la création d’un service de calcul d’itinéraire personnalisé consiste à créer et à documenter un outil de script de géotraitement basé sur un module Python arcpy et arcpy.nax et à écrire le code Python qui mettra en œuvre la logique pour exécuter l’outil de script. L’outil est créé dans une boîte à outils.

En savoir plus sur la création d’un outil de script Python à l’aide d’arcpy.nax

Publier le service

Une fois l’outil créé, exécutez-le dans ArcGIS Pro pour vous assurer que l’outil fonctionne correctement. Une fois l’exécution de l’outil terminée, dans l’historique de géotraitement, vous pouvez partager le résultat en tant qu’outil web à partir de ArcGIS Pro. Le partage crée l’élément de service de géotraitement dans la connexion au serveur. Vous pouvez ajouter plusieurs outils que vous avez exécutés dans le même service de géotraitement au cours de la publication. Vous pouvez publier un service de géotraitement depuis ArcGIS Pro vers un serveur autonome (non fédéré avec un portail ArcGIS Enterprise) grâce à une connexion administrateur. Si vous utilisez un site de serveur fédéré avec un portail ArcGIS Enterprise, vous partagez les outils web sur votre portail ArcGIS Enterprise.

Découvrir comment publier et utiliser un service de géotraitement dans cet exemple

Utiliser le service

Une fois que le service de géotraitement a été publié sur ArcGIS Server (y compris lorsqu’un outil web est partagé sur un portail avec un site de serveur fédéré), les utilisateurs autorisés peuvent y accéder directement sur le site de serveur à l’aide de différentes opérations dans ArcGIS REST API et l’utiliser dans ArcGIS Pro, dans le widget Geoprocessing (Géotraitement) de ArcGIS Web AppBuilder, dans les applications web personnalisées avec ArcGIS API for JavaScript, etc.

Remarque :

Le service de calcul d’itinéraire personnalisé ne peut pas être utilisé dans ArcGIS Pro via le ruban d’analyse de réseau.

Conseils pour la création des services de géotraitement

Pour améliorer les performances des services de géotraitement, suivez les conseils ci-dessous :

  • Lorsque vous définissez le paramètre de jeu de données réseau dans l’outil de script, pour le type de données, utilisez Network Dataset Layer (Couche de jeu de données réseau) au lieu de Network Dataset (Jeu de données réseau) ou Network Data Source (Source de données réseau). Avant de le publier en tant qu’outil web, exécutez l’outil de script et fournissez un jeu de données réseau issu de la carte. Dans la mesure où la connexion au jeu de données réseau est établie une fois que vous démarrez le service, vous n’avez pas besoin d’ouvrir le jeu de données réseau pour chaque requête de service, ce qui fait gagner du temps.
  • Lorsque vous lisez le paramètre de jeu de données réseau dans l’outil de script, utilisez la méthode GetParameterAsText au lieu de la méthode GetParameter, dans la mesure où la méthode GetParameterAsText donne accès à la couche de jeu de données réseau beaucoup plus rapidement.
  • Écrivez un outil de script de géotraitement à l’aide du module Python arcpy.nax. Cela permet d’accélérer le temps d’exécution par rapport aux services créés à partir de l’outil de modèle de géotraitement ou par rapport aux services créés à partir d’un outil de script à l’aide d’arcpy.nax en utilisant le processus basé sur la couche.
  • Lorsque vous définissez le paramètre d’entité en entrée pour l’outil de script, utilisez le type de données Feature Set (Jeu d’entités). Lorsque vous utilisez le jeu d’entités et définissez la valeur par défaut sur un fichier de couche, ce dernier fait référence en interne à la classe d’entités qui définit la structure pour le jeu d’entités. Une fois le service publié, il existe une structure bien définie pour la sortie.
  • Écrivez les sorties dans un espace de travail basé sur la mémoire au lieu d’une géodatabase fichier.
  • Évitez d’écrire un trop grand nombre de messages à partir de l’outil de script.
  • Lorsque vous partagez le résultat de l’analyse en tant qu’outil web ou en tant que service de géotraitement, définissez le mode en entrée pour le paramètre de jeu de données réseau sur le mode constant. Dans la mesure où le service utilise toujours le même jeu de données réseau, définir le jeu de données réseau sur le mode constant permet de s’assurer qu’il n’est pas disponible sur le service résultant créé par l’outil.
  • Pour des performance optimales, sélectionnez le mode synchrone pour les requêtes courtes.
  • Si vous sélectionnez le mode synchrone pour le service de géotraitement, vous pouvez améliorer encore davantage les performances du service de géotraitement en définissant la propriété reusejobdir sur true. Prenez garde aux contraintes lorsque vous définissez cette propriété, car définir reusejobdir sur true utilise le même dossier de tâches pour toutes les tâches. C’est pourquoi, si vous écrivez les sorties dans le répertoire des tâches, vous devez vous assurer qu’elles ont un nom unique dans chaque exécution pour qu’elles n’aient pas d’impact les unes sur les autres.