Skip To Content

フィールド演算

フィールド演算ツールは、新規または既存のフィールドのフィールド値を計算します。 Arcade 関数を使用して、計算式を定義できます。

フィールド演算ツールは、次のようなシナリオで使用できます。

  • 空の値をデフォルト値で置き換える。
  • Arcade Proper 関数を使用して、名前がすべて大文字の文字列の列を先頭だけ大文字に変換する (例: JANE SMITH を Jane Smith に変換)。
  • Arcade 数学関数を使用して、数値列の値を特定の桁数に丸める。
  • 整数フィールドを新しい文字列フィールドにキャストして、郵便番号の値のゼロ詰めを維持する (例: 1 を 00001 にキャスト)。
  • カンマを使用して、区切られていない郵便番号の文字列を分割する (例: 0051500234 を 00515,00234 に分割)。

パラメーター

フィールド演算ツールで使用するパラメーターの概要を次の表に示します。

パラメーター説明

入力データセット

計算するフィールドを含むデータセット。

計算するフィールド

計算済みの値で既存のフィールドを置換するか ([既存のフィールド])、フィールドを作成するか ([新しいフィールド]) を指定します。

新しいフィールド名

新しいフィールドの名前。 [計算するフィールド] 値が [新しいフィールド] の場合、このパラメーターは必須です。

新しいフィールド タイプ

新しいフィールドのタイプ。 [計算するフィールド] 値が [新しいフィールド] の場合、このパラメーターは必須です。

既存のフィールド名

計算された値で置換する既存フィールドの名前。 このパラメーターは、[計算するフィールド] の値が [既存のフィールド] の場合に使用されます。

Arcade 式

新しい値を計算するために使用する Arcade 式。

空間参照

ジオメトリ値または関数の処理に使用される空間参照。

使用上の注意

[計算するフィールド] パラメーターを使用して、新しいフィールドの値を計算するか、既存のフィールドの値を計算するかを指定します。

新しいフィールドの値を計算する場合は、[新しいフィールド名] パラメーターと [新しいフィールド タイプ] パラメーターを使用して、新しいフィールド名を入力し、新しいフィールドのタイプを指定します。 次に、フィールド タイプ オプションを示します。

  • [Date Only] - 新しい日付のみタイプのフィールドを計算します。 Date Only フィールドには、日付値 (1/30/2024 など) を指定できます。
  • [Date] - 新しい日付タイプのフィールドを計算します。 Date フィールドには、日付値と時間値 (1/30/2024、10:30 AM など) を指定できます。
  • [Double] - 新しい double タイプのフィールドを計算します。 Double フィールドには、約 -2.2E308 ~ 1.8E308 の有理数を指定できます。
  • [Integer] - 新しい integer タイプのフィールドを計算します。 Integer フィールドには、-2147483648 ~ 2147483647 の整数を指定できます。
  • [String] - 新しい文字列タイプのフィールドを計算します。 String フィールドには、文字列 (テキスト) を指定できます。
  • [ポイント] - ポイントを含む新しいジオメトリ フィールドを計算します。
  • [マルチポイント] - マルチポイントを含む新しいジオメトリ フィールドを計算します。
  • [ポリライン] - ポリラインを含む新しいジオメトリ フィールドを計算します。
  • [ポリゴン] - ポリゴンを含む新しいジオメトリ フィールドを計算します。

既存のフィールドの値を計算するには、入力データセットからフィールドを選択します。 フィールドには同じ名前とタイプが返され、新たに計算された値が含まれます。

新しいフィールドと既存のフィールドの両方に Arcade 式を指定して、新しい値を計算します。 Arcade 式ダイアログ ボックスで、[プロファイル変数] リストから入力データセットのフィールドにアクセスするか、$record.field_name (field_name はフィールドの名前) などの値を入力します。 フィールドに特殊文字が含まれている場合、そのフィールドを参照する際に別の形式を使用する必要がある場合があります。 たとえば、%Employed というフィールドは、$record.%Employed として参照することはできず、無効な構文になります。 代わりに、$record["%Employed"] などの構文を使用する必要があります。 [関数] リストを使用して、関数にアクセスし、式を作成します。

[空間参照] パラメーターを使用して、ジオメトリ値または関数の処理に使用される座標系を指定します。 式でジオメトリ フィールドを使用すると、ジオメトリは処理のためにこの空間参照に投影されます。 新しいジオメトリ フィールドまたは既存のジオメトリ フィールドを計算している場合、出力値はこの空間参照に格納されます。 デフォルトでは、空間参照の値は入力データセットのジオメトリ フィールドの空間参照に設定されます。 入力データセットにジオメトリ フィールドがない場合、空間参照パラメーターは [WGS 1984] (WKID 4326) に設定されます。 ジオメトリを処理していない場合は、このパラメーターは使用されません。

Arcade の詳細については、ArcGIS Arcade に関するトピックをご参照ください。 Arcade の使用を開始するに当たって、Arcade の Playground で演習用の式の作成を試すことができます。

次の表に、フィールド演算ツールで使用する一般的な Arcade 式の概要を示します。

一般的な操作説明追加情報

フィールドのコピー

ソース フィールドの値をターゲット フィールドにコピーします。

my_origin_field の値を新しいフィールドにコピーします。

return $record.my_origin_field

デフォルト値の設定

フィールドのデフォルト値を設定します。

my_field_name の NULL 値を文字列 my default value で置き換えます。

if ($record.my_field_name == null) {
    return "my default value"
} else {
    return $record.my_field_name
}

大文字/小文字の変更

ソース文字列の大文字/小文字を変更します。

my_field_name の値を大文字または小文字に変換します。

// To convert a string to lowercase:
return Lower($record.my_field_name)

// To convert a string to uppercase:
return Upper($record.my_field_name)

Lower

Upper

値の結合

ソース値を文字列に連結します。

field_1field_2 を結合して、フィールドを作成します。 値をカンマで区切ります。

var values_to_combine = [
    $record.field_1, 
    $record.field_2
]
var separator = ", "
return Concatenate(values_to_combine, separator)

連結

文字列の先頭から複数の文字を抽出します。

my_string_field の各値の最初の 3 文字を返します。

Left($record.my_string_field, 3)

文字列の末尾から複数の文字を抽出します。

my_string_field の各値の最後の 3 文字を返します。

Right($record.my_string_field, 3)

サブ文字列

文字列の中央部から文字セットを抽出します。

my_string_field から文字 2 で始まる 5 文字を返します。

Mid($record.my_string_field, 2, 5)

Mid

分割

文字列を分割し、1 つの部分を返します。

区切り文字 ` に基づいて、文字列フィールドを配列に分割します。 最初の部分を返します。

var parts = Split($record.my_string_field, ',')
return parts[0] // Return the first part

分割

条件値

if/else ステートメントに基づいて、異なる値を返します。

所定のレコードで my_field_name の値が 1 に等しい場合に true を返し、それ以外の場合は false を返します。

if($record.my_field_name == 1) {
    return true
} else {
    return false
}

検索と置換

値のすべてのインスタンスを異なる値で置き換えます。

my_field_namesearch_value のインスタンスを new_value で置き換えます。

var search_value = "my old string"
var new_value = "my new string"
if($record.my_field_name == search_value){
    return new_value
} else {
    return $record.my_field_name
}

置換

ネストされた値にアクセス

ネストされた値を Struct フィールドから返します。

キー myKey の値を my_struct_field という Struct フィールドから返します。

var nested_value = $record.my_struct_field.myKey
return nested_value

キーが存在するかどうかを確認

指定したキーの有無に応じて true または false を返します。

struct_field という Struct フィールドにキー myKey が存在する場合は true を返し、このキーが存在しない場合は false を返します。

return HasValue($record.struct_field, 'myKey')

HasValue

キーの値を取得するか、キーの値が存在しない場合のデフォルト値を設定

指定したキーの値を返すか、このキーが存在しない場合はデフォルト値を返します。

struct_field という Struct フィールドにキー myKey が存在する場合は、このキーの値を返し、このキーが存在しない場合は、デフォルト値の MyDefault を返します。

return DefaultValue($record.struct_field, 
                                  ['myKey'],
                                  'MyDefault')

DefaultValue

出力

このツールの出力は、入力データセットのすべてのフィールドと、新たに計算されたフィールドの値を含むデータセットです。

制限事項

フィールド演算ツールの既知の制限事項は以下のとおりです。

  • 1 回のツール実行で計算できるフィールドは 1 つだけです。
  • 既存のフィールド タイプは変更できません。 既存のフィールドを新しいタイプに更新するには、フィールドの更新ツールを使用します。

ライセンス要件

次のライセンスと構成が必要です。

  • Creator または Professional ユーザー タイプ
  • 公開者、ファシリテーター、管理者ロール、またはそれと同等のカスタム ロール

Data Pipelines の要件の詳細については、「要件」をご参照ください。