﻿{"id":926,"date":"2015-03-16T07:42:38","date_gmt":"2015-03-16T06:42:38","guid":{"rendered":"http:\/\/www.sigterritoires.fr\/?p=926"},"modified":"2015-03-23T21:32:23","modified_gmt":"2015-03-23T20:32:23","slug":"arcgis-model-builder-les-iterateurs-dentites","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/arcgis-model-builder-les-iterateurs-dentites\/","title":{"rendered":"ArcGis Model Builder: les it\u00e9rateurs d&rsquo;entit\u00e9s"},"content":{"rendered":"<p>Nous avons d\u00e9j\u00e0 vu deux types d&rsquo;it\u00e9rateurs, les it\u00e9rateurs de couche (<a href=\"http:\/\/www.sigterritoires.fr\/?p=890\">ArcGis Model Builder: \u00e9tendre un mod\u00e8le \u00e0 un ensemble de donn\u00e9es en entr\u00e9e<\/a>) et les it\u00e9rateurs num\u00e9riques (<a href=\"http:\/\/www.sigterritoires.fr\/?p=913\">ArcGis Model Builder: les it\u00e9rateurs FOR et WHILE<\/a> ). Il nous reste le dernier type d&rsquo;it\u00e9rateurs: les it\u00e9rateurs d&rsquo;entit\u00e9s.<\/p>\n<h2>Les it\u00e9rateurs d&rsquo;entit\u00e9s, c&rsquo;est quoi?<\/h2>\n<p><!--more-->Vous connaissez la diff\u00e9rence entre ArcCatalog et ArcMap : quand il s&rsquo;agit d&rsquo;une op\u00e9ration sur une couche (cr\u00e9ation, copie, <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/projection-qgis-crs\/\">projection<\/a>,&#8230;) vous utilisez ArcCatalog. Quand il s&rsquo;agit d&rsquo;intervenir sur les entit\u00e9s d&rsquo;une couche (modification, ajout, &#8230;) vous utilisez ArcMap. Ici c&rsquo;est pareil: quand vous voulez appliquer un mod\u00e8le de traitement \u00e0 plusieurs couches, vous utilisez les it\u00e9rateurs de couche, quand vous voulez travailler sur diff\u00e9rentes entit\u00e9s d&rsquo;une seule couche, vous utiliserez les it\u00e9rateurs d&rsquo;entit\u00e9s.<\/p>\n<p>Ces it\u00e9rateurs sont au nombre de trois:<\/p>\n<ul>\n<li>it\u00e9rer la s\u00e9lection d&rsquo;entit\u00e9s<\/li>\n<li>It\u00e9rer la s\u00e9lection d&rsquo;enregistrements<\/li>\n<li>It\u00e9rer les valeurs de champ<\/li>\n<\/ul>\n<p>Les trois it\u00e9rateurs correspondent au m\u00eame objectif: s\u00e9lectionner des entit\u00e9s de la couche en entr\u00e9e en fonction des valeurs contenues dans un champ attributaire. Alors, pourquoi trois it\u00e9rateurs? Ce n&rsquo;est pas \u00e0 cause de la s\u00e9lection que vous faites, elle est toujours la m\u00eame, mais de ce que l&rsquo;it\u00e9rateur produit comme sortie. Si vous \u00eates en train de lire cet article c&rsquo;est bien que vous avez d\u00e9j\u00e0 eu maille \u00e0 partir avec Model Builder. Vous savez donc que les outils de la toolbox sont capricieux et qu&rsquo;ils ne fonctionnent pas sur n&rsquo;importe quel type de donn\u00e9e en entr\u00e9e.<\/p>\n<p>Vous avez des outils qui vous demandent une Classe d&rsquo;entit\u00e9s (Feature Class) comme donn\u00e9es en entr\u00e9e, d&rsquo;autres qui s&rsquo;appliquent \u00e0 des vues tabulaires (Row selection) et d&rsquo;autres qui demandent une valeur (Value). Les trois it\u00e9rateurs correspondent \u00e0 ces trois types de conditions des outils de la toolbox.<\/p>\n<p>Pour \u00eatre plus clair, vous avez une seule couche de donn\u00e9es en entr\u00e9e, vous utilisez un attribut avec diff\u00e9rentes valeurs;<\/p>\n<ul>\n<li>vous utilisez l&rsquo;it\u00e9rateur <em>it\u00e9rer la s\u00e9lection d&rsquo;entit\u00e9s<\/em> vous aurez une sortie de type <strong>Feature Class<\/strong> \u00e0 relier au mod\u00e8le de traitement<\/li>\n<li>vous utilisez l&rsquo;it\u00e9rateur <em>It\u00e9rer la s\u00e9lection d&rsquo;enregistrements<\/em> vous aurez une sortie de type <strong>Vue tabulaire<\/strong> \u00e0 relier au mod\u00e8le de traitement<\/li>\n<li>vous utilisez l&rsquo;it\u00e9rateur <em>It\u00e9rer les valeurs de champ<\/em> vous aurez une sortie de <strong>Valeur<\/strong> (texte) \u00e0 relier au mod\u00e8le de traitement<\/li>\n<\/ul>\n<h2>It\u00e9rer la s\u00e9lection d&rsquo;entit\u00e9s<\/h2>\n<p><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod22.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"932\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/arcgis-model-builder-les-iterateurs-dentites\/mod22\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod22.png?fit=864%2C402&amp;ssl=1\" data-orig-size=\"864,402\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"mod22\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod22.png?fit=630%2C293&amp;ssl=1\" class=\"aligncenter size-large wp-image-932\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod22-630x293.png?resize=630%2C293\" alt=\"it\u00e9rateur s\u00e9lection d'entit\u00e9s\" width=\"630\" height=\"293\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod22.png?resize=630%2C293&amp;ssl=1 630w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod22.png?resize=300%2C140&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod22.png?w=864&amp;ssl=1 864w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p>La couche en entr\u00e9e contient 5 r\u00e9gions hydrographiques, chacune repr\u00e9sent\u00e9e par un polygone. L&rsquo;it\u00e9rateur va cr\u00e9er, successivement, une classe d&rsquo;entit\u00e9s contenant un des polygones, et cette classe d&rsquo;entit\u00e9s sera utilis\u00e9e en entr\u00e9e du mod\u00e8le de traitement.<\/p>\n<p>Pour chaque it\u00e9ration, l&rsquo;it\u00e9rateur va g\u00e9n\u00e9rer aussi une cha\u00eene de caract\u00e8res,<em> Value<\/em>, contenant le code de la r\u00e9gion hydrographique. Cette valeur sera utilis\u00e9e comme variable de substitution en ligne pour la couche en sortie du mod\u00e8le de traitement. Pour cela, nous ins\u00e9rons %Value% dans le nom de la couche en sortie du dernier outil su mod\u00e8le, par exemple <em>C:\\Users\\admin\\Documents\\ArcGIS\\Projects\\MyProject10\\HYDROGRAPHIE_SURFACIQUE_%Value%.shp<\/em><\/p>\n<h2>It\u00e9rer la s\u00e9lection d&rsquo;enregistrements<\/h2>\n<p><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod23.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"933\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/arcgis-model-builder-les-iterateurs-dentites\/mod23\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod23.png?fit=843%2C402&amp;ssl=1\" data-orig-size=\"843,402\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"mod23\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod23.png?fit=630%2C300&amp;ssl=1\" class=\"aligncenter size-large wp-image-933\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod23-630x300.png?resize=630%2C300\" alt=\"it\u00e9rateur s\u00e9lection d'enregistrements\" width=\"630\" height=\"300\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod23.png?resize=630%2C300&amp;ssl=1 630w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod23.png?resize=300%2C143&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod23.png?w=843&amp;ssl=1 843w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p>La couche en entr\u00e9e contient 18 secteurs hydrographiques, chacun repr\u00e9sent\u00e9 par un polygone. L&rsquo;it\u00e9rateur va cr\u00e9er, successivement, une table contenant les enregistrements d&rsquo;une r\u00e9gion hydrographique. Pour la r\u00e9gions Bretagne, par exemple, il y a 9 polygones (entit\u00e9s) dans la couche en entr\u00e9e. Cette table sera utilis\u00e9e en entr\u00e9e du mod\u00e8le de traitement, et les statistiques seront calcul\u00e9es pour les 9 enregistrements de la Bretagne, puis, dans les autres it\u00e9rations, pour chaque code r\u00e9gion pr\u00e9sent dans la classe d&rsquo;entit\u00e9s en entr\u00e9e.<\/p>\n<p>Pour chaque it\u00e9ration, l&rsquo;it\u00e9rateur va g\u00e9n\u00e9rer aussi une cha\u00eene de caract\u00e8res,<em> Value<\/em>, contenant le code de la r\u00e9gion hydrographique. Cette valeur sera utilis\u00e9e comme variable de substitution en ligne pour la couche en sortie du mod\u00e8le de traitement. Pour cela, nous ins\u00e9rons %Value% dans le nom de la couche en sortie du dernier outil su mod\u00e8le, par exemple <em>C:\\Users\\admin\\Documents\\ArcGIS\\Projects\\MyProject10\\MyProject10.gdb\\SECTEURS_%Value%_Statistics<\/em><\/p>\n<h2>It\u00e9rer les valeurs de champ<\/h2>\n<p><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod24.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"935\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/arcgis-model-builder-les-iterateurs-dentites\/mod24\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod24.png?fit=579%2C432&amp;ssl=1\" data-orig-size=\"579,432\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"mod24\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod24.png?fit=579%2C432&amp;ssl=1\" class=\"aligncenter size-full wp-image-935\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod24.png?resize=579%2C432\" alt=\"it\u00e9rateur valeur de champ\" width=\"579\" height=\"432\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod24.png?w=579&amp;ssl=1 579w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/03\/mod24.png?resize=300%2C224&amp;ssl=1 300w\" sizes=\"auto, (max-width: 579px) 100vw, 579px\" \/><\/a><\/p>\n<p>La table attributaire de la couche en entr\u00e9e contient un champ avec des valeurs. Cet it\u00e9rateur permet de cr\u00e9er une s\u00e9rie de valeurs qui seront utilis\u00e9es successivement comme entr\u00e9e d&rsquo;un outil du mod\u00e8le de traitement, par exemple pour l&rsquo;outil Buffer, la distance du buffer.<\/p>\n<p>L&rsquo;it\u00e9rateur lit tous les enregistrements de la table en entr\u00e9e et, selon votre choix, cr\u00e9e une s\u00e9rie de valeurs diff\u00e9rentes ou une s\u00e9rie comportant toutes les valeurs trouv\u00e9es, m\u00eame s&rsquo;il y a des valeurs qui se r\u00e9p\u00e8tent. Ceci est contr\u00f4l\u00e9 par la case \u00e0 cocher \u00ab\u00a0Unique Values\u00a0\u00bb.<br \/>\nPar exemple, une table avec 100 enregistrements comporte 12 valeurs diff\u00e9rentes.<br \/>\nSi la case est coch\u00e9e, le mod\u00e8le s&rsquo;ex\u00e9cutera 12 fois, une fois pour chacune des 12 valeurs. Si la case n&rsquo;est pas coch\u00e9e, le mod\u00e8le s&rsquo;ex\u00e9cutera 100 fois, une fois pour chaque enregistrement.<\/p>\n<p>Dernier \u00e9l\u00e9ment, dans les trois fen\u00eatres de param\u00e9trage vous verrez une case \u00e0 cocher \u00ab\u00a0Skip Null Values\u00a0\u00bb. S&rsquo;il est possible de trouver des valeurs nulles (pas z\u00e9ro, mais bien Null) , il vaut mieux cocher cette case car l&rsquo;it\u00e9rateur n&rsquo;aura pas de probl\u00e8me mais les outils de traitement auront bien du mal \u00e0 traiter cette entr\u00e9e. Dans le doute, cochez-l\u00e0, \u00e7a peut pas nuire, \u00e0 moins que les valeurs nulles soient bien prise en compte par le mod\u00e8le de traitement.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous avons d\u00e9j\u00e0 vu deux types d&rsquo;it\u00e9rateurs, les it\u00e9rateurs de couche (ArcGis Model Builder: \u00e9tendre un mod\u00e8le \u00e0 un ensemble de donn\u00e9es en entr\u00e9e) et les it\u00e9rateurs num\u00e9riques (ArcGis Model Builder: les it\u00e9rateurs FOR et WHILE&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[9,4,26],"tags":[15,10,65,128,127,122,50,129],"class_list":["post-926","post","type-post","status-publish","format-standard","hentry","category-arcgis-pro","category-logiciels_editeur","category-outils-et-methodes","tag-arcgis","tag-arcgis-pro-2","tag-arcmap","tag-enregistrements","tag-entites","tag-iterateurs","tag-model-builder","tag-valeurs"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-eW","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=926"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/926\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}