値の計算 (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 ステートメントを使用します。

構文

CalculateValue(expression, {code_block}, {data_type})
パラメーター説明データ タイプ
expression

評価される Python 式。

SQL Expression
code_block
(オプション)

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

String
data_type
(オプション)

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

  • Address Locator住所ロケーター
  • Address Locator Style住所ロケーターのスタイル
  • Analysis cell size解析セル サイズ
  • Any valueすべての値
  • ArcMap DocumentArcMap ドキュメント
  • Areal unit面積単位
  • Booleanブール型
  • CAD Drawing DatasetCAD ドローイング データセット
  • Calculator Expression演算式
  • Catalog Rootカタログ ルート
  • Cell Sizeセル サイズ
  • Cell Size XYセル サイズ XY
  • Composite Layerコンポジット レイヤー
  • Compression圧縮
  • Coordinate System座標系
  • Coordinate Systems Folder座標系フォルダー
  • Coverage提供範囲
  • Coverage Feature Classカバレッジ フィーチャクラス
  • Data Elementデータ エレメント
  • Data Fileデータ ファイル
  • Database Connectionsデータベース コネクション
  • Datasetデータセット
  • Date日時
  • dBASE TabledBase テーブル
  • Decimate単純化
  • Disk Connectionディスク接続
  • Double数値
  • Encrypted String暗号化された文字列
  • Envelopeエンベロープ
  • Evaluation Scale評価尺度
  • Extent範囲
  • Extract Values抽出値
  • Facility Network設備ネットワーク
  • Feature Classフィーチャクラス
  • Feature Datasetフィーチャ データセット
  • Feature Layerフィーチャ レイヤー
  • Feature Setフィーチャ セット
  • Fieldフィールド
  • Field Infoフィールド情報
  • Field Mappingsフィールド マッピング
  • Fileファイル
  • Folderフォルダー
  • Formulated Raster構築されたラスター
  • Fuzzy functionファジー関数
  • GeoDataServerGeoDataServer
  • Geodatasetジオデータセット
  • Geometric Networkジオメトリック ネットワーク
  • Geostatistical LayerGeostatistical レイヤー
  • Geostatistical Search NeighborhoodGeostatistical Search Neighborhood
  • Geostatistical Value TableGeostatistical 値テーブル
  • GlobeServerGlobeServer
  • GPServerGPServer
  • Graphグラフ
  • Graph Data Tableグラフ データ テーブル
  • Group Layerグループ レイヤー
  • Horizontal factor水平方向ファクター
  • Image Serviceイメージ サービス
  • Indexインデックス
  • INFO ExpressionINFO 条件式
  • INFO ItemINFO アイテム
  • INFO TableINFO テーブル
  • Internet Tiled Layerインターネット タイル レイヤー
  • LAS DatasetLAS データセット
  • LAS Dataset LayerLAS データセット レイヤー
  • Layerレイヤー
  • Layer Fileレイヤー ファイル
  • Lineライン
  • Linear unit距離単位
  • LongLong
  • M DomainM ドメイン
  • Mapマップ
  • Map Server Layerマップ サービス レイヤー
  • MapServerMapServer
  • Mosaic Datasetモザイク データセット
  • Mosaic Layerモザイク レイヤー
  • Neighborhood近傍
  • Network Analyst Class FieldMapNetwork Analyst クラス フィールド マップ
  • Network Analyst Hierarchy SettingsNetwork Analyst 階層の設定
  • Network Analyst LayerNetwork Analyst レイヤー
  • Network Datasetネットワーク データセット
  • Network Dataset Layerネットワーク データセット レイヤー
  • Parcel Fabricパーセル ファブリック
  • Parcel Fabric Layerパーセル ファブリック レイヤー
  • Pointポイント
  • Polygonポリゴン
  • Projection File投影情報ファイル
  • Pyramidピラミッド
  • Radius半径
  • Random Number Generator乱数ジェネレーター
  • Raster Bandラスター バンド
  • Raster Calculator Expressionラスター演算式
  • Raster Catalogラスター カタログ
  • Raster Catalog Layerラスター カタログ レイヤー
  • Raster Data Layerラスター データ レイヤー
  • Raster Datasetラスター データセット
  • Raster Layerラスター レイヤー
  • Raster Statisticsラスターの統計情報
  • Raster Typeラスター タイプ
  • Record Setレコード セット
  • Relationship Classリレーションシップ クラス
  • Remapリマップ
  • Route Measure Event Propertiesルート メジャー イベント プロパティ
  • Schematic DatasetSchematic Dataset
  • Schematic Diagramスケマティック ダイアグラム
  • Schematic Diagram Classスケマティック ダイアグラム クラス
  • Schematic Folderスケマティック フォルダー
  • Schematic Layerスケマティック レイヤー
  • SemiVariogramセミバリオグラム
  • ServerConnectionサーバー コネクション
  • Shapefileシェープファイル
  • Spatial Reference空間参照
  • SQL ExpressionSQL 式
  • String文字列
  • String Hidden文字列非表示
  • Tableテーブル
  • Table Viewテーブル ビュー
  • Terrain Layerテレイン レイヤー
  • Text Fileテキスト ファイル
  • Tile Sizeタイル サイズ
  • Time configuration時間設定
  • Time unit時間単位
  • TINTIN
  • TIN LayerTIN レイヤー
  • Toolツール
  • Toolboxツールボックス
  • Topo featuresトポ フィーチャ
  • Topologyトポロジ
  • Topology Layerトポロジ レイヤー
  • Transformation function変換関数
  • Variantバリアント
  • Vertical factor垂直方向ファクター
  • VPF CoverageVPF カバレッジ
  • VPF TableVPF テーブル
  • WCS CoverageWCS カバレッジ
  • Weighted Overlay Table加重オーバーレイ テーブル
  • Weighted Sum加重合計 (Weighted Sum)
  • WMS MapWMS マップ
  • Workspaceワークスペース
  • XY DomainXY ドメイン
  • Z DomainZ ドメイン
String

派生した出力

名前説明データ タイプ
value

計算された値。

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

環境

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

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい