フィールド演算 (データ管理ツール)
サマリー
フィーチャクラス、フィーチャ レイヤー、またはラスターのフィールドの値を計算します。
使用法
注意:
このツールを実行すると、入力データが変更されます。 詳細と不要なデータの変更を回避するための方法については、入力データを変更または更新するツールをご参照ください。
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 のオプション機能を有効にします。
詳細については、削除と非推奨のお知らせをご参照ください。
1 回の操作につき、1 つのフィールドにのみ演算を適用できます。 複数の計算を適用するには、フィールド演算 ツールを使用します。
既存のフィールドの値は上書きされます。 元の値を維持するには、バックアップとして入力テーブルのコピーを作成するか、ジオプロセシング ウィンドウの 元に戻すの有効化 オプションを使用します。
Python の演算の場合、フィールド名は感嘆符で囲まれている必要があります (
!fieldname!など)。Arcade の演算の場合、フィールド名に接頭辞
$feature.が付与されている必要があります ($feature.fieldnameなど)。注意:
フィールド タイプ (Date、Date Only、Time Only、Timestamp Offset、Text) 間で時間値を転送するには、代わりに 時間フィールドの変換 ツールを使用します。
テキスト フィールドまたは文字フィールドの文字列の演算を行う場合、ダイアログ ボックスでは、文字列を二重引用符で囲む必要があり (例: "string")、スクリプトでは、二重引用符で囲まれた文字列をさらに一重引用符で囲む必要があります (例:
'"string"')。数値を指定するフィールドの演算を行うには、式 パラメーターに数値を引用符で囲まずに入力します。
レガシー:
arcgis.rand()のサポートは ArcGIS Pro 2.0 で終了しました。 代わりに、Python のrandomモジュールを使用する同等の関数を使用する必要があります。randomモジュールを正常に使用するには、コード ブロック パラメーターにインポートとして追加します。コード ブロック パラメーターを使用すると、複雑な式を作成できます。 コード ブロックは、ダイアログ ボックスに直接入力するか、スクリプトで文字列として入力します。 式とコード ブロックは接続されています。 コード ブロックの結果が式に渡される必要があるため、コード ブロックが式に関連付けられている必要もあります。
コード ブロック パラメーターは Python 式でのみサポートされています。
コード ブロック パラメーターでは、Python の
mathモジュールおよび形式を使用できます。 追加のモジュールをインポートすることもできます。mathモジュールは、数論的関数と表現関数、べき関数と対数関数、三角関数、角度変換関数、双曲線関数、および数学定数を提供します。mathモジュールの詳細については、Python のヘルプをご参照ください。Python でジオメトリー情報を計算するには、
Geometryオブジェクト プロパティを使用します。 たとえば、!shape!.pointCount!の式を使用して、フィーチャ内の頂点の数を計算します。注意:
ジオメトリー属性の計算 ツールでも、同様の計算を実行できます。
Python で面積と長さを計算するには、
getAreaメソッドとgetLengthメソッドをメソッドおよび単位タイプと組み合わせて使用します。ポリゴンの測地線の面積を平方キロメートル単位で計算するには、次の式を使用します。
!shape!.getArea('GEODESIC', 'SQUAREKILOMETERS')!ポリライン (またはポリゴン) の平面の長さをヤード単位で計算するには、次の式を使用します。
!shape!.getLength('PLANAR', 'YARDS')
ArcGIS アプリケーションは、
.calファイルの読み書きに UTF-16-LE エンコードを使用します。 ファイルが UTF-16-LE エンコードを使用して書き込まれている限り、その他のアプリケーション (メモ帳など) を使用して、.calファイルを作成または変更できます。 他のエンコードを使用したファイルは、コード ブロックに読み込まれません。NULL を含む文字列フィールドの連結やゼロ値除算を試みる Python および SQL 式は、このフィールドの値として NULL を返します。
注意:
SQL 式を使用してモバイル ジオデータベース内の文字列フィールドを連結すると、NULL 値は無視され、値が結合されます。
結合されたデータを操作する場合は、結合元のテーブル内のフィールドのみ更新できます。 結合先のテーブル内のフィールドは更新できません。 結合されたテーブルで計算を実行する場合は、そのテーブルで直接計算を実行できます。
SQL 式は、フィーチャ サービスやエンタープライズ ジオデータベースの高速な計算をサポートします。 一度に 1 つのフィーチャまたは行を計算する代わりに、サーバーまたはデータベースに 1 つのリクエストが送信されるので、計算が高速化します。
フィーチャ サービス、エンタープライズ ジオデータベース、モバイル ジオデータベース、ファイル ジオデータベース、データベース、SQLite、GeoPackage が SQL 式をサポートしています。 他の形式では、Python または Arcade 式を使用します。
式の種類 パラメーターの SQL オプションの使用には、次の制限があります。
このオプションは、ファイル ジオデータベース、モバイル ジオデータベース、Db2、Oracle、PostgreSQL、SAP HANA、(エンタープライズ ジオデータベースを備えた、または備えていない) SQL Server、SQLite、および GeoPackage でのみサポートされています。
結合テーブルのフィールド値の計算はサポートされていません。
バージョン対応登録され、履歴管理が有効になっているエンタープライズ ジオデータベース データはサポートされていません。
ジオプロセシング操作を元に戻す ことはできません。
SQL 式のヘルプは、データベース ベンダーのドキュメントをご参照ください。
ツール ダイアログ ボックスの 式 パラメーターには 値の挿入 ドロップダウン リストがあり、フィールド リストで選択したフィールドのフィールド値、または選択したフィールドのドメインのドメイン値を追加できます。 ドメイン値を使用して、フィールド ドメインの有効な値のみがフィールドに挿入されるようにします。
パラメーター
| ラベル | 説明 | データ タイプ |
|---|---|---|
|
入力テーブル |
新しい演算で更新されるフィールドを含んでいるテーブル。 |
Mosaic Layer; Raster Layer; Table View |
|
フィールド名 (既存または新規) |
新しい演算で更新されるフィールド。 指定された名前のフィールドが入力テーブルに存在しない場合は、フィールドが追加されます。 |
Field |
|
式 |
選択されている行を設定する値を作成するために使用される単純な演算式。 |
SQL Expression |
|
式の種類 (オプション) |
使用される式のタイプを指定します。 入力値がフィーチャ サービスの場合、デフォルトの式タイプは SQL になります。 それ以外の入力タイプでは、デフォルトの式タイプが Python になります。 Python 式の詳細については、フィールド演算の Python の例をご参照ください。 Arcade 式の詳細については、開発者ヘルプの ArcGIS Arcade をご参照ください。 SQL 式の詳細については、SQL 式の構文およびフィールド値の計算をご参照ください。 SQL 式は、フィーチャ サービスやエンタープライズ ジオデータベースの高速な計算をサポートします。 一度に 1 つのフィーチャまたは行を計算する代わりに、サーバーまたはデータベースに 1 つのリクエストが送信されるので、計算が高速化します。 フィーチャ サービス、エンタープライズ ジオデータベース、モバイル ジオデータベース、ファイル ジオデータベース、データベース、SQLite、GeoPackage だけが SQL 式をサポートしています。 他の形式では、Python または Arcade 式を使用します。 VBScript 式の詳細については、フィールド演算の VBScript の例 をご参照ください。
|
String |
|
コード ブロック (オプション) |
複雑な Python または VBScript 式に使用されるコードのブロック。 |
String |
|
フィールド タイプ (オプション) |
新しいフィールドのフィールド タイプを指定します。 フィールド名が入力テーブルに存在しない場合にのみ、このパラメーターが使用されます。 フィールドのタイプがテキストの場合、フィールドの長さは 512 になります。ただし、入力がシェープファイルまたは dBASE ファイルの場合、長さは 254 になります。 長さを調整するには、フィールドの変更(alter-field-properties.yml) ツールを使用します。
|
String |
|
ドメインを設定 (オプション) |
フィールド ドメイン ルールが適用されるかどうかを指定します。
|
Boolean |
派生した出力
| ラベル | 説明 | データ タイプ |
|---|---|---|
|
更新された入力テーブル |
更新されたテーブル。 |
Table View; Raster Layer; Mosaic Layer |
環境
現在のワークスペース, 範囲, フィールド ドメインの説明の転送
特殊なケース
- フィールド ドメインの説明の転送
-
When this environment is turned on, any fields that have an associated domain will use the domain description instead of the field's value. Values from fields that do not have a domain will be unaffected.
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい