JEAN-MARC GILLIOT 2014-2015 Durée 1,5 heures Introduction à l automatisation et au développement avec ArcGIS 10.1 3 e année ingénieur Support de TD ArcGIS 10.1 Grande école européenne d'ingénieurs et de managers dans le domaine du vivant et de l'environnement Jean-marc.gilliot@agroparistech.fr
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 2 /22 Conseil, astuce, info question Attention durée étapes/guide objectif à retenir Table des matières I. Traitements par lot... 4 II. Model Builder... 8 III. Scripts Python... 20
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 3 /22 Dossier dans votre espace de travail ou sur votre clé. Ouvrir le projet hauts-seine.mxd Il s agit d un jeu de données sur le département des Hauts de Seine (92). Affichez le groupe de couches : orthophotos
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 4 /22 I. Traitements par lot Durée 15 minutes objectif : Automatiser la répétition d une même opération sur un lot de données. Ré-échantillonez toutes les orthophotos IGN de 1m à 10m. Le groupe de couches «orthophotos» contient 19 photos aériennes. Vérifiez la résolution dans les propriétés de l un d entre elles :
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 5 /22 La fonction ré-échantillonner Ré-échantillonner la première photo. à 10m de résolution. ortho01 ortho01_resample Pour faire les 18 orthophotos restantes vous allez utiliser une capacité des géotraitements : le traitement par lot Clic bouton droit de la souris sur l outil Ré-échantillonner -> Par lot
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 6 /22 Une grille vide apparait. Clic bouton droit de la souris sur la case vide sous «Raster en entrée» Dans le menu qui apparait choisir : Parcourir Allez sélectionner les 18 photos dans le dossier : BDORTHO / ortho_1m ArcGIS remplit le tableau avec la liste de vos 18 images dans la colonne entrée : Sur la première ligne de Taille de cellule entrez : 10 10 Puis cliquez sur cette même cellule bouton droit de la souris et menu -> Remplissage :
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 7 /22 Toutes les cellules de la colonne se remplissent avec cette valeur. Surtout laisser la colonne raster en sortie vide. De cette façon ArcGIS mettra automatiquement un nom différent pour chaque photo en sortie. Bouton OK pour lancer le traitement. Dans la table des matières sélectionnez vos 19 photos et faites un groupe de couches : Affectez à chacun des 2 groupes de couches de photos une gamme d échelles d affichage adéquates. A retenir de la partie I. Traitements par lot Le traitement par lot, permet d exécuter en série la même opération de géotraitement sur une série de donnée (un lot de données). Cela évite de lancer n fois la même opération «à la main», c est un premier niveau d automatisation possible dans ArcGIS.
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 8 /22 II. Model Builder Durée 45 minutes objectif : Maitriser l outil «Model Builder» qui permet de créer des séquences de traitements sous forme de macros. ModelBuilder est une application permettant de créer, modifier et gérer des modèles. Les modèles sont des chaines de traitements (workflows) qui permettent de concaténer des séquences d'outils de géotraitement, en injectant la sortie d'un outil dans un autre outil. ModelBuilder peut être comparé à un langage de programmation visuel, on parle de langage iconique. On va créer un programme informatique de traitements, sans utiliser de langage de programmation classique, mais en construisant un diagramme des opérations, grâce à une interface graphique :
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 9 /22 Grâce Model Builder vous allez créer une macro qui calcul pour chaque polygone le nombre de polygones voisins présents à une distance choisie par l utilisateur. Ajoutez la couche BATI_CHAVILLE.SHP depuis le dossier BDTOPO / E_BATI Vous mettrez au point votre modèle sur cette couche. Vous utiliserez une zone buffer pour analyser le voisinage des bâtiments. Votre macro devra avoir 2 paramètres d entrée : - une couche vectorielle autour de laquelle on fait le buffer - taille de la zone buffer La création des modèles de Model Builder se fait dans des boites à outils d ArcToolBox. Ouvrez ArcToolBox Ouvrez le volet ArcCatalog pour créer une boite à outils dans votre dossier de projet : Accueil Clic bouton droit dans le dossier Choisir Nouveau Enfin choisir Boite à outils La boite toolbox.tbx a été créée
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 10 /22 Ajoutez maintenant cette boite dans ArcToolBox : Clic droit sur ArcToolbox Ajouter Votre boite est ajoutée à ArcToolbox. Créez maintenant un modèle dans cette boite à outils : Cliquez avec le bouton droit de la souris sur votre boîte ToolBox Pour créer un nouveau modèle Une fenêtre apparaît où vous allez pouvoir créer votre modèle de traitement Pour ajouter des opérations à votre modèle : faites glisser les fonctions depuis les boites ArcToolBox vers votre fenêtre :
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 11 /22 Faites glisser la création de zone tampon Pour chaque opérateur ajouté on doit lui adjoindre ses paramètres d entrée et de sortie Paramètres d entrée opérateur paramètre de sortie Comme pour les opérateurs vous pouvez faire glisser des paramètres, faites glisser la couche batiment Permet de connecter un paramètre avec un traitement Servez vous de cet outil pour connecter (relier) bâtiment à zone tampon
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 12 /22 Avec le bouton gauche de la souris sur Mettre une distance de par ex 20m pour le buffer Remarquez alors que le diagramme devient coloré, cela signifie que comme tous les paramètres sont remplis le modèle est prêt à être exécuter. Permet de lancer l'exécution du modèle Remarquez l ombrage qui apparaît après exécution. Les éléments ombrés ont été exécutés. Si vous relancez le modèle Rien ne sera exécuté : Pour forcer l exécution de tout le modèle, même si des parties ont déjà été exécutées :
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 13 /22 Cliquez avec le bouton droit de la souris sur batiment_buff = sortie Il est considéré comme une couche temporaire = intermédiaire Cochez aussi : Ajouter à la carte Exécutez de nouveau le résultat apparaît à l écran. Sauver votre modèle Vous allez maintenant paramétrer vos 2 paramètres d entrées et permettre à l utilisateur de les choisir. Cliquez avec le bouton droit sur BATIMENT et cliquez Paramètre du modèle De cette façon la couche d entrée devient un paramètre Et pourra être choisie. Remarquez le P qui apparaît à coté de BATIMENT Sauver votre modèle puis fermez votre fenêtre de Modèle Depuis ArcToolBox double cliquez (bouton gauche) sur votre Modèle Cela exécute votre modèle sans entrer dans l éditeur Une boite de dialogue permet de choisir la couche d entrée pour faire les buffers
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 14 /22 On a paramétré notre modèle et on peut maintenant le faire fonctionner sur n importe quelle couche vectorielle. Pour retourner à l éditeur : cliquez avec le bouton droit sur votre modèle, puis Edition Vous allez de même paramétrer la taille du buffer Cliquez avec le bouton droit sur Zone tampon : Puis le transformer en paramètre d entrée Renommer le (bouton droit -> renommer)
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 15 /22 Sauver et fermer le modèle. L exécuter Vous pouvez maintenant choisir les 2 paramètres : la couche et la taille du buffer Vous pouvez aussi créer le paramètre taille en cliquant sur le fond avec le bouton droit de la souris et en choisissant «Créer une variable» (type entier)
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 16 /22 Vous allez maintenant poursuivre la construction de votre modèle : Utiliser la jointure spatiale pour «compter» les bâtiments présents dans la zone buffer. Une classe d entités (couche polygones) identique aux bâtiments est produite le champ JOIN_COUNT contient le nombre de bâtiments trouvés dans la zone buffer par la jointure spatiale. Attention la jointure spatiale compte le bâtiment lui-même. Avec la calculatrice on va décrémenter le champ JOIN_COUNT
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 17 /22 Les 3 bâtiments trouvés autour du bâtiment Afficher sous forme d étiquette le nombre trouvé Ajouter la couche BASIAS.SHP il s agit d une base de données française créée en 1998 pour récolter et conserver la mémoire des «anciens sites industriels et activités de service» (sites abandonnés ou non), susceptibles d'avoir laissé des installations ou des sols pollués. Grâce Model Builder vous allez créer une macro qui produit une couche des sites basias qui sont dans des communes qui contiennent un nombre minimum fixé de sites (paramètre du modèle) On peut créer une variable qui n est pas directement connectée à une entrée d un traitement mais qui peut être utilisée dans une expression, par exemple la variable seuil, pourra être utilisé dans les expressions avec la syntaxe : %seuil%.
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 18 /22 Grâce Model Builder vous allez créer une macro qui découpe tous les rasters contenus dans un répertoire par les limites d une couche vecteur. Ici les 19 orthophotos ont été découpées par les limites du département. - Vous mettrez en paramètres d entrée : la couche vecteur et le répertoire contenant les rasters. - Utilisez dans Model Builder un itérateur de Rasters, qui permet de gérer une boucle de traitement sur tous les rasters : - Menu : Insérer -> itérateurs -> Itérateur Rasters Le variable «Nom» contient le nom du fichier à chaque itération.
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 19 /22 - Vous devez dans un premier temps copier le raster en TIF 32BITS : Copy_Raster (pour que la fonction découper marche) - La fonction Découper permet de découper le raster par les limites de polygones. - Désactiver dans les paramètres d environnement la génération des pyramides pour accélérer le traitement. Utilisez plutôt les orthophotos à 10m que vous avez produit au point I.
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 20 /22 III. Scripts Python Durée 10 minutes objectif : Introduction à l environnement de programmation ArcObject en langage Python Pour des scripts plus complexes, ou pour de plus gros programmes, par exemple pour développer de nouveaux traitements ou des modèles complexes on peut utiliser d autres environnements de programmation. Les utilisateurs ont la possibilité de développer leurs propres extensions personnalisées dans ArcGIS for Desktop en travaillant avec les ArcObjects, la bibliothèque de composants logiciels d ArcGIS. Ils peuvent développer des extensions et des outils personnalisés à l aide d interfaces de programmation Windows standard, telles que Visual Basic (VB),.NET, Java et Visual C++. ArcGIS Engine est une bibliothèque complète de composants SIG qui peuvent être incorporés par des développeurs dans leurs applications personnalisées. Grâce à ArcGIS Engine, les développeurs peuvent incorporer des fonctions ArcGIS dans leurs applications. Enfin on peut accéder à ArcObjects depuis des scripts en python qui sont complétement intégrés dans ArcToolbox comme les modèles que vous avez vu au point II.
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 21 /22 Repérez dans ArcToolbox les icones différentes pour les modèles et pour les scripts python. Modèle Script Clic droit de la souris sur un script : Modifier
ArcGis 10.1 Introduction à l automatisation avec ArcGIS 10.1 22 /22 On peut exporter un modèle en script python. Depuis l éditeur de modèle : Menu -> Fichier -> Exporter