複数値の反復の操作

サマリー

[複数値の反復 (Iterate Multivalue)] ツールは、値のリストを反復します。

複数値を反復する完了モデル

このワークフローでは、[複数値の反復 (Iterate Multivalue)] 反復子を使用して、空港、高速道路の出口、およびレクリエーション エリアのフィーチャクラスを反復します。 他の入力としてポイント フィーチャクラスがあります。また、モデルは [最近接 (Near)] ツールを使用して、フィーチャクラス内の各ポイントの空港、高速道路の出口、およびレクリエーション エリアまでの最短距離を計算します。 [最近接 (Near)] ツールは、特定のフィーチャクラス内の最近接フィーチャまでの各入力ポイントの距離値が含まれるフィールドを追加し、そのフィールド値が各反復処理で上書きされます。 各反復の後で距離値が失われるのを防ぐために、モデルは [フィールド演算 (Calculate Field)] ツールを使用してフィールドを追加し、距離値をコピーします。 [パスの解析 (Parse Path)] ツールは、近接フィーチャクラスの名前 (空港、出口、およびレクリエーション エリア) を抽出するために使用します。 次にこれらの名前は、[フィールドの追加 (Add Field)] ツールのフィールド名として使用されます。

ワークフローの図

この図は、入力ポイント フィーチャクラスおよび近接距離を計算するすべてのフィーチャクラスのマップのサブセットを示します。 入力ポイント フィーチャクラスの属性テーブルは、追加されたフィールドおよび各入力の近接フィーチャクラスで計算された値を示します。

前提条件

はじめて ModelBuilder を使用する場合は、次のトピックに目を通してください。

プロジェクトを開く

プロジェクトをダウンロードして、このワークフローで使用します。 このプロジェクトには、入力データおよび完成したモデルが含まれています。

  1. 複数値の反復の操作の概要ページを開きます。
  2. ページの右側にある [ダウンロード] をクリックします。
  3. ダウンロードした IterateMultivalue.zip ファイルを右クリックして、C:\Temp などのわかりやすい場所に展開します。
  4. 展開したフォルダー [IterateMultivalue] の ArcGIS Pro プロジェクト ファイル (IterateMultivalue.aprx) をダブルクリックします。

  5. [カタログ] ウィンドウのデータを調査し、必要に応じて [プロジェクト] タブをクリックします。 [フォルダー] > [IterateMultivalue] を順に参照します。

    ToolData.gdb ジオデータベースには、モデル入力として使用するデータが含まれます。 モデルは、PointLocation フィーチャクラスの属性テーブルを更新します。

ツールの追加

MyProjectTools ツールボックスにモデルを作成します。 ツールをモデルに追加するには、次の手順に従います。

  1. 必要に応じて、[カタログ] ウィンドウで、[プロジェクト] タブをクリックします。 [フォルダー] > [IterateMultivalue] > [MyProjectTools] を順に参照します。
  2. [MyProjectTools] を右クリックして [新規] をクリックします。 [モデル] を選択してモデルを作成して開きます。
  3. [複数値の反復 (Iterate Multivalue)] ツールを追加します。
    1. [ModelBuilder] タブをクリックします。
    2. [挿入] グループで、[反復] 反復子 をクリックします。
    3. [反復] リストの [複数値の反復] をクリックします。

    [複数値の反復 (Iterate Multivalue)] ツールの追加

    これは、[複数値の反復 (Iterate Multivalue)] 反復子をモデルに追加します。 パラメーター値が何も指定されていないため、反復子は使用できません。

  4. [パスの解析 (Parse Path)] ツールを追加します。
    1. [ModelBuilder] タブをクリックします。
    2. [挿入] グループで、[ユーティリティ] ユーティリティ をクリックします。
    3. [ユーティリティ] リストで [パスの解析] ツールをクリックします。

    [パスの解析 (Parse Path)] ツールの追加

    これは、[パスの解析 (Parse Path)] ツールをモデルに追加します。

  5. [最近接 (Near)] ツールを追加します。
    1. モデル内をクリックして「最近接」とモデルに入力し、[モデルにツールを追加] ダイアログ ボックスを開きます。
    2. [最近接 (Near)] ツールを検索します。
    3. [最近接 (Near)] ツールをダブルクリックして、モデルに追加します。
  6. 前回のステップと同様に、[フィールドの追加 (Add Field)] ツールと [フィールド演算 (Calculate Field)] ツールを追加します。

ツールのパラメーターを指定して、ツールを接続します。

モデルにツールを追加した後で、各ツールのパラメーターを指定する必要があります。

  1. [複数値の反復 (Iterate Multivalue)] 反復子をダブルクリックして、反復子のダイアログ ボックスを開きます。 [入力値] パラメーターの <Your Project Location>\IterateMultivalue\ToolData.gdb を参照して、[airports][exits]、および [recareas] フィーチャクラスを選択し、[OK] をクリックします。

    [複数値の反復 (Iterate Multivalue)] ツールのダイアログ ボックス

    これは、入力フィーチャクラスをモデル内のモデル変数として追加 (濃い青の楕円) して、反復子の色が変わります。これは、必要なパラメーターが提供されて、実行可能になったことを表します。

  2. 反復子の出力を右クリックして、[名前の変更] をクリックします。 名前に [値] と入力して、Enter キーを押します。 これは、反復子の出力変数の名前を変更します。
  3. [最近接 (Near)] ツールをダブルクリックして、ツールのダイアログ ボックスを開きます。
    1. [入力フィーチャ] パラメーターで、<Your Project Location>\IterateMultivalue\ToolData.gdb を参照して、PointLocation フィーチャクラスを選択します。
    2. [最近接フィーチャ] パラメーターのドロップダウン リストから [値] を選択します。

    [最近接 (Near)] ツールのダイアログ ボックス

    残りのパラメーターをデフォルトのままにして [OK] をクリックします。 これは、反復子の出力値と [最近接 (Near)] ツールとの間の接続を作成します。

  4. [パスの解析 (Parse Path)] ツールをダブルクリックしてダイアログ ボックスを開いて、[入力値] パラメーターのドロップダウン リストから [値] を選択します。

    [パスの解析 (Parse Path)] ツールのダイアログ ボックス

    これは、反復子の出力と [パスの解析 (Parse Path)] ツールとの間の接続を作成します。

  5. [最近接 (Near)] ツールの出力変数 (緑の楕円) にマウス ポインターを合わせます。 コネクタ ラインを描画するには、そのコネクタ ラインをクリックして [フィールドの追加 (Add Field)] ツールまでドラッグします。 マウス ボタンを放し、ポップアップ メニューの [入力テーブル] をクリックします。
  6. [フィールドの追加 (Add Field)] ツールをダブルクリックし、ツールのダイアログ ボックスを開きます。
    1. [入力テーブル] パラメーターは、[最近接 (Near)] ツールの出力からすでに追加されています。
    2. [フィールド名] パラメーターに、インライン変数置換として「%名前%」と入力します。

      実行時に、[airports][exits]、または [recareas] のフィーチャクラスの名前は、フィールド名として使用されます。

    3. [フィールド タイプ] パラメーターのドロップダウン リストから [Double] を選択します。

    残りのパラメーターをデフォルトのままにして [OK] をクリックします。

    [フィールドの追加 (Add Field)] ツールのダイアログ ボックス

  7. ModelBuilder では、ツールは階層を取得して、接続先の上流のツールが最初に実行されているときにのみ、実行します。 [フィールドの追加 (Add Field)] ツールは、[フィールド名] パラメーター内の [パスの解析 (Parse Path)] ツールの出力の名前のパラメーター値を使用しますが接続されていません。そのため、フィールド名が見つからない場合は失敗します。 名前が使用できるように、[フィールドの追加 (Add Field)] ツールの前に [パスの解析 (Parse Path)] ツールを実行するには、[フィールドの追加 (Add Field)] ツールの前提条件を設定する必要があります。

    [パスの解析 (Parse Path)] ツールの出力変数の名前にマウス ポインターを合わせます。 コネクタ ラインを描画するには、そのコネクタ ラインをクリックして [フィールドの追加 (Add Field)] ツールまでドラッグします。 マウス ボタンを放し、ポップアップ メニューの [前提条件] をクリックします。

    [フィールドの追加 (Add Field)] ツールの [前提条件] パラメーターの設定

  8. [フィールドの追加 (Add Field)] ツールの出力変数 (緑の楕円) にマウス ポインターを合わせます。 コネクタ ラインを描画するには、そのコネクタ ラインをクリックして [フィールド演算 (Calculate Field)] ツールまでドラッグします。 マウス ボタンを放し、ポップアップ メニューの [入力テーブル] をクリックします。
  9. [フィールド演算 (Calculate Field)] ツールをダブルクリックし、ツールのダイアログ ボックスを開きます。
    1. [入力テーブル] パラメーターは、[フィールドの追加 (Add Field)] ツールの出力からすでに追加されています。
    2. [フィールド名] パラメーターのドロップダウン リストから [%名前%] を選択します。 これは、[フィールドの追加 (Add Field)] ツールにより追加されたフィールドです。 実行時に、パーセント記号の間の変数名が実際のフィールドの名前に置き換えられます。
    3. [式の種類] パラメーターの [Python 3] を選択します。
    4. [式] パラメーターに、「!NEAR_DIST!」と入力します。

      NEAR_DIST フィールドの値が新しいフィールドにコピーされます。 [最近接 (Near)] ツールがまだ実行されていないのでフィールドが存在していないため、[フィールド] リストから NEAR_DIST を選択することはできません。 このようにフィールド名を入力するには、ツールやツールが作成する出力フィールドについての事前の知識が必要です。 フィールド名の前後の感嘆符は、Python 式のフィールド区切り文字です。

    [フィールド演算 (Calculate Field)] ツールのダイアログ ボックス

  10. 完了モデルで示されるように、モデルの変数の名前をすべて変更します。
  11. モデルのエレメントを並べ替えるには、[ModelBuilder] タブの [自動レイアウト] ボタン 自動レイアウト をクリックして [ウィンドウに合わせる] ボタン ウィンドウに合わせる をクリックし、モデル ウィンドウのレイアウトのサイズを最大化します。

モデルの実行

モデルを整合チェックして実行します。 入力ポイント フィーチャクラスの属性テーブル内の出力を確認し、3 つのフィーチャクラスすべてからの最も近い距離値が追加されていることを確かめます。

  1. [フィールド演算 (Calculate Field)] ツールの出力を右クリックして、[マップへ追加] をクリックします。

    更新された入力フィーチャクラスがマップに追加されます。

  2. [ModelBuilder] タブの [保存] ボタン 保存 をクリックして、モデルを保存します。
  3. [ModelBuilder] タブの [実行] ボタン 実行 をクリックして、モデルを実行します。 モデルは、3 つのフィーチャクラスをすべて反復し、各フィーチャクラスのポイント フィーチャまでの最短距離を検索します。 ArcGIS Pro[コンテンツ] ウィンドウの入力フィーチャクラスを右クリックし、最も近い距離値を含む [テーブル] をクリックして追加したフィールドを表示します。
  4. モデルおよび ArcGIS Pro を閉じます。