フィールド演算 (Calculate Field) (GeoAnalytics Desktop)

サマリー

計算フィールドの値でレイヤーを作成します。

使用法

  • [フィールド演算 (Calculate Field)] は、テーブル、ポイント、ライン、またはポリゴン フィーチャで実行されます。

  • [フィールド演算 (Calculate Field)] ツールを使用すると、必ずレイヤーが作成されます。 入力は変更されません。 一度に 1 つのフィールドの値のみを計算できます。

  • 既存のフィールドや、一意のフィールド名を作成して追加した新しいフィールドの値を計算することができます。

  • 式は、Arcade 式を使用して作成されます。 詳細については、「GeoAnalytics Desktop ツールの Arcade」をご参照ください。

  • Arcade 式はトラッキング対応にすることができます。 トラッキング対応の式では、データが時間対応かつ時間のタイプが瞬間を示し、トラッキング フィールドを指定する必要があります。 トラッキング対応の式の作成に関する詳細については、「トラッキング対応の例」をご参照ください。

  • トラッキング対応の計算を含めるには、以下を実行する必要があります。

    • 時間対応かつ時間のタイプが瞬間を示すレイヤーを使用します。
    • [トラッキング対応] チェックボックスをオンにします。
    • トラッキングの識別に使用するフィールドを選択します。

  • トラッキングは、1 つ以上のトラッキング フィールドの一意の組み合わせで表されます。 たとえば、flightID フィールドと Destination フィールドがトラッキング識別子として使用される場合、フィーチャ [ID007]、[Solden] および [ID007]、[Tokyo] は 2 つの個別トラッキングになります。Destination フィールドの値が異なるからです。

  • 次のツールを使用して、類似の解析を実行することもできます。

  • 時間間隔の境界を適用すると、指定間隔でトラッキングがセグメント化されます。 たとえば、時間間隔の境界を 1 日に設定し、1990 年 1 月 1 日午前 9 時から開始した場合、各トラッキングは毎日午前 9 時に切詰められ、このセグメントの範囲内で解析されます。 この分割を使用すると、解析のためのトラッキングを短縮できるため、計算時間を高速化できます。 時間間隔の境界の繰り返しによる分割が解析で有効な場合は、ビッグ データ処理にこの方法を使用することをお勧めします。 時間の境界を設定するには、解析がトラッキング対応である必要があります。

  • 出力には、計算済みのフィールドに加え、以下の新しいフィールド タイプを含めることができます。

    • ObjectID
    • datetime — 結果が時間対応の場合。 新しいフィールドは、時間タイプが瞬間の場合は instant_date、時間タイプが間隔の場合は start_dateend_date です。

  • 次の 1 つまたは複数の操作を実行して、[フィールド演算 (Calculate Field)] ツールのパフォーマンスを向上させることができます。

    • 対象データのみが解析されるように、範囲環境を設定します。
    • トラッキングを使用している場合は、[時間境界分割] パラメーターを使用してトラッキングを分割します。
    • 式にトラッキング式が含まれる場合のみ、[トラッキング対応] を選択します。
    • 解析が実行されているロケーションに対してローカルなデータを使用します。

  • ジオプロセシング ツールは、Spark を活用しています。 解析は、デスクトップ コンピューターで複数のコアを並列に使用して行われます。 解析の実行の詳細については、「GeoAnalytics Desktop ツールの考慮事項」をご参照ください。

  • GeoAnalytics Desktop ツールを実行する際、解析はデスクトップ コンピューターで行われます。 最適なパフォーマンスを得るために、データがデスクトップで利用できる必要があります。 ホスト フィーチャ レイヤーを使用している場合は、ArcGIS GeoAnalytics Server を使用することをお勧めします。 データがローカルではない場合は、ツールの実行時間は長くなります。 ArcGIS GeoAnalytics Server を使用して解析を実行する方法については、GeoAnalytics Tools をご参照ください。

パラメーター

ラベル説明データ タイプ
入力レイヤー

フィールド演算を実行する入力フィーチャ。

Table View
出力データセット

計算フィールドを含む新しいデータセット。

Feature Class;Table
計算するフィールド

新しく作成されたフィールドと既存のフィールドのどちらの値を計算するかを指定します。

  • 新しいフィールド新しく作成されたフィールドの値を計算します。
  • 既存のフィールド既存のフィールドの値を計算します。
String
新しいフィールド名
(オプション)

値を計算する新しいフィールド。

String
既存のフィールド
(オプション)

値を計算する既存のフィールド。

Field
フィールド タイプ
(オプション)

計算フィールドのフィールド タイプを指定します。

  • String任意の文字列
  • Integer整数
  • Double分数
  • Date日付
String

フィールドの値を計算します。 式は Arcade で記述され、[+ - * / ] 演算子と複数のフィールドを含めることができます。 地理座標系を使用していない限り、計算される値は入力の空間参照の単位で適用されます。地理座標系を使用している場合の単位は m です。

レイヤーをマップに追加する場合、[フィールド] および [ヘルパー] フィルターを使って条件式を組み立てることができます。

Calculator Expression
トラッキング対応
(オプション)

式が、トラッキング対応の式を使用するかどうかを指定します。

  • オン - 式ではトラッキング対応の式を使用するため、トラッキング フィールドを指定する必要があります。
  • オフ - 式ではトラッキング対応の式を使用しません。 これがデフォルトです。

Boolean
トラッキング フィールド

一意のトラッキングを識別するために使用される 1 つ以上のフィールド。

Field
時間境界の分割
(オプション)

入力データを解析用に分割する期間。 時間境界により、指定期間内の値を解析できます。 たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラッキングは 1 日の開始時ごとに分割されます。

Time Unit
時間境界の基準
(オプション)

入力データを解析用に分割する際に使用される基準時間。 時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。 基準時間を指定しないと、1970 年 1 月 1 日が使用されます。

Date

arcpy.geoanalytics.CalculateField(input_layer, output, field_to_calculate, {field_name}, {existing_field}, {field_type}, expression, {track_aware}, track_fields, {time_boundary_split}, {time_boundary_reference})
名前説明データ タイプ
input_layer

フィールド演算を実行する入力フィーチャ。

Table View
output

計算フィールドを含む新しいデータセット。

Feature Class;Table
field_to_calculate

新しく作成されたフィールドと既存のフィールドのどちらの値を計算するかを指定します。

  • NEW_FIELD新しく作成されたフィールドの値を計算します。
  • EXISTING_FIELD既存のフィールドの値を計算します。
String
field_name
(オプション)

値を計算する新しいフィールド。

String
existing_field
(オプション)

値を計算する既存のフィールド。

Field
field_type
(オプション)

計算フィールドのフィールド タイプを指定します。

  • STRING新規フィールドは text タイプになります。
  • INTEGER新規フィールドは integer タイプになります。
  • FLOAT新規フィールドは float タイプになります。
  • DATE新規フィールドは date タイプになります。
String
expression

フィールドの値を計算します。 式は Arcade で記述され、演算子と複数のフィールドを含めることができます。 地理座標系を使用していない限り、計算される値は入力の空間参照の単位で適用されます。地理座標系を使用している場合の単位は m です。

Calculator Expression
track_aware
(オプション)

式が、トラッキング対応の式を使用するかどうかを指定します。

  • TRACK_AWARE式ではトラッキング対応の式を使用するため、トラッキング フィールドを指定する必要があります。
  • NOT_TRACK_AWARE式ではトラッキング対応の式を使用しません。 これがデフォルトです。
Boolean
track_fields
[track_fields,...]

一意のトラッキングを識別するために使用される 1 つ以上のフィールド。

Field
time_boundary_split
(オプション)

入力データを解析用に分割する期間。 時間境界により、指定期間内の値を解析できます。 たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラッキングは 1 日の開始時ごとに分割されます。

Time Unit
time_boundary_reference
(オプション)

入力データを解析用に分割する際に使用される基準時間。 時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。 基準時間を指定しないと、1970 年 1 月 1 日が使用されます。

Date

コードのサンプル

Calculate Field の例 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、CalculateField 関数の使用方法を示しています。

# Name: CalculateField.py
# Description: Calculate the mean of the 3 most recent speed measurements in hurricane tracks

# Import system modules
import arcpy

arcpy.env.workspace = "C:/data/Weather.gdb"

# Set local variables
inFeatures = "Hurricanes"
fieldName = "MeanSpeed3"
out = "HurricaneTracks_Mean"
calcExpression = "Date($feature.DateAsString)"

# Run Calculate Field
arcpy.gapro.CalculateField(inFeatures, out, "NEW_FIELD", fieldName, "", "Date", 
                           calcExpression)