Vous pouvez choisir d'exécuter les outils au premier plan ou en arrière-plan en cliquant sur Géotraitement > Options de géotraitement dans la barre d'outils Standard.
Le volet Traitement en arrière-plan vous permet de contrôler si un outil s'exécute au premier plan ou en arrière-plan.
- Si l'option Activer est sélectionnée, les outils s'exécutent en arrière-plan et vous pouvez continuer à utiliser ArcMap (ou d'autres applications ArcGIS comme ArcGlobe) pendant l'exécution d'un outil. Vous observez une barre de progression au bas de votre document, affichant le nom de l'outil actuellement en cours d'exécution. A l'issue de l'exécution de l'outil, une notification contextuelle apparaît sur la barre d'état système. Vous pouvez contrôler la durée d'affichage du message de notification en déplaçant la glissière Notification. Vous pouvez également désactiver le message en déplaçant la glissière complètement sur la gauche.
- Si l'option Activer n'est pas sélectionnée, les outils s'exécutent au premier plan. Lorsqu'un outil s'exécute au premier plan, vous devez attendre la fin de son exécution avant de continuer votre travail.
Traitement en arrière-plan
Lorsque vous exécutez un outil à l'aide de sa boîte de dialogue ou dans la fenêtre Python, la progression de l'outil apparaît comme illustré ci-dessous.
Vous pouvez également suivre cette progression dans la fenêtre Résultats. La fenêtre Résultats peut s'ouvrir de plusieurs manières :
- Ouvrez la fenêtre Résultats en cliquant sur Géotraitement > Résultats.
- Cliquez sur la barre d'état (illustrée ci-dessus) située dans le bas de la fenêtre ArcMap pour ouvrir la fenêtre Résultats sur l'outil en cours d'exécution.
- Cliquez sur le message de réussite ou d'échec pour ouvrir la fenêtre Résultats directement sur les messages d'exécution de cet outil.
L'exécution d'un outil en arrière-plan vous permet de lancer d'autres outils à l'aide de la boîte de dialogue de l'outil. Un seul outil s'exécutera en arrière-plan ; tous les autres outils seront mis en attente d'exécution. Dès qu'un outil a fini de s'exécuter, l'exécution de l'outil suivant démarre.
Vous ne pourrez pas démarrer une session de mise à jour si des outils sont exécutés en arrière-plan. Dans ce cas, un message vous informe que la session de mise à jour ne peut pas être démarrée. Vous devez permettre la fin de l'exécution de tous les outils de géotraitement en arrière-plan (ou les annuler) avant de démarrer une session de mise à jour.
Avec le traitement en arrière-plan, lorsque vous exécutez un outil dans la fenêtre Python, la fenêtre Python ne peut pas être utilisée tant que l'exécution de cet outil n'est pas terminée.
Les outils de modèle ou de script personnalisés sont exécutés par défaut au premier plan
Vos outils de modèle ou de script personnalisés s'exécuteront par défaut au premier plan, même si vous avez activé le traitement en arrière-plan. Pour permettre à vos outils personnalisés de s'exécuter en arrière-plan, vous devez effectuer deux opérations :
- Assurez-vous que votre outil respecte les principes spécifiés à la rubrique Exécution d'outils personnalisés (de modèle ou de script) en arrière-plan.
- Cliquez avec le bouton droit sur votre modèle ou outil de script personnalisé, puis cliquez sur Propriétés. Sous l'onglet Général, désactivez l'option Toujours exécuter au premier plan.
Les couches ArcMap affectées sont verrouillées lorsqu'un outil est exécuté en arrière-plan
Lorsque la sortie d'un outil de géotraitement est une couche de la carte (comme c'est le cas avec l'outil Sélectionner une couche par attribut) ou que l'outil modifie les données en entrée (comme c'est le cas avec l'outil Ajouter un champ ou n'importe quel outil de la boîte à outils Mise à jour), la couche est verrouillée pendant l'exécution de l'outil. Une icône de verrou apparaît sur la couche dans les tables des matières pour indiquer qu'elle est verrouillée pour le traitement. Si vous actualisez la carte lorsqu'une couche est verrouillée, celle-ci ne s'affichera pas. Une fois le traitement de l'outil terminé, la carte est actualisée et vous pouvez continuer à modifier la couche.
Annulation d'un outil exécuté en arrière-plan
Pour annuler l'exécution d'un outil en arrière-plan, ouvrez la fenêtre Résultats et recherchez l'outil exécuté (comporte une icône en forme de sablier ou d'horloge). Cliquez avec le bouton droit sur le résultat, puis cliquez sur Annuler. Cette méthode permet également d'annuler des tâches en file d'attente et pas encore exécutées.
Lorsqu'un outil reçoit l'instruction d'annulation, il essaie d'effectuer un nettoyage à la fin de son exécution, en supprimant toutes les données qu'il a créées et en affichant un message d'avertissement. Selon le type de nettoyage effectué par l'outil, l'annulation peut prendre plus ou moins de temps.
Les outils système peuvent s'exécuter au premier plan même lorsque le traitement en arrière-plan est activé
Il arrive parfois que les outils s'exécutent au premier plan même si le traitement en arrière-plan est activé :
- Si vous modifiez des données, tous les outils de géotraitement s'exécutent au premier plan. Même si les données que vous modifiez ne sont pas utilisées par les outils de géotraitement, ArcGIS exécute néanmoins tous les outils au premier plan. Cette procédure empêche une situation dans laquelle un outil exécuté en arrière-plan modifie les données que vous mettez à jour.
- Si vous ouvrez la fenêtre ModelBuilder et exécutez un modèle, tous les processus du modèle s'exécutent au premier plan. L'utilisation de la fenêtre ModelBuilder s'apparente à une session de mise à jour. Tous les processus s'exécutent au premier plan pour empêcher que la modification du workflow n'entraîne des résultats indésirables.
- Certains outils système, par exemple l'outil Mettre à niveau la géodatabase, s'exécutent toujours au premier plan en raison du verrouillage des données et des besoins d'intégrité. D'autres outils système peuvent s'exécuter au premier plan s'ils doivent accéder à la carte actuelle.
Utilisation de l'espace de travail temporaire avec un traitement en arrière-plan
L'espace de travail temporaire possède de nombreuses propriétés communes avec la géodatabase fichier, à cette différence qu'il détient les entités et les rasters en mémoire. Lorsque l'application est active, les données sont stockées dans la mémoire interne (RAM) du système. L'utilisation de l'espace de travail temporaire présente généralement des avantages en termes de performances, car le système n'a pas besoin d'écrire sur le disque. Gardez les points suivants à l'esprit lorsque vous utilisez l'espace de travail temporaire avec un traitement en arrière-plan :
- Le traitement en arrière-plan est un processus distinct d'ArcMap ou d'ArcCatalog. Ces processus ne peuvent pas partager la mémoire (RAM). Lorsqu'un outil est exécuté, les données qu'il utilise doivent être ouvertes par les processus en arrière-plan. Par conséquent, une classe d'entités en entrée est ouverte directement par les processus en arrière-plan, mais les couches dans ArcMap doivent suivre un autre chemin. Supposons par exemple que vous possédez une couche d'entités ponctuelles en entrée dans ArcMap et que vous voulez bufferiser ces points avec la sortie écrite dans l'espace de travail temporaire d'ArcMap. Lors de l'exécution de l'outil Zone tampon en arrière-plan, les entités en entrée sont écrites sur le disque, le processus en arrière-plan les lit à partir du disque en mémoire, l'outil Zone tampon est exécuté, puis l'outil Zone tampon écrit la sortie dans son propre espace de travail temporaire en arrière-plan. La sortie est alors écrite sur le disque afin qu'ArcMap puisse lire la sortie rebufferisée dans son espace de travail en mémoire correspondant. Il ressort de toutes ces étapes que les avantages en termes de performances sont rares avec un seul outil qui écrit la sortie dans l'espace de travail temporaire. Toutefois, il est beaucoup plus probable qu'un modèle ou un script qui exécute plusieurs outils et écrit ses données intermédiaires dans l'espace de travail temporaire effectue le traitement plus rapidement, car il n'est pas nécessaire de transférer les données entre deux espaces de travail temporaires différents. Ainsi, au lieu d'exécuter un outil à la fois dans ArcMap tout en utilisant le traitement en arrière-plan, créez un modèle ou un script pour votre workflow.
- La plupart des outils Créer, tels que Créer une géodatabase fichier et Créer une classe d'entités, utilisent deux paramètres en entrée (un espace de travail et un nom) pour générer une nouvelle sortie. Ces outils vous permettent d'entrer l'espace de travail in_memory. Cependant, lors d'une exécution en arrière-plan, le résultat de la sortie créée récemment est toujours renvoyé sous forme d'emplacement sur le disque, même si l'espace de travail in_memory est utilisé. Ces outils conviennent mieux à un workflow dans ModelBuilder ou un outil de script Python où l'espace de travail temporaire peut être utilisé tout au long de l'exécution de l'outil.
Fermeture des applications lorsque les outils sont mis en attente ou exécutés en arrière-plan
Dans ArcMap (ArcGlobe ou ArcScene), vous pouvez quitter et enregistrer le document lorsque des outils sont exécutés ou mis en attente. Dans ce cas, tous les outils exécutés seront arrêtés. Les outils exécutés et mis en attente passeront à l'état Non exécuté dans la fenêtre Résultats du document enregistré. Ces entrées affichent des icônes creuses et peuvent être exécutées en cliquant avec le bouton droit sur le résultat puis en sélectionnant Réexécuter.
Un outil exécuté ou mis en attente lorsqu'ArcCatalog est quitté sera immédiatement arrêté. Le résultat de l'outil est déplacé vers la section Non exécuté de la fenêtre Résultats. L'outil peut être réexécuté comme indiqué précédemment.
Traitement au premier plan
Lorsque le traitement en arrière-plan est désactivé, les outils s'exécutent au premier plan, et vous devez attendre la fin du processus avant de pouvoir réutiliser l'application. Une fois que l'exécution d'un outil commence, la boîte de dialogue de progression apparaît, comme illustré ci-dessous. Cliquez sur Détails pour afficher les messages d'exécution.
Un message d'avertissement apparaîtra sous la forme de texte vert dans les messages de l'outil, avec le préfixe AVERTISSEMENT suivi d'un code numérique. Un avertissement signifie que la sortie peut ne pas contenir ce que vous attendez. Dans le cas illustré ci-dessous, l'outil a créé une sortie vide. Le code numérique est un hyperlien sur lequel vous pouvez cliquer pour afficher une description complète de l'avertissement et les solutions possibles.
Un message d'erreur apparaît sous la forme de texte rouge, avec le préfixe ERREUR suivi d'un code numérique.
Une fois qu'un outil s'est exécuté et que vous fermez la boîte de dialogue de progression, vous pouvez examiner tous les aspects de l'exécution dans la fenêtre Résultats.
Annulation d'un outil exécuté au premier plan
Au cours de l'exécution d'un outil, vous pouvez annuler l'exécution en cliquant sur le bouton Annuler dans la boîte de dialogue de progression.
Lorsqu'un outil reçoit l'instruction d'annulation, il essaie d'effectuer un nettoyage à la fin de son exécution, en supprimant toutes les données qu'il a créées et en affichant un message d'avertissement. Selon le type de nettoyage effectué par l'outil, l'annulation peut prendre plus ou moins de temps.
Considérations sur les performances
Le traitement en arrière-plan s'apparente à l'exécution d'une autre session ArcMap sur votre ordinateur mais sans que la fenêtre ArcMap ne soit ouverte. Ce processus supplémentaire (session) est lancé la première fois qu'un outil s'exécute en arrière-plan et reste actif jusqu'à la fermeture de votre session ArcMap. Vous noterez un bref délai à la première exécution d'un outil lorsque le processus en arrière-plan démarre.
Si vous utilisez des jeux de données volumineux, certains outils de géotraitement, en particulier ceux qui s'appuient sur un traitement tuilé, mobilisent beaucoup plus de ressources (mémoire et unité centrale) que votre système informatique ne peut en offrir. Si vous ne parvenez pas à exécuter un outil en arrière-plan en raison d'une quantité de mémoire disponible insuffisant (erreur « 000426: Out Of Memory » ou « 999998: Unexpected Error »), vous pouvez essayer la procédure suivante :
- Identifiez et quittez les applications non essentielles utilisant beaucoup de mémoire.
- Désactivez le traitement en arrière-plan dans la boîte de dialogue Options de géotraitement (Géotraitement > Options de géotraitement). Cette méthode interrompt le processus en arrière-plan et libère des ressources.
- Réexécutez l'outil.
En suivant la procédure précitée, vous contournez le traitement en arrière-plan ; le processus en arrière-plan supplémentaire ne démarre pas et les ressources qu'il mobiliserait sont à présent disponibles pour votre outil. Pendant l'exécution de l'outil, évitez de démarrer d'autres applications nécessitant beaucoup de mémoire.