Vincent GODARD

Département de Géographie

Université de Paris 8


V.1.3 - Dernière mise à jour : 11/10/2024

Fiche Mémo n°2.2. du cours de Master 1 :

Convertir un ModelBuilder en script Python dans ArcGIS Pro

 

Objectifs : Prise en main d'ArcPy en utilisant les précédents TD (fiche mémo 1.5 ou 2.1)


1. Création d'un ModelBuilder

À partir de la fiche mémo 1.5, en particulier une fois le WLC appliqué (2.1.2 Pondération des facteurs et application des contraintes) au niveau de la "Constitution d'une image booléenne d'aptitude minimum"


1.1. Ma première analyse sous ModelBuilder

○ Constitution d'une image booléenne d'aptitude minimum avec un modèle de géotraitement pour créer un masque.

Sur le ruban, dans le groupe Geoprocessing (Géotraitement) de l’onglet Analysis (Analyse), cliquez sur ModelBuilder (ModelBuilder).

fig. 1 - ModelBuilder

None

Sources : ESRI

Un nouveau modèle vierge apparaît.

○ Ajouter la couche MCEWLCmsq en la faisant glisser depuis Contents (Contenu) de la carte.

Puis, sur le ruban, sous l’onglet ModelBuilder, dans le groupe Insert (Insérer), cliquez sur Tools (Outils).

fig. 2 - Tools

None

Sources : ESRI

Dans la zone de recherche, tapez Reclassify.

○ Depuis les résultats de la recherche, faites glisser l’outil Reclassify (Reclassement, Spatial Analyst Tools) dans le modèle, à droite de l’élément de données en entrée MCEWLCmsq.

fig. 3 - Vue de la couche de MCEWLCmsq et de l'outil Reclassify dans le Model Builder (avant paramétrage)

None

Assurez-vous qu’aucun des éléments n’est sélectionné en cliquant dans l’espace vierge de ModelBuilder (ModelBuilder).

Faites glisser une flèche de l’élément MCEWLCmsq vers l’outil Reclassify (Reclassement, Spatial Analyst Tools).

Lorsque vous relâchez le bouton de la souris, les deux éléments du modèle sont connectés et une liste d’options de connexion apparaît.

○ Cliquez sur Input raster (Raster en entrée).

Avant de l’exécuter, vous définissez d’autres paramètres pour ajuster vos résultats.

○ Dans le modèle, double-cliquez sur l’outil Reclassify (Reclassement, Spatial Analyst Tools) pour ouvrir ses paramètres.

Vous allez changer le nom de la sortie et choisir les paramètres comme ceux décrits dans "Constitution d'une image booléenne d'aptitude minimum".

Input raster : MCEWLCmsq

Reclass field : VALUE

Reclassification [utiliser les valeurs ci-dessous.]

Si vous n'arriviez pas à avoir la table ci-dessous en 3 colonnes,

Remplissez-le tableau en Start et End, puis enregistrez-le en ".dbf" : MCEWLCmsq200boolMB.dbf (un MCEWLCmsq200boolMB.cpg est également généré)

Ouvrez-le avec Libre Office et complétez-le comme ci-dessous :

FROM_,N,19,11 TO,N,19,11 OUT,N,10,0 MAPPING,C,15
0.00000000000 200.00000000000 0 ValueToValue
200.00000000000 1000.00000000000 1 ValueToValue

Réenregistrez-le en ".dbf".

Rouvrez-le, cela devrait donner cela :

Attention, la valeur de "End" est exclue et celle de "Start" est incluse !

Start End New
0 200 0
200 1000 1
NODATA NODATA NODATA

Output Raster : MCEWLCmsq200boolMB (je rajoute MB à la fin pour le différencier de celui qui est déjà dans la geodatabase "Westborough24.gdb")

fig. 4 - Vue des paramètres de l'outil Reclassify dans le ModelBuilder

None
Attention, il y a une erreur sur la ligne 2 (remplacez le 2 par 1) !

Puis OK

fig. 5 - Vue de la couche de MCEWLCmsq et de l'outil Reclassify dans le ModelBuilder (après paramétrage)

None

Le nom de l’élément en sortie devient MCEWLCmsq200boolMB.

○ Enfin, il faut modifier l’élément en sortie afin que la couche en sortie soit ajoutée à la carte lors de l’exécution de l’outil.

Cliquez avec le bouton droit sur l’élément de modèle MCEWLCmsq200boolMB, puis cliquez sur Add To Display (Ajouter à la carte).


Il faut maintenant nommer le modèle et l’enregistrer.

○ Sur le ruban, dans l’onglet ModelBuilder (ModelBuilder), dans le groupe Model (Modèle), cliquez sur la flèche déroulante Save (Enregistrer) et sélectionnez Save As (Enregistrer sous).

fig. 6 - Enregistrer le ModelBuilder

None

Sources : ESRI

Dans la fenêtre Save Model As (Enregistrer le modèle sous), pour Name (Nom), saisissez MCEWLCend (c'est la fin du processus !) et cliquez sur Save (Enregistrer).

Le modèle est enregistré. Il faut maintenant l'exécuter.

Sur le ruban, sous l'onglet ModelBuilder, dans le groupe Run (Exécuter), cliquez sur Run (Exécuter).

fig. 7 - Exécuter le ModelBuilder

None

Sources : ESRI

Le modèle s’exécute. Une fenêtre apparaît et vous informe du statut du traitement. Après un certain temps, la couche MCEWLCmsq200boolMB résultante est ajoutée à la fenêtre Contents (Contenu).

Fermez la fenêtre des informations de traitement.

Cliquez sur l’onglet Map (Carte) pour l’activer.


1.2. Ajouter une deuxième analyse sous ModelBuilder

Il s'agit maintenant de masquer la couche d'aptitude MCEWLCmsq par le masque booléen réalisé à l'étape précédente.

○ Faites glisser la couche MCEWLCmsq200boolMB depuis la fenêtre Contents (Contenu) sur l’onglet MCEWLCend (celui du ModelBuilder !) pour l’activer..

Dans l'onglet ou le groupe Geoprocessing (Géotraitement) de la zone de recherche, tapez Times (Multiplier ?, Spatial Analyst Tools).

○ Faites glisser l’outil Time (Multiplier ?) dans le modèle, à droite de l’élément de données en entrée MCEWLCmsq.

fig. 8 - Vue des couches de MCEWLCmsq, MCEWLCmsq200boolMB et de l'outil Times dans le ModelBuilder (avant paramétrage)

None

Assurez-vous qu’aucun des éléments n’est sélectionné en cliquant dans l’espace vierge de ModelBuilder (MCEWLCend).

Faites glisser une flèche de l’élément MCEWLCmsq vers l’outil Times (Multiplier ?, Spatial Analyst Tools) et choisissez dans la liste d’options de connexion Input raster (Raster en entrée) or Constant Value 1;

Faites glisser une autre flèche de l’élément MCEWLCmsq200boolMB vers l’outil Times (Multiplier ?, Spatial Analyst Tools) et choisissez dans la liste d’options de connexion Input raster (Raster en entrée) or Constant Value 2 ;

Après avoir ouvert Times (Multiplier ?, Spatial Analyst Tools) donnez-lui un nom : MCEWLCmsq200MB.


Puis OK

Cliquez avec le bouton droit sur l’élément de modèle MCEWLCmsq200MB, puis cliquez sur Add To Display (Ajouter à la carte).

Vous allez maintenant exécuter l’outil. N’exécutez toutefois pas l’outil Reclassify (Reclassement, Spatial Analyst Tools) à nouveau. Vous pouvez exécuter uniquement une partie d’un modèle en sélectionnant l’outil à exécuter.

fig. 9 - Vue des couches de MCEWLCmsq, MCEWLCmsq200boolMB et de l'outil Times dans le ModelBuilder (après paramétrage)

None

Cliquez sur Run (Exécuter).

Nota bene : Par défaut, le modèle est enregistré dans votre boîte à outils de projet. Si vous fermez par inadvertance votre modèle, vous pouvez l’ouvrir à nouveau via la fenêtre Catalog (Catalogue). Pour cela, sur le ruban, dans l’onglet View (Afficher), sélectionnez Catalog Pane (Fenêtre Catalogue). Dans la fenêtre Catalog (Catalogue), développez Toolboxes (Boîtes d’outils), puis Westborough24atbx. Cliquez avec le bouton droit sur le modèle MCEWLCend, puis cliquez sur Edit (Modifier).


L’outil s’exécute. Après un certain temps, la couche résultante est ajoutée à la fenêtre Contents (Contenu).

Fermez la fenêtre de traitement et cliquez sur l’onglet Map (Carte) pour l’activer.

Puis

○ Vous allez changer la symbologie de la couche.

Dans la fenêtre Contents (Contenu), cliquez sur le symbole de la couche MCEWLCmsq200MB pour ouvrir la fenêtre Symbology (Symbologie).

Dans la fenêtre Symbology (Symbologie), sous Primary symbology (Symbologie principale), pour Color scheme (Combinaison de couleurs), sélectionnez Multipart Color Scheme (cocher Invert).


La carte est mise à jour avec la nouvelle symbologie. Vous allez maintenant rendre la couche MCEWLCmsq200MB transparente.


○ Dans la fenêtre Contents (Contenu), désactivez les couches intermédiaires et vérifiez que la couche MCELanduse est activée.


Dans la fenêtre Contents (Contenu), cliquez sur la couche MCEWLCmsq200MB pour la sélectionner. Sur le ruban, dans l’onglet Raster Layer (Couche raster), dans le groupe Effects (Effets), pour Transparency (Transparence), saisissez 30 %. Pour Layer Blend (Fusion de couches), sélectionnez Multiply (Multiplier).


○ Continuez jusqu'à "Constitution d'une image booléenne" de la fiche mémo 1.5



2. Passer du ModelBuilder à ArcPy



3. Quelques aides supplémentaires

Prise en main de : Python dans ArcGIS Pro
Commencez à vous former à Python dans ArcGIS Pro. Écrivez du code pour déterminer le nombre d'entités pour toutes les classes d'entités d'un espace de travail.

ArcGis et Python (1) : avant de faire vos premiers pas

ArcGis et Python (2) : pour bien démarrer

ArcGis et Python (3) : votre premier script




En cours de réalisation !!!

 

4. Test de compréhension

Communiquez-moi par courrier électronique les réponses aux questions suivantes

Question n°2.2.1.

a)

b)

c)

Question n°2.2.2.

a)

b)

c)

Question n°2.2.3.

a)

b)

c)

Précisez à la rubrique objet :

EC Master 1

puis dans le corps du message vos

n° d'étudiant, nom et prénom

puis vos

réponses

vgodard@univ-paris8.fr

 

 

Retour au début de la fiche Mémo

 

Fiche Mémo suivante

 

NB : les mots suivis de "*" font partie du vocabulaire géographique, donc leur définition doit être connue. Faites-vous un glossaire.