Bien que cet article soit dirigé surtout vers les utilisateurs novices de Model Builder, il peut s’adresser aussi à des utilisateurs plus confirmés, car la procédure qui peut paraître simple à premier abord, comporte un piège.
Dans notre exemple nous allons utiliser une table Excel téléchargée de l’Insee, avec les données du chômage par commune de 2001 à 2012 (lien de téléchargement de la table, lien de la page de téléchargement).
Outre la table Excel, nous allons utiliser la couche Geofla Communes de l’IGN (lien de la page de téléchargement.
Nous souhaitons créer une couche de points avec les données du chômage. Pour cela nous avons comme information, dans la table Excel, le code Insee de la commune (champ texte), et le même code on le retrouve dans la couche Communes GeoFla. Dans cette dernière table, on a les coordonnées XY du centroïde des communes.
Nous allons donc effectuer une jointure de la table Excel avec la table Communes en nous basant sur le code Insee, puis, créer une couche d’évenements XY en utilisant les coordonnées des centroïdes des communes. Nous allons enregistrer le tout dans une nouvelle classe d’entités qui pourra être utilisée directement par la suite.
L’outil central de ce modèle est l’outil jointure:
Suivi par la création d’une couche de points avec des coordonnées XY.
Si vous faites vos premiers pas avec Model Builder, vous allez essayer en vain de faire la jointure de votre table Excel et de votre table communes avec l’outil Jointure.
Pour réussir, le premier indice est donné par l’intitulé des entrées de l’outil. Lisez toujours attentivement ces intitulés car ils vous feront toujours gagner du temps!.
Commençons par le deuxième intitulé : « Table de jointure ». Vous voulez joindre vos données à la table attributaire de la couche Communes. Vous n’aurez pas de problème.
Voyons maintenant le premier intitulé: « Nom de la couche ou vue tabulaire ». Là ça se corse. Une couche (layer) implique forcément une géométrie (point, ligne, polygone) existante. Votre table Excel n’est pas une couche géographique. Ce n’est pas non plus une table dans le sens d’ArcGis (dbf d’un shape, table d’une géodatabase,…). Et une « Vue tabulaire », c’est quoi?
Une vue tabulaire est une interface entre le fichier sur votre disque et les outils d’AcGis. Vous ne pouvez pas accéder directement aux données des fichiers externes, vous devez passer par une vue, une interface. C’est ce que ArcMap fait quand vous chargez une table Excel ou un fichier texte, il crée une vue qu’il met à votre disposition dans la fenêtre de légende.
C’est cette « Vue » qui fait correspondre le nom du champ de la table ArcMap avec une colonne Excel de votre feuille.
Si vous n’avez pas de vue, ArcMap ne peut pas utiliser les colonnes Excel.
Donc, vous avez besoin d’une vue tabulaire et vous n’avez, pour le moment, qu’une table Excel. Il vous faut un outil pour résoudre ce problème et cet outil est l’outil « Générer une vue tabulaire » que vous trouverez dans la boîte à outils « Outils de Gestion de données » -> « Couches et vues tabulaires« .
Le piège est ici!
Maintenant on peut configurer la jointure des deux sources de données:
Pour les jointures, soyez attentifs à l’ordre des entrées, que ce soit dans Model Builder ou dans ArcMap. La première entrée correspond à la table à laquelle vous voulez ajouter les attributs de la deuxième.
Si maintenant vous exécutez le modèle vous aurez la mauvaise surprise de voir que le modèle ne peut pas aboutir, car un message d’erreur vous indique que la table en entrée n’a pas d’OID (identifiant interne). Si en interactif vous pouvez appliquer une jointure à une table Excel, il n’en va pas de même avec les outils du geoprocesseur.
Pour résoudre ce problème il faut commencer par importer la table Excel dans une table ArcGis.
Vous utiliserez la commande Excel vers table de la boîte à outils Conversion de données -> Excel.
Suite du modèle
Maintenant il reste à configurer la génération de points (événements XY):
Mais ce n’est pas fini.
La couche d’événements n’existe qu’au sein du document courant et, de plus, elle ne possède pas d’identifian (OID) interne. Ce manque d’identifiant limite sérieusement les possibilités de travail sur la couche. Il faut donc créer une véritable couche de données, en enregistrant cette couche « événements » dans une geodatabase (ou un fichier shape).
Pour cela nous utilisons l’outil « Classe d’entités vers classe d’entités » de la boîte à outils « Outils de conversion » -> Vers une geodatabase
Nous avons fini de construire le modèle de flux, reste à définir les paramètres du modèle pour son exécution:
Pour les données en entrée, cliquez-droit sur les ovales bleus et sélectionnez Paramètre du modèle
Pour la couche en sortie, faites de même.
Pour les champs à utiliser comme X et Y, cliquez-droit sur l’outil Générer une couche d’événements XY -> Générer une variable -> Variable de départ puis sélectionnez Champ X et Champ Y.
Cliquez-droit sur les deux ellipses bleues et définissez-les comme paramètres du modèle.
Nous obtenons le modèle suivant:
Pour son utilisation comme outil de la toolbox, renommez les éléments qui seront présentés comme paramètres avec des textes explicites:
Vous pouvez sauvegarder le modèle et l’exécuter à partir de la toolbox:
Le résultat de l’exécution du modèle est le suivant: