Intégration de scripts à un modèle
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.
Le point de départ de l'intégration d'un script à un modèle est le script lui-même. Celui-ci doit être écrit de sorte à pouvoir être intégré à la structure de géotraitement. Pour plus d'informations, reportez-vous à la rubrique Ecriture d'un script Python.
Une fois le script écrit, un outil de script peut être créé et ajouté à une boîte à outils. Cet outil de script peut être ajouté à un modèle et utilisé pour doter le modèle de fonctionnalités supplémentaires.
Exemple d'application
ArcGIS ne comporte aucune fonctionnalité intégrée permettant d'utiliser le format HTML. Toutefois, les scripts Python permettent d'accéder à des méthodes et fonctions qui rendent possible la création et la modification de documents HTML. Pour ajouter cette fonctionnalité HTML à ArcGIS, vous pouvez intégrer un outil de script Python à un modèle.
L'exemple suivant exécute des requêtes spatiales et d'attributs sur une couche de parcelles et génère un rapport HTML détaillant les attributs d'une parcelle spécifiée par utilisateur et des parcelles voisines. La génération HTML est réalisée dans un script Python exécuté à partir du modèle.
Script Python
Le script suivant, tabletohtml.py, permet de lire le contenu d'une table en entrée et de générer un rapport HTML. Le code de script est fourni à la fin de cette rubrique.
Création d'un outil de script
La procédure suivante vous indique comment créer un outil de script qui exécute le script tabletohtml.py. Pour plus d'informations sur la création d'outils de script, reportez-vous à la rubrique Présentation rapide de la création d'outils de script
- Cliquez avec le bouton droit sur une boîte à outils et cliquez sur Ajouter > Script.
L'Assistant Ajouter un script s'ouvre.
- Utilisez l'Assistant Ajouter un script pour spécifier les propriétés générales du script.
- Sur la page suivante de l'Assistant Ajouter un script, indiquez quel script doit être exécuté lorsque l'outil de script est exécuté.
- Sur la page suivante de l'Assistant Ajouter un script, spécifiez les propriétés des paramètres de l'outil de script. Celui-ci comporte deux paramètres : une table en entrée et un fichier HTML en sortie. Ces paramètres ont également été définis dans le script tabletohtml.py.
- Cliquez sur Terminer pour ajouter l'outil de script à la boîte à outils.
Ajout de l'outil de script à un modèle
- Le modèle Parcel Report exécute des requêtes spatiales et d'attributs sur une couche de parcelles. Ajoutez le script Table to HTML au modèle pour ajouter la fonctionnalité de génération HTML voulue.
- Connectez la sortie de l'outil Sélectionner une couche par emplacement en tant qu'entrée de l'outil de script et définissez le chemin d'accès de la sortie de l'outil de script (le chemin d'accès du fichier HTML à générer). Renommez la sortie de l'outil de script Rapport et convertissez-la en paramètre de modèle.
import sys, string, os, arcgisscripting gp = arcgisscripting.create(9.3) tablePath = gp.GetParameterAsText(0) filePath = gp.GetParameterAsText(1) outfile = open(filePath, "w") fields = gp.ListFields(tablePath) fieldNames = [] for field in fields: if (field.type <> "Geometry" and field.type <> "BLOB"): fieldNames.append(field.name) outfile.write("<table border=""1"">\n") outfile.write("<tr>\n") for fieldName in fieldNames: outfile.write("<th>" + fieldName + "</th>\n") outfile.write("</tr>\n") cur = gp.SearchCursor(tablePath) row = cur.Next() while row: outfile.write("<tr>\n") for fieldName in fieldNames: outfile.write("<td>" + str(row.getValue(fieldName)) + "</td>\n") outfile.write("</tr>\n") row = cur.Next() del cur outfile.write("</table>\n") outfile.flush() outfile.close()