フィールド演算 (複数) (データ管理ツール)
サマリー
フィーチャクラス、フィーチャ レイヤー、またはラスターの 2 つ以上のフィールドの値を計算します。
使用法
注意:
このツールを実行すると、入力データが変更されます。 詳細と不要なデータの変更を回避するための方法については、入力データを変更または更新するツールをご参照ください。
Python 式の詳細については、フィールド演算の Python の例をご参照ください。
Arcade 式の詳細については、開発者ヘルプの ArcGIS Arcade をご参照ください。
SQL 式の詳細については、SQL 式の構文およびフィールド値の計算をご参照ください。
VBScript 式の詳細については、フィールド演算の VBScript の例をご参照ください。
このツールの Arcade 式はフィールド演算 Arcade プロファイルを使用しています。 Arcade プロファイルは、Arcade 式が評価および理解されるコンテキストです。 Arcade 式を評価すると、戻り値は出力値のフィールド タイプにキャストされます。
注意:
Windows 11 バージョン 24H2 では、VBScript はオンデマンドの機能となり、VBScript 機能が必要です。
VBScript オプションの使用を継続するには、次のいずれかを行います。
式のタイプを Python、Arcade または SQL に変換します。
Windows のシステム設定で VBScript のオプション機能を有効にします。
詳細については、削除と非推奨のお知らせをご参照ください。
フィーチャ レイヤーの作成 ツールや 属性検索 ツールでクエリーから作成されたフィーチャなど、選択されている一連のフィーチャに対してこのツールを使用すると、選択されているレコードのみが更新されます。
既存のフィールドの値は上書きされます。 元の値を維持するには、バックアップとして入力テーブルのコピーを作成するか、ジオプロセシング ウィンドウの 元に戻すの有効化 オプションを使用します。
Python の演算の場合、フィールド名は感嘆符で囲まれている必要があります (
!fieldname!など)。Arcade の演算の場合、フィールド名に接頭辞
$feature.が付与されている必要があります ($feature.fieldnameなど)。注意:
フィールド タイプ (Date、Date Only、Time Only、Timestamp Offset、Text) 間で時間値を転送するには、代わりに 時間フィールドの変換 ツールを使用します。
テキスト フィールドまたは文字フィールドの文字列の演算を行う場合、ダイアログ ボックスでは、文字列を二重引用符で囲む必要があり (例: "string")、スクリプトでは、二重引用符で囲まれた文字列をさらに一重引用符で囲む必要があります (例:
'"string"')。数値を指定するフィールドの演算を行うには、式 パラメーターに数値を引用符で囲まずに入力します。
コード ブロック パラメーターを使用すると、複雑な式を作成できます。 コード ブロックは、ダイアログ ボックスに直接入力するか、スクリプトで文字列として入力します。 式とコード ブロックは接続されています。 コード ブロックの結果が式に渡される必要があるため、コード ブロックが式に関連付けられている必要もあります。
コード ブロック パラメーターは Python 式でのみサポートされています。
コード ブロック パラメーターでは、Python の
mathモジュールおよび形式を使用できます。 追加のモジュールをインポートすることもできます。mathモジュールは、数論的関数と表現関数、べき関数と対数関数、三角関数、角度変換関数、双曲線関数、および数学定数を提供します。mathモジュールの詳細については、Python のヘルプをご参照ください。Python でジオメトリー情報を計算するには、
Geometryオブジェクト プロパティを使用します。 たとえば、!shape!.pointCount!の式を使用して、フィーチャ内の頂点の数を計算します。注意:
ジオメトリー属性の計算 ツールでも、同様の計算を実行できます。
Python で面積と長さを計算するには、
getAreaメソッドとgetLengthメソッドをメソッドおよび単位タイプと組み合わせて使用します。ポリゴンの測地線の面積を平方キロメートル単位で計算するには、次の式を使用します。
!shape!.getArea('GEODESIC', 'SQUAREKILOMETERS')!ポリライン (またはポリゴン) の平面の長さをヤード単位で計算するには、次の式を使用します。
!shape!.getLength('PLANAR', 'YARDS')
結合されたデータを操作する場合は、結合元のテーブル内のフィールドのみ更新できます。 結合先のテーブル内のフィールドは更新できません。 結合されたテーブルで計算を実行する場合は、そのテーブルで直接計算を実行できます。
NULL を含む文字列フィールドの連結やゼロ値除算を試みる Python 式は、このフィールドの値として NULL を返します。
SQL 式は、フィーチャ サービスの高速な計算をサポートします。 一度に 1 つのフィーチャまたは行を計算する代わりに、サーバーに 1 つのリクエストが送信されるので、計算が高速化します。
フィーチャ サービスのみが SQL 式をサポートしています。 他の形式では、Python または Arcade 式を使用します。
式の種類 パラメーターの SQL オプションの使用には、次の制限があります。
結合テーブルのフィールド値の計算はサポートされていません。
ジオプロセシング操作を元に戻す ことはできません。
パラメーター
| ラベル | 説明 | データ タイプ |
|---|---|---|
|
入力テーブル |
新しい演算で更新するフィールドを含んでいるテーブル。 |
Table View; Raster Layer; Mosaic Layer |
|
式の種類 |
使用される式のタイプを指定します。 入力値がフィーチャ サービスの場合、デフォルトの式タイプは SQL になります。 それ以外の入力タイプでは、デフォルトの式タイプが Python になります。 Python 式の詳細については、フィールド演算の Python の例をご参照ください。 Arcade 式の詳細については、開発者ヘルプの ArcGIS Arcade をご参照ください。 SQL 式の詳細については、SQL 式の構文およびフィールド値の計算をご参照ください。 VBScript 式の詳細については、フィールド演算の VBScript の例をご参照ください。
|
String |
|
フィールド |
計算されるフィールド、計算される式、およびオプションの WHERE 句とフィールド タイプ。 レコードのサブセットを選択するために使用するオプションの SQL 式。 この WHERE 句に一致するレコードのみが計算されます。 WHERE 句を空白のままにすると、すべてのレコードが計算されます。 SQL 構文の詳細については、「ArcGIS で使用されるクエリー式の SQL リファレンス」をご参照ください。 指定された名前のフィールドが入力テーブルに存在しない場合は、フィールドが追加されます。 フィールドのタイプはフィールド タイプの値を使用して設定します。 フィールド タイプが指定されていない場合、フィールドはテキストフィールドとして追加されます。 値テーブル列:
|
Value Table |
|
コード ブロック (オプション) |
複雑な式に使用されるコードのブロック。 関数を使用し、複数の値を返すことはできません。 |
String |
|
ドメインを設定 (オプション) |
フィールド ドメイン ルールが適用されるかどうかを指定します。
|
Boolean |
派生した出力
| ラベル | 説明 | データ タイプ |
|---|---|---|
|
出力テーブル |
更新されたテーブル。 |
Table View; Raster Layer; Mosaic Layer |
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい