値の計算 (Calculate Value) (ModelBuilder)

サマリー

指定した Python 式に基づいて値を返します。

使用法

  • このツールは、ModelBuilder で使用するためのツールで、Python スクリプトでは使用できません。

  • ModelBuilder で [データ タイプ] パラメーターを使用すると、[値の計算 (Calculate Value)] ツールの出力を他のツールと連結することができます。たとえば、[値の計算 (Calculate Value)] ツールを使用して距離を計算し、この距離を [バッファー (Buffer)] ツールの [バッファー距離] パラメーターへの入力として使用する場合は、[データ タイプ] パラメーターの距離単位を指定します。

  • このツールでは、ModelBuilder で作成しておいた変数を使用できますが、式パラメーター中に使用する対象の変数を [値の計算 (Calculate Value)] ツールに接続することはできません。そのような変数を式中に使用するには、変数名をパーセント記号 (%) で囲まなければなりません。たとえば、「Input」という名前の変数を 100 で除算する場合、式は「%Input%/100」のようになります。

    注意: 上の式で、Input = 123 とした場合に返されるのは、1 です。小数部分の桁数を取得するには、式中の値に小数部分を別途指定します。例: 「%Input%/100.00」と指定した場合は、1.23 が返されます。式中に変数を使用するもう 1 つの例を、下の図に示します。

    [値の計算 (Calculate Value)] ツールでのモデル変数の使用
    注意:

    式中で、文字列型のインライン変数は、引用符で囲む必要があります (「"%string variable%"」のように指定します)。インライン変数が数値 (double、long) 型なら、引用符は必要ありません (「%double%」のように指定すれば済みます)。

  • 式の作成に使用できる形式は、標準 Python 形式のみです。他のスクリプト言語は、サポートされていません。

  • [値の計算 (Calculate Value)] ツールで評価の対象となるのは、簡易な算術式です。例:

    • 3+5
    • 9*8
    • 4+(9/3)
  • [値の計算 (Calculate Value)] ツールでは、Python の math モジュールを使用することによって、複雑な数値演算の実行を実現しています。math モジュールにアクセスするには、使用する関数の先頭に「math」を付けます。例:

    • math.sqrt(25)
    • math.cos(0.5)
  • 定数も math モジュールを介してサポートされます。例:

    • math.pi
  • random モジュールは、乱数を生成する目的でサポートされています。以下は、random モジュールの使用例です。

    • 0 ~ 10 のランダム整数の演算: random.randint(0, 10)
    • 平均値が 10、標準偏差が 3 の正規分布から派生したランダム値の演算: random.normalvariate(10, 3)

    レガシー:

    arcgis.rand() は、ArcGIS Pro 2.0 以降サポートされなくなりました。代わりに、Python の random モジュールを使用する、同等の関数を使用する必要があります。random モジュールを正常に使用するには、[コード ブロック] パラメーターにインポートとして追加します。

  • 通常は、[式] パラメーターで式を入力します。複数行の計算や論理演算 (if、then) などの複雑な式を入力する場合は、[コード ブロック] パラメーターを使用する必要があります。[コード ブロック] パラメーターは単独では使用できません。[式] パラメーターと併用する必要があります。

  • [コード ブロック] パラメーターで定義しておいた変数は、式から参照できます。

    [式] と [コード ブロック] の使用

  • 関数は [コード ブロック] パラメーターで定義して、式から呼び出せます。下の例では、ランダムな入力値に応じた、風向を示す文字列が関数によって返されます。Python では、def キーワードの後に関数の名前と関数の入力パラメーターを付けて、関数を定義します。この例で、関数は getWind であり、パラメーターとして指定されているのは 1 つ (wind) だけです。値を関数から返すには、return キーワードを使用します。

    [コード ブロック] での関数の定義
  • [式] パラメーターを介して変数を渡し、[コード ブロック] でインライン変数を指定して if-else ロジックを使用することができます (次の図を参照)。[コード ブロック] に入力した場合、InputCellSize 変数が空であるかどうかがチェックされた後、条件に基づいて値が返されます。

    「if」~「else」の例

  • Python のメソッドは、このツールの [式] パラメーター内に直接使用できます。たとえば、入力値に小数部分 (この例では、入力テーブルのフィールド値) があり、その小数部分の値をインライン変数置換で別のツールの出力名に含める場合は、[値の計算 (Calculate Value)] ツールの [式] で Python メソッド replace を使用して小数部分を置換することができます。

    Python メソッド replace の例

  • [コード ブロック] パラメーターでは、Python モジュールを呼び出し、replace などのメソッドを結合またはスタックできます。下の例では、[コード ブロック] に time モジュールをインポートして、「Fri Mar 19 2010 09:42:39」のような現在の日付と時刻が返されるようにしています。この戻り値は、[フォルダーの作成 (Create Folder)] ツールでフォルダーに名前を付けるために使用されます。フォルダーの名前にはスペースまたは句読点を含めることができないので、置換の必要なエレメントごとにメソッドをスタックして、Python の replace メソッドを使用しなければなりません。この例で、結果として得られるフォルダーの名前は「FriMar192010094239」です。

    Python の time モジュールの例

  • モデル内の値の演算を行う場合に、バッファー距離値と長さ単位を必要とする [バッファー (Buffer)] などのツールで演算処理後の値を使用する場合は、以下の操作を行う必要があります。

    • コード ブロックで距離値とともに長さ単位を返す。
    • 下に示すように、リターンのデータ タイプを変更する。
    • 式の結果が長さ単位の値に変換されるようにデータ タイプのパラメーターを長さ単位に設定する。
    [値の計算 (Calculate Value)] をバッファー距離として使用

  • [値の計算 (Calculate Value)] ツールの出力は、[Plus][Greater Than][Less Than] などの [Spatial Analyst] ツール (格納場所: [Spatial Analyst] ツールボックス/[算術演算] ツールセット) で直接使用することができます。[値の計算 (Calculate Value)] の出力を使用するには、出力データ タイプを [構築されたラスター] に変更します。この出力データ タイプ形式は、セル値が数式または定数で表されるラスター サーフェスです。

    [構築されたラスター] データ タイプ

  • Python では、適切なインデントも構文の一部です。インデント レベル (スペース 2 つまたはスペース 4 つ) は、[コード ブロック] 全体にわたって一貫している限り、問題にはなりません。

  • モデル変数は、[コード ブロック] からはアクセスできません。そのような変数は、式を介して [コード ブロック] に受け渡す必要があります。この受け渡しを行うには、[コード ブロック] で定義を作成し、その定義を [式] ボックスで参照します。

  • 注意:

    Python スクリプトを作成する場合、[値の計算 (Calculate Value)] ツールでなく、標準 Python ステートメントを使用します。

パラメーター

ラベル説明データ タイプ

評価される Python 式。

SQL Expression
コード ブロック
(オプション)

Python コード ブロック。コード ブロックのコードは [式] パラメーターで参照できます。

String
データ タイプ
(オプション)

Python 式から返される出力のデータ タイプを指定します。[値の計算 (Calculate Value)] を他のツールと連結するためには、このパラメーターを ModelBuilder で使用する必要があります。

  • 住所ロケーター —住所ロケーター
  • 住所ロケーター スタイル —住所ロケーター スタイル
  • 解析セル サイズ —解析セル サイズ
  • アノテーション レイヤー —アノテーション レイヤー
  • 任意の値 —任意の値
  • ArcMap ドキュメント —ArcMap ドキュメント
  • 面積単位 —面積単位
  • BIM ファイル ワークスペース —BIM ファイル ワークスペース
  • ブール型 —ブール型
  • ビルディング分野レイヤー —ビルディング分野レイヤー
  • ビルディング分野シーン レイヤー —ビルディング分野シーン レイヤー
  • ビルディング レイヤー —ビルディング レイヤー
  • ビルディング シーン レイヤー —ビルディング シーン レイヤー
  • CAD ドローイング データセット —CAD ドローイング データセット
  • 演算式 —演算式
  • カタログ ルート —カタログ ルート
  • セル サイズ —セル サイズ
  • セル サイズ XY —セル サイズ XY
  • コンポジット レイヤー —コンポジット レイヤー
  • 圧縮 —圧縮
  • 座標系 —座標系
  • 座標系フォルダー —座標系フォルダー
  • カバレッジ —カバレッジ
  • カバレッジ フィーチャクラス —カバレッジ フィーチャクラス
  • データ エレメント —データ エレメント
  • データ ファイル —データ ファイル
  • データベース コネクション —データベース コネクション
  • データセット —データセット
  • Date —Date
  • dBase テーブル —dBase テーブル
  • 単純化 —単純化
  • ダイアグラム レイヤー —ダイアグラム レイヤー
  • ディメンション レイヤー —ディメンション レイヤー
  • ディスク接続 —ディスク接続
  • Double —Double
  • 標高サーフェス レイヤー —標高サーフェス レイヤー
  • 暗号化された文字列 —暗号化された文字列
  • エンベロープ —エンベロープ
  • 評価尺度 —評価尺度
  • 範囲 —範囲
  • 抽出値 —抽出値
  • フィーチャ クラス —フィーチャ クラス
  • フィーチャ データセット —フィーチャ データセット
  • フィーチャ レイヤー —フィーチャ レイヤー
  • フィーチャ セット —フィーチャ セット
  • フィールド —フィールド
  • フィールド情報 —フィールド情報
  • フィールド マッピング —フィールド マッピング
  • ファイル —ファイル
  • フォルダー —フォルダー
  • 構築されたラスター —構築されたラスター
  • ファジー関数 —ファジー関数
  • GeoDataServer —GeoDataServer
  • ジオデータセット —ジオデータセット
  • ジオメトリック ネットワーク —ジオメトリック ネットワーク
  • Geostatistical レイヤー —Geostatistical レイヤー
  • Geostatistical Search Neighborhood —Geostatistical Search Neighborhood
  • Geostatistical Value Table —Geostatistical Value Table
  • GlobeServer —GlobeServer
  • GPServer —GPServer
  • グラフ —グラフ
  • グラフ データ テーブル —グラフ データ テーブル
  • グループ レイヤー —グループ レイヤー
  • 水平方向ファクター —水平方向ファクター
  • イメージ サービス —イメージ サービス
  • インデックス —インデックス
  • INFO 式 —INFO 式
  • INFO アイテム —INFO アイテム
  • INFO テーブル —INFO テーブル
  • インターネット タイル レイヤー —インターネット タイル レイヤー
  • KML レイヤー —KML レイヤー
  • LAS データセット —LAS データセット
  • LAS データセット レイヤー —LAS データセット レイヤー
  • レイヤー —レイヤー
  • レイヤー ファイル —レイヤー ファイル
  • レイアウト —レイアウト
  • ライン —ライン
  • 距離単位 —距離単位
  • Long —Long
  • M ドメイン —M ドメイン
  • マップ —マップ
  • マップ サービス —マップ サービス
  • マップ サービス レイヤー —マップ サービス レイヤー
  • モザイク データセット —モザイク データセット
  • モザイク レイヤー —モザイク レイヤー
  • 近傍 —近傍
  • Network Analyst クラス フィールド マップ —Network Analyst クラス フィールド マップ
  • Network Analyst 階層の設定 —Network Analyst 階層の設定
  • Network Analyst レイヤー —Network Analyst レイヤー
  • ネットワーク データ ソース —ネットワーク データ ソース
  • ネットワーク データセット —ネットワーク データセット
  • ネットワーク データセット レイヤー —ネットワーク データセット レイヤー
  • ネットワーク移動モード —ネットワーク移動モード
  • パーセル ファブリック —パーセル ファブリック
  • ArcMap のパーセル ファブリック —ArcMap のパーセル ファブリック
  • ArcMap のパーセル ファブリック レイヤー —ArcMap のパーセル ファブリック レイヤー
  • パーセル レイヤー —パーセル レイヤー
  • ポイント —ポイント
  • ポリゴン —ポリゴン
  • 投影情報ファイル —投影情報ファイル
  • ピラミッド —ピラミッド
  • 半径 —半径
  • 乱数ジェネレーター —乱数ジェネレーター
  • ラスター バンド —ラスター バンド
  • ラスター演算式 —ラスター演算式
  • ラスター カタログ —ラスター カタログ
  • ラスター カタログ レイヤー —ラスター カタログ レイヤー
  • ラスター データ レイヤー —ラスター データ レイヤー
  • ラスター データセット —ラスター データセット
  • ラスター レイヤー —ラスター レイヤー
  • ラスターの統計情報 —ラスターの統計情報
  • ラスター タイプ —ラスター タイプ
  • レコード セット —レコード セット
  • リレーションシップ クラス —リレーションシップ クラス
  • 再分類 —再分類
  • レポート —レポート
  • ルート メジャー イベント プロパティ —ルート メジャー イベント プロパティ
  • シーン レイヤー —シーン レイヤー
  • セミバリオグラム —セミバリオグラム
  • サーバー コネクション —サーバー コネクション
  • シェープファイル —シェープファイル
  • 空間参照 —空間参照
  • SQL 式 —SQL 式
  • String —String
  • 文字列非表示 —文字列非表示
  • テーブル —テーブル
  • テーブル ビュー —テーブル ビュー
  • テレイン レイヤー —テレイン レイヤー
  • テキスト ファイル —テキスト ファイル
  • タイル サイズ —タイル サイズ
  • 時間設定 —時間設定
  • 時間単位 —時間単位
  • TIN —TIN
  • TIN レイヤー —TIN レイヤー
  • ツール —ツール
  • ツールボックス —ツールボックス
  • トポ フィーチャ —トポ フィーチャ
  • トポロジ —トポロジ
  • トポロジ レイヤー —トポロジ レイヤー
  • トレース ネットワーク —トレース ネットワーク
  • トレース ネットワーク レイヤー —トレース ネットワーク レイヤー
  • 変換関数 —変換関数
  • ユーティリティ ネットワーク —ユーティリティ ネットワーク
  • ユーティリティ ネットワーク レイヤー —ユーティリティ ネットワーク レイヤー
  • バリアント —バリアント
  • ベクター タイル レイヤー —ベクター タイル レイヤー
  • 垂直方向ファクター —垂直方向ファクター
  • ボクセル レイヤー —ボクセル レイヤー
  • VPF カバレッジ —VPF カバレッジ
  • VPF テーブル —VPF テーブル
  • WCS カバレッジ —WCS カバレッジ
  • 加重オーバーレイ テーブル —加重オーバーレイ テーブル
  • 加重合計 —加重合計
  • WMS マップ —WMS マップ
  • WMTS レイヤー —WMTS レイヤー
  • ワークスペース —ワークスペース
  • XY ドメイン —XY ドメイン
  • Z ドメイン —Z ドメイン
String

派生した出力

ラベル説明データ タイプ

計算された値。

データ要素、レイヤー、テーブル ビュー

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes