Résumé
Créez un modèle dans un modèle, soit un modèle imbriqué. Le modèle itère sur quelques classes d’entités, les projette puis les fusionne pour créer une seule classe d’entités.
Un modèle imbriqué est requis lorsqu’il n’est pas nécessaire d’exécuter plusieurs fois une partie d’un modèle. Si un itérateur est ajouté à un modèle, tous les outils de ce modèle sont exécutés pour chaque valeur renvoyée par l’itérateur. Dans cet exemple, vous allez itérer l’outil Projeter pour chaque classe d’entités ; cependant, cela n’a aucun sens d’exécuter plusieurs fois l’outil Fusionner car il rassemble toutes les classes d’entités projetées et crée une sortie fusionnée en une seule exécution. L’outil Fusionner est donc ajouté à un modèle principal qui s’exécute une fois et appelle un sous-modèle qui s’exécute plusieurs fois.
Conditions préalables
Si vous débutez avec ModelBuilder, reportez-vous aux rubriques suivantes :
Ouvrir le projet
Téléchargez le projet à utiliser dans ce processus. Le projet inclut des données en entrée, une géodatabase en sortie et un modèle terminé.
- Ouvrez la page de présentation Utiliser un modèle dans un modèle.
- Cliquez sur Download (Télécharger) dans la partie gauche de la page.
- Cliquez avec le bouton droit sur le fichier ModelWithinModel.zip téléchargé et procédez à son extraction vers un emplacement pratique, tel que C:\Temp.
- Dans le dossier extrait intitulé ModelWithinModel, double-cliquez sur le fichier de projet ArcGIS Pro, ModelWithinModel.aprx.
- Explorez les données de la fenêtre Catalog (Catalogue) et cliquez sur l’onglet Project (Projet) si nécessaire. Accédez à Folders (Dossiers) > ModelWithinModel.
La géodatabase ToolData.gdb contient trois classes d’entités qui seront utilisées comme entrées du modèle.
Les sorties du modèle seront écrites dans la géodatabase ScratchCommon.gdb.
Ajouter des outils
Vous allez créer un modèle dans la boîte d’outils MyProjectTools. Pour ajouter des outils au modèle, procédez comme suit :
- Dans la fenêtre Catalog (Catalogue), cliquez sur l’onglet Project (Projet). Accédez à Folders (Dossiers) > ModelWithinModel > MyProjectTools.
- Cliquez avec le bouton droit sur MyProjectTools et sélectionnez New (Nouveau). Sélectionnez Model (Modèle) pour créer et ouvrir un modèle.
- Sur le ruban, cliquez sur l’onglet ModelBuilder. Dans le groupe Model (Modèle), cliquez sur Properties (Propriétés) . Dans la boîte de dialogue Tool Properties (Propriétés de l’outil), saisissez ProjectMainModel pour Name (Nom) et Project Main-Model (Modèle principal du projet) pour Label (Étiquette).
- Sur le ruban, sous l’onglet ModelBuilder, dans le groupe Model (Modèle), cliquez sur le bouton Save (Enregistrer) pour enregistrer vos modifications.
- Créez un autre modèle avec pour Name (Nom) ProjectSubModel et pour Label (Étiquette) Project Sub-Model (Sous-modèle du projet).
- Dans le modèle Project Sub-Model (Sous-modèle du projet), ajoutez l’outil Itérer dans des classes d’entités.
- Sur le ruban, cliquez sur l’onglet ModelBuilder.
- Dans le groupe Insert (Insérer), cliquez sur Iterators (Itérateurs).
- Dans la liste Iterators (Itérateurs), cliquez sur Itérer dans des classes d’entités.
L’ outil Itérer dans des classes d’entités est ajouté au modèle Project Sub-Model (Sous-modèle du projet). L’itérateur n’est pas disponible puisqu’aucune valeur de paramètre n’a été indiquée.
- Ajoutez l’outil Recueillir des valeurs.
- Sur le ruban, cliquez sur l’onglet ModelBuilder.
- Dans le groupe Insert (Insérer), cliquez sur Utilities (Utilitaires) .
- Dans la liste Utilities (Utilitaires), cliquez sur l’outil Recueillir des valeurs.
L’ outil Recueillir des valeurs est ajouté au modèle Project Sub-Model (Sous-modèle du projet).
- Ajoutez l’outil Projeter.
- Cliquez dans le modèle et saisissez Project (Projeter) directement dans le modèle pour ouvrir la boîte de dialogue Add Tools To Model (Ajouter des outils au modèle).
- Recherchez l’outil Projeter.
- Double-cliquez sur l’outil Projeter et ajoutez-le au modèle.
Spécifier les paramètres et connecter les outils
Après avoir ajouté les outils au modèle, vous devez spécifier les paramètres de chaque outil.
- Double-cliquez sur l’outil Itérer dans des classes d’entités pour ouvrir la boîte de dialogue de l’itérateur.
- Pour le paramètre Workspace or Feature Dataset (espace de travail ou jeu de classes d’entités), accédez à la géodatabase ToolData.gdb.
- Conservez les valeurs par défaut des autres paramètres et cliquez sur OK.
L’espace de travail est ajouté en tant que variable de modèle dans le modèle (ovale bleu foncé) et la couleur de l’itérateur est modifiée, ce qui indique que les paramètres obligatoires ont été fournis et que l’itérateur est prêt à être exécuté.
- Cliquez avec le bouton droit sur la sortie de l’itérateur et sélectionnez Rename (Renommer). Saisissez le nom Feature Class (Classe d’entités).
- Double-cliquez sur l’outil Projeter pour ouvrir la boîte de dialogue correspondante.
- Pour le paramètre Input Dataset or Feature Class (Jeu de données ou classe d’entités en entrée), sélectionnez Feature Class (Classe d’entités) dans la liste déroulante.
- Pour le paramètre Output Dataset or Feature Class (Jeu de données ou classe d’entités en sortie), accédez à <Your Project Location>\ScratchCommon.gdb et saisissez %Name%_Projected.
- Pour le paramètre Output Coordinate System (Système de coordonnées en sortie), sélectionnez Projected Coordinate System (Système de coordonnées projetées) > State Plane > NAD 1983 (Meters) > NAD 1983 StatePlane Oregon North FIPS 3601 (Meters).
- Conservez les valeurs par défaut des autres paramètres et cliquez sur OK pour fermer la boîte de dialogue de l’outil Projeter.
Attention :
Si les classes d’entités en entrée ont des systèmes de coordonnées différents, la transformation géographique risque de ne pas s’appliquer à la totalité d’entre elles et est susceptible de projeter les données de manière incorrecte. Vous devez connaître les systèmes de coordonnées des entrées et les méthodes de transformation géographique qui s’y appliquent. Dans ce cas, utilisez le paramètre Wildcard (Caractère générique) pour projeter les classes d’entités de manière sélective.
- Survolez la variable en sortie (ovale vert) de l’outil Projeter. Cliquez et faites glisser pour créer une ligne de connecteur vers l’outil Recueillir des valeurs. Relâchez la souris et cliquez sur Input value (Valeur en entrée) dans le menu contextuel.
L’outil Recueillir des valeurs est un outil utilitaire qui collecte les valeurs en sortie de chaque itération dans une seule sortie à valeurs multiples.
- Cliquez avec le bouton droit sur la variable en entrée de l’itérateur et sélectionnez Parameter (Paramètre).
La lettre P est alors ajoutée en regard de la variable pour indiquer qu’il s’agit d’un paramètre de modèle.
- Créez un paramètre de modèle à partir de la sortie de l’outil Recueillir des valeurs comme indiqué dans les étapes précédentes.
- Pour organiser les éléments du modèle, cliquez sur le bouton Auto Layout (Mise en page automatique) sur l’onglet ModelBuilder, puis sur le bouton Fit To Window (Ajuster à la fenêtre) pour maximiser la mise en page à la taille de la fenêtre du modèle.
- Cliquez sur le bouton Save (Enregistrer) sur l’onglet ModelBuilder pour enregistrer le modèle et fermer le modèle Project Sub-Model (Sous-modèle du projet).
- Dans le modèle Project Main-Model (Modèle principal du projet), recherchez l’outil Fusionner et ajoutez-le au modèle.
- Dans la fenêtre Catalog (Catalogue), accédez au modèle Project Sub-Model (Sous-modèle du projet) que vous venez de créer. Faites glisser le modèle Project Sub-Model (Sous-modèle du projet) dans le modèle Project Main-Model (Modèle principal du projet).
Le sous-modèle est ajouté au modèle principal. Les paramètres du sous-modèle sont ajoutés en tant que variables au modèle principal (ovale bleu foncé pour ToolData.gdb et ovale vert pour Output Values (Valeurs en sortie)).
- Survolez la variable en sortie Output Values (Valeurs en sortie) (ovale vert) de Project Sub-Model (Sous-modèle du projet). Cliquez et faites glisser pour créer une ligne de connecteur vers l’outil Fusionner. Relâchez la souris et cliquez sur Input Datasets (Jeux de données en entrée) dans le menu contextuel.
Une connexion est ainsi créée entre la sortie du sous-modèle et l’outil Fusionner.
- Double-cliquez sur l’outil Fusionner pour ouvrir la boîte de dialogue correspondante. Pour le paramètre Output Dataset (Jeu de données en sortie), accédez à la géodatabase <Your Project Location>\ScratchCommon.gdb et saisissez ProjectedFC_Merge. Conservez la valeur par défaut du paramètre Field Map (Appariement des champs) et cliquez sur OK pour fermer la boîte de dialogue.
Il est conseillé de renommer les variables en entrée et en sortie en leur attribuant des noms plus pertinents au lieu de continuer à utiliser les noms de variable par défaut.
- Renommez la sortie de l’outil Fusionner en Merged Feature Class (Classe d’entités fusionnée). Renommez toutes les variables du modèle comme indiqué dans le modèle terminé du processus.
Exécuter le modèle
Vous allez valider et exécuter le modèle. Vous allez examiner les sorties dans la géodatabase ScratchCommon.gdb et vérifier que toutes les classes d’entités ont été fusionnées après la projection.
- Cliquez avec le bouton droit sur la sortie de l’outil Fusionner et sélectionnez Add To Display (Ajouter à la carte).
Les sorties sont ajoutées à la carte.
- Cliquez sur le bouton Save (Enregistrer) sur l’onglet ModelBuilder pour enregistrer le modèle.
- Cliquez sur le bouton Run (Exécuter) sur l’onglet Project Main-Model (Modèle principal du projet) pour exécuter le modèle.
Le modèle exécute le sous-modèle et itère sur toutes les classes d’entités, les projette et crée la sortie dans la géodatabase ScratchCommon.gdb. L’outil Recueillir des valeurs collecte les sorties dans le sous-modèle et transmet les jeux de données au paramètre Input Datasets (Jeux de données en entrée) de l’outil Fusionner. L’outil Fusionner s’exécute une fois et crée une sortie fusionnée.
- Fermez le modèle et ArcGIS Pro.
Vous avez un commentaire à formuler concernant cette rubrique ?