Intégration de programmes externes dans ModelBuilder
Les scripts écrits dans Python ou dans d'autres langages de script peuvent être intégrés à des modèles en les convertissant en outils de script et en les ajoutant à un modèle. L'intégration de scripts peut être utilisée lorsque la logique Python ou d'un autre langage de script est nécessaire pour améliorer un modèle ou pour accéder à un paquetage ou programme externe à partir d'ArcGIS.
Cette section décrit comment intégrer R, un paquetage de statistiques externe, à l'environnement ModelBuilder. Dans l'exemple ci-dessous, la fonctionnalité R a été exécutée à l'aide de deux scripts : un script Python pour appeler le code source de R et un script pour appeler le code source de R en lui-même. Le script Python est exécuté depuis ModelBuilder et agit en tant que conduit, essentiellement chargé d'organiser et de diriger les arguments de ModelBuilder vers le paquetage R.
L'exemple décrit comment les deux scripts travaillent et interagissent via un modèle dans l'environnement ArcGIS. Utilisez la procédure ci-dessous comme un didacticiel ou lisez-la simplement pour la comprendre et éventuellement l'appliquer à votre projet.
- Téléchargement et extraction de données
- Installation du paquetage R sur votre système
- Création d'un modèle et ajout de l'outil de script à un modèle
- Remplissage des paramètres d'outil de script
- Exécution du modèle
1-Téléchargement et extraction de données
Le script d'exemple, Using R in ArcGIS 10, est téléchargé à partir de la bibliothèque d'outils de modèle et de script du Centre de ressources de géotraitement. Le dossier décompressé contient quatre sous-dossiers et un outil de script : Point Clustering (R Version).
2-Installation de R
Le paquetage R doit être installé sur le système pour que l'outil de script puisse être exécuté. Si vous utilisez cette section comme un didacticiel ou souhaitez savoir comment ce script fonctionne en vue d'une utilisation ultérieure, lisez attentivement les instructions du fichier Readme.pdf qui se trouve dans le sous-dossier Doc du Centre de ressources du script que vous avez téléchargé. Le paquetage R est spécifiquement prévu pour cet exemple ; si vous utilisez un autre programme externe, il vous incombe de savoir comment installer le logiciel.
3-Création d'un modèle et ajout de l'outil de script à un modèle
Le dossier téléchargé comporte une boîte à outils, nommée R Tools, dans laquelle se trouve un outil de script. Un nouveau modèle est ajouté à la boîte à outils en cliquant avec le bouton droit sur Nouveau > Modèle. Un modèle vide s'ouvre. L'outil de script Point Clustering (R Version) est ajouté en le faisant glisser sur le modèle à partir de la fenêtre Catalogue, comme tout autre outil de géotraitement, et crée une variable de données dérivées en sortie connectée à l'outil de script.
Cette section ne couvre pas l'écriture d'un script Python ni la création d'un outil de script. Pour apprendre à lancer et créer un script, reportez-vous à la rubrique consacrée à l'écriture d'un script Python. Pour apprendre à créer un outil de script, reportez-vous à la rubrique En savoir plus sur l'intégration de scripts à un modèle.
Fonctionnement de l'exemple de script Python
L'outil de script ajouté au modèle peut être modifié en cliquant dessus avec le bouton droit, puis en choisissant Modifier. Le script PointCluster.py est similaire à l'illustration ci-dessous :
Le code du script appelle les paramètres en entrée de l'outil dans ArcGIS et transmet ces paramètres au paquetage de statistiques R via le script R. Lorsque les paramètres sont transmis à R à partir d'ArcGIS, le programme R est exécuté et calcule les agrégats pour les entrées recueillies avec le script Python dans ModelBuilder. Les résultats sont ensuite retournés pour être affichés dans ArcMap.
Fonctionnement du script R
Vous ne pouvez pas voir le script R dans ModelBuilder ou à partir de la fenêtre Catalogue. Toutefois, il se trouve dans le sous-dossier Scripts du fichier téléchargé. Le script PointCluster.r est écrit et enregistré pour les besoins de cet exemple et est appelé en tant que fonction R externe dans ModelBuilder. Si vous utilisez un autre programme, vous devez connaître les fichiers associés à créer. Vous pouvez ensuite appeler ces scripts, écrits pour n'importe quel programme, à partir du script Python et les exécuter dans ModelBuilder.
Le script PointCluster.r est présenté ci-dessous. Le fichier R obtient les arguments en entrée de l'outil de script basé sur Python utilisé dans ModelBuilder pour recueillir les paramètres en entrée. En fonction des entrées que vous fournissez, le fichier R exécute l'analyse d'agrégats. Ces résultats sont transmis à l'application ModelBuilder ou ArcGIS via le script Python et affichés dans ArcMap avec le rendu appliqué.
4-Remplissage des paramètres d'outil de script
L'exemple de script exécute une analyse d'agrégats sur la classe d'entités ponctuelles en entrée selon la méthode d'agrégat et les valeurs d'attribut des points. Dans cet exemple, une classe d'entités ponctuelles qui représente les appels d'urgence est utilisée en tant qu'entrée. Ces données se trouvent dans le dossier ToolData téléchargé à partir du Centre de ressources. Les données d'origine sont modifiées pour cet exemple. Chaque point a une valeur de comptage qui indique le nombre d'appels dans une zone spécifique autour de ce point. Le champ de comptage permet de calculer cinq agrégats à l'aide de la méthode d'agrégat KMEANS_HARTIGAN.
Ces paramètres en entrée sont définis via le script Python. L'outil de script Python est doté d'une boîte de dialogue dans laquelle les paramètres en entrée peuvent être désignés dans ArcGIS.
5-Exécution du modèle
Lorsque le modèle qui contient l'outil de script R est exécuté, la fenêtre d'exécution de la ligne de commande s'affiche. Elle indique que l'exécution du programme de paquetage R est en cours de préparation.
Le script lance ensuite le paquetage de statistiques R et la fenêtre par défaut de la bibliothèque clusTool s'ouvre.
Le paquetage R calcule ensuite les agrégats selon l'entrée fournie via l'outil de script Python. Puis, les résultats sont renvoyés et le rendu est affiché dans ArcMap.