定義済みの位置から時空間キューブを作成 (Create Space Time Cube From Defined Locations) (時空間パターン マイニング)

サマリー

パネル データまたは観測データ (地理情報は変化しないが、属性が時間経過とともに変化する定義済みの位置) を取得し、時空間ビンを作成してそれらのデータを netCDF データ形式に構造化します。 すべての位置に対して、変数または集計フィールドの傾向が評価されます。

[定義済みの位置から時空間キューブを作成 (Create Space Time Cube From Defined Locations)] の詳細

時空間キューブの作成

使用法

  • このツールは、パネル データまたは観測データ (属性が時間経過とともに変化するが、地理情報は変化しない定義済みの位置) を [入力フィーチャ] として取得し、時空間ビンに構造化します。 作成されるデータ構造は、空間を表す x ディメンションと y ディメンションおよび時間を表す t ディメンションを持つ時空間ビンで構成された 3 次元キューブと考えることができます。

    3 次元キューブ内の時空間ビン

  • ビンごとに空間 (入力がポイントの場合は X, Y 位置、入力がポリゴン位置の場合は一連の固定された頂点) と時間 (t) の固定された位置があります。 同じ定義済みの位置エリア (X, Y または頂点) をカバーしているビンは、同じ [ロケーション ID] を共有します。 同じ期間を含むビンは、同じ時間ステップ ID を共有します。

    時空間キューブ内の位置

  • 時空間キューブ内のビンは、LOCATION_IDtime_step_IDCOUNT 値、および任意の [変数] またはキューブの作成時に集計された [集計フィールド] の値を保持します。 物理的に同じ位置に関連付けられているビンは、同じロケーション ID を共有し、共に時系列を示します。 同じ時間ステップ間隔に関連付けられているビンは、同じ時間ステップ ID を共有し、共にタイム スライスを構成します。

  • [入力フィーチャ] は、ポイントまたはポリゴンのいずれかであり、定義済み、つまり固定された位置 (時間経過とともに収集された属性が関連付けられている) を表している必要があります。 このタイプのデータは、一般的にパネル データまたは観測データと呼ばれます。 イベントのタイムスタンプが格納されるフィールドのタイプは、DATE である必要があります。

    注意:

    [入力フィーチャ] がファイル ジオデータベースに格納され、トゥルー カーブ (頂点の密集ではなく円弧として格納される) を含んでいる場合は、時空間キューブへの格納時にポリゴン シェープに歪みが生じます。 [入力フィーチャ] がトゥルー カーブを含んでいるかどうかを確認するには、[OGC][整合チェック方法] を用いた [ジオメトリのチェック (Check Geometry)] ツールを実行します。 選択したオプションが非線形セグメントをサポートしていないことを示すエラー メッセージが表示された場合は、データセット内に存在するトゥルー カーブが、時空間キューブの作成前に、[頂点の挿入方法][角度] に指定された [頂点の挿入 (Densify)] ツールを使用して削除され、頂点に置き換えられている可能性があります。

  • [入力フィーチャ] には、同じフィーチャクラスに含まれる反復形状を指定するか、または時間経過とともに記録された属性を含む関連テーブルを持つ 1 組のフィーチャを指定できます。

  • 指定したパラメーターによってキューブ内に 20 億個以上のビンが生成されると、このツールは失敗します。

  • このツールで距離を正確に測定するには、投影データが必要です。

  • [時間集約] がオンになっている場合は、関連付けられた時間ステップ間隔中に、関連付けられた位置で発生したイベントの数が反映されるビンごとのカウント値が、生成される時空間キューブに含まれます。

  • このツールから生成される出力の内容は、入力フィーチャの netCDF 表現と、キューブの特性を要約するメッセージです。 メッセージは、ツールの実行中に [ジオプロセシング] ウィンドウの下部に書き込まれます。 このメッセージにアクセスするには、進行状況バーにマウス カーソルを合わせるか、ポップアップ ボタン ポップアップ ボタン をクリックするか、[ジオプロセシング] ウィンドウのメッセージ セクションを展開します。 ジオプロセシング履歴を介して、以前に実行したツールのメッセージにアクセスすることもできます。 netCDF ファイルは、[時空間ホット スポット分析 (Emerging Hot Spot Analysis)] ツールや [ローカル外れ値分析 (Local Outlier Analysis)] ツールなど、他のツールの入力として使用することができます。 キューブのコンテンツを表示できるようにする手法については、「時空間キューブの視覚化」をご参照ください。

  • [時間フィールド] パラメーターで Date タイプのフィールドを選択します。 入力が反復形状である場合、このフィールドには、各フィーチャに関連付けられているタイムスタンプが含まれる必要があります。 入力に [関連テーブル] が含まれている場合、このフィールドは、テーブル内の各レコードに関連付けられたタイムスタンプを示します。

  • [時間ステップの間隔] は、データの期間を分割する方法を定義します。 [時間集約] がオフに設定された場合は、[時間ステップの間隔] を既存のデータ構造に設定する必要があります。 たとえば、5 年おきに収集されている国勢調査データがあるとすれば、「5 年」と入力する必要があります。 時間的な集約を行う場合は、このパラメーターをチェックしてください。 たとえば、5 分おきに記録しているセンサー データがある場合に、1 日間隔で集約を行うことがあります。 時間ステップの間隔は常に固定された期間であり、ツールでは 10 個以上の時間ステップが必要です。

    注意:

    [時間ステップの間隔] ドロップダウン リストには多くの時間単位が表示されますが、このツールは年、月、週、日、時間、分、秒だけをサポートしています。

  • 時空間キューブを作成できなかった場合、ツールは 10 個の時間ステップ間隔で指定した入力データを構築できなかった可能性があります。 このツールの実行中にエラー メッセージが表示された場合は、入力のタイムスタンプを調べて、値の範囲 (10 個以上の値) が含まれていることを確認します。 この値の範囲には、ツールで指定できる最小の時間範囲である 10 秒以上の範囲が含まれている必要があります。 10 個の時間ステップ間隔は、Mann-Kendall 統計で必要です。

  • [基準時間] には、日時の値または日付のみの値を指定できますが、時間のみの値を指定することはできません。 必要な形式は、コンピューターの地域の時間設定によって決まります。

  • 集約された変数と集計フィールドの値に対して実行される傾向分析は、Mann-Kendall 統計に基づいています。

  • このツールで実行できる属性の集約に対する統計演算は、合計、平均、最小、最大、標準偏差、および中央値です。

  • サマリー フィールド レコードに NULL 値が存在する場合、そのフィーチャは出力キューブから除外されます。 [入力フィーチャ] に NULL 値が存在する場合は、まず [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。 [欠損値の補完 (Fill Missing Values)] ツールの実行後にも NULL 値が存在し、解析方法の一環として各ビン内のポイント数を設定する場合、カウント用 (サマリー フィールドなし) とサマリー フィールド用に別々のキューブを作成することを検討してください。 それぞれのサマリー フィールドで、NULL 値のセットが異なる場合も、各サマリー フィールドに対して別々のキューブを作成することを検討してください。

  • SPATIAL_NEIGHBORS を使用して空のビンを埋める場合、このツールは 8 つの最近傍に基づいて推定します。 このオプションを使用して空のビンを埋めるには、これらの空間近傍のうち最低 4 つに値が含まれている必要があります。

  • SPACE_TIME_NEIGHBORS を使用して空のビンを埋める場合、このツールは 8 つの最近傍に基づいて推定します。 さらに、空間近傍になったビンには、1 つの時間ステップを往復することで時間近傍が使用されます。 このオプションを使用して空のビンを埋めるには、最低 13 の時空間近傍が必要です。

  • TEMPORAL_TREND を使用して空のビンを埋める場合は、指定された位置のその他の期間に値を内挿するために、その位置の最初の 2 つの期間と最後の 2 つの期間のビンに値を入力する必要があります。

  • TEMPORAL_TREND の入力タイプでは、SciPy 内挿パッケージ内にある Interpolated Univariate Spline 手法が使用されます。

  • このツールには、複数の CPU (またはマルチコア CPU) を使用しているシステムでパフォーマンスが向上するという利点があります。 デフォルトでは、このツールは使用可能なプロセッサの 50% を使用して実行されますが、並列処理ファクター環境を使用して、使用される CPU の数を増減できます。 処理速度の増加は、大きい時空間キューブを作成したときに最も顕著です。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

時空間キューブに変換する入力ポイント/ポリゴン フィーチャクラス。

Feature Layer
出力時空間キューブ

作成する出力 netCDF データ キューブ。

File
ロケーション ID

各一意の位置を示す ID 番号を含む整数フィールド。

Field
時間集約

データを時間的に集約するかどうかを決定します。

  • オフ - [入力フィーチャ] の既存の時間的構造を使用して時空間キューブを作成します。 たとえば、年次データが存在するときに、毎年の [時間ステップの間隔] を使用してキューブを作成します。 これがデフォルトです。
  • オン - 指定した [時間ステップの間隔] に基づいて時間的にフィーチャを集約した時空間キューブを作成します。 たとえば、毎日収集されているデータが存在するときに、毎週の [時間ステップの間隔] を使用してキューブを作成します。
Boolean
時間フィールド

データセット内の各行のタイムスタンプを含むフィールド。 このフィールドは Date タイプである必要があります。

Field
時間ステップ間隔
(オプション)

1 つの時間ステップを表す秒、分、時間、日、週、または年の数。 このパラメーターの有効な入力例として、「1 週間」、「13 日」、「1 か月」などがあります。

[時間集約] がオフに設定された場合、時間的な集約は行われないため、このパラメーターをデータの既存の時間的構造に設定する必要があります。

[時間集約] がオンに設定された場合、時間的な集約が行われるため、このパラメーターを、作成する [時間ステップの間隔] に設定する必要があります。 同じ [時間ステップの間隔] 内のすべてのフィーチャが集約されます。

Time Unit
時間ステップの配列
(オプション)

指定された [時間ステップの間隔] に基づいてキューブ構造の実行方法が決定されます。

  • 終了時間時間ステップは最後の時間イベントに揃えられ、前の時間が集約されます。 これがデフォルトです。
  • 開始時間時間ステップは最初の時間イベントに揃えられ、後の時間が集約されます。
  • 基準時間各時間ステップは、指定した特定の日付/時間に合わせられます。 入力フィーチャ内のすべてのポイントのタイムスタンプが、指定した基準時間より大きい値の場合 (または入力フィーチャの開始時間である場合)、時間ステップ間隔はその基準時間から開始され、([開始時間] の配列のように) 後の時間が集約されます。 入力フィーチャ内のすべてのポイントのタイムスタンプが、指定した基準時間より小さい場合 (または、入力フィーチャの終了時間である場合)、時間ステップ間隔はその基準時間で終了し、([終了時間] の配列のように) 前の時間が集約されます。 指定した [基準時間] がデータの時間範囲の中間にある場合、時間ステップ間隔は、([終了時間] の配列のように) 指定した基準時間で終了して作成されます。データの全時間範囲がカバーされるまで、基準時間の前と後にさらに時間ステップ間隔が作成されます。
String
基準時間
(オプション)

時間ステップの間隔の配列に使用する日付/時間。 たとえば、毎週 (月曜から日曜まで) のデータをビンに入れる場合、基準時間を日曜の深夜に設定することによって、日曜と月曜の間の深夜でビンが切り替わるようにすることができます

Date
変数
(オプション)

時空間キューブに取り込む属性値を含む数値フィールド。

使用可能な入力タイプは次のとおりです。

  • DROP_LOCATIONS - いずれかの変数についてデータが欠落している位置が出力時空間キューブから削除されます。
  • ZEROS - 空のビンをゼロで埋めます。
  • SPATIAL_NEIGHBORS - 空のビンを空間近傍の平均値で埋めます。
  • SPACE_TIME_NEIGHBORS - 空のビンを時空間近傍の平均値で埋めます。
  • TEMPORAL_TREND - 空のビンを内挿された一変量スプライン アルゴリズムを使用して埋めます。

注意:

変数レコードのいずれかに NULL 値が存在すると、空のビンが生成されます。 [入力フィーチャ] に NULL 値が存在する場合は、まず [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。

Value Table
サマリー フィールド
(オプション)

時空間キューブに集約するときに、指定した統計の計算に使用する属性値を含む数値フィールド。 複数の統計とフィールドの組み合わせを指定できます。 指定したいずれかのフィールドに NULL 値が存在する場合、そのフィーチャは出力キューブから削除されます。 入力フィーチャに NULL 値が存在する場合は、時空間キューブを作成する前に [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。

使用可能な統計のタイプは次のとおりです。

  • SUM - 各ビン内の指定されたフィールドの値の合計を追加します。
  • MEAN - 各ビン内の指定されたフィールドの平均を計算します。
  • MIN - 各ビン内の指定されたフィールドのすべてのレコードの中で最も小さい値を検出します。
  • MAX - 各ビン内の指定されたフィールドのすべてのレコードの中で最も大きい値を検出します。
  • STD - 各ビン内の指定されたフィールドの値の標準偏差を検出します。
  • MEDIAN - 各ビン内の指定されたフィールドのすべてのレコードを並べ替えたときの、中央の値を検出します。

使用可能な入力タイプは次のとおりです。

  • ZEROS - 空のビンをゼロで埋めます。
  • SPATIAL_NEIGHBORS - 空のビンを空間近傍の平均値で埋めます。
  • SPACE_TIME_NEIGHBORS - 空のビンを時空間近傍の平均値で埋めます。
  • TEMPORAL_TREND - 空のビンを内挿された一変量スプライン アルゴリズムを使用して埋めます。

注意:

サマリー フィールド レコードに NULL 値が存在する場合、そのフィーチャは出力キューブから除外されます。 [入力フィーチャ] に NULL 値が存在する場合は、まず [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。 [欠損値の補完 (Fill Missing Values)] ツールの実行後にも NULL 値が存在し、解析方法の一環として各ビン内のポイント数を設定する場合、カウント用 (サマリー フィールドなし) とサマリー フィールド用に別々のキューブを作成することを検討してください。 それぞれのサマリー フィールドで、NULL 値のセットが異なる場合も、各サマリー フィールドに対して別々のキューブを作成することを検討してください。

Value Table
リレート テーブル
(オプション)

入力フィーチャにリレートされるテーブルまたはテーブル ビュー

Table View
リレート ロケーション ID
(オプション)

リレートのキーとなる [ロケーション ID] が格納されている、[関連テーブル] 内の整数フィールド。

Field

arcpy.stpm.CreateSpaceTimeCubeDefinedLocations(in_features, output_cube, location_id, temporal_aggregation, time_field, {time_step_interval}, {time_step_alignment}, {reference_time}, {variables}, {summary_fields}, {in_related_table}, {related_location_id})
名前説明データ タイプ
in_features

時空間キューブに変換する入力ポイント/ポリゴン フィーチャクラス。

Feature Layer
output_cube

作成する出力 netCDF データ キューブ。

File
location_id

各一意の位置を示す ID 番号を含む整数フィールド。

Field
temporal_aggregation
  • APPLY_TEMPORAL_AGGREGATION指定した time_step_interval に基づいて時間的にフィーチャを集約した時空間キューブを作成します。 たとえば、毎日収集されているデータが存在するときに、毎週の time_step_interval を使用してキューブを作成します。
  • NO_TEMPORAL_AGGREGATIONin_features の既存の時間的構造を使用して時空間キューブを作成します。 たとえば、年次データが存在するときに、毎年の time_step_interval を使用してキューブを作成します。 これがデフォルトです。
Boolean
time_field

データセット内の各行のタイムスタンプを含むフィールド。 このフィールドは Date タイプである必要があります。

Field
time_step_interval
(オプション)

1 つの時間ステップを表す秒、分、時間、日、週、または年の数。 このパラメーターの有効な入力例として、「1 週間」、「13 日」、「1 か月」などがあります。

temporal_aggregation がオフに設定された場合、時間的な集約は行われないため、このパラメーターをデータの既存の時間的構造に設定する必要があります。

temporal_aggregation がオンに設定された場合、時間的な集約が行われるため、このパラメーターを、作成する time_step_interval に設定する必要があります。 同じ time_step_interval 内のすべてのフィーチャが集約されます。

Time Unit
time_step_alignment
(オプション)

指定された time_step_interval に基づいてキューブ構造の実行方法が決定されます。

  • END_TIME時間ステップは最後の時間イベントに揃えられ、前の時間が集約されます。
  • START_TIME時間ステップは最初の時間イベントに揃えられ、後の時間が集約されます。
  • REFERENCE_TIME各時間ステップは、指定した特定の日付/時間に合わせられます。 入力フィーチャ内のすべてのポイントのタイムスタンプが、指定した基準時間より大きい値の場合 (または入力フィーチャの開始時間である場合)、時間ステップ間隔はその基準時間から開始され、(START_TIME の配列のように) 後の時間が集約されます。 入力フィーチャ内のすべてのポイントのタイムスタンプが、指定した基準時間より小さい場合 (または、入力フィーチャの終了時間である場合)、時間ステップ間隔はその基準時間で終了し、(END_TIME の配列のように) 前の時間が集約されます。 指定した基準時間がデータの時間範囲の中間にある場合、時間ステップ間隔は (END_TIME の配列のように) 指定した基準時間で終了して作成されます。データの全時間範囲がカバーされるまで、基準時間の前または後にさらに時間ステップ間隔が作成されます。
String
reference_time
(オプション)

時間ステップの間隔の配列に使用する日付/時間。 たとえば、毎週 (月曜から日曜まで) のデータをビンに入れる場合、基準時間を日曜の深夜に設定することによって、日曜と月曜の間の深夜でビンが切り替わるようにすることができます

Date
variables
[[Field, Fill Empty Bins with],...]
(オプション)

時空間キューブに取り込む属性値を含む数値フィールド。

使用可能な入力タイプは次のとおりです。

  • DROP_LOCATIONS - いずれかの変数についてデータが欠落している位置が出力時空間キューブから削除されます。
  • ZEROS - 空のビンをゼロで埋めます。
  • SPATIAL_NEIGHBORS - 空のビンを空間近傍の平均値で埋めます。
  • SPACE_TIME_NEIGHBORS - 空のビンを時空間近傍の平均値で埋めます。
  • TEMPORAL_TREND - 空のビンを内挿された一変量スプライン アルゴリズムを使用して埋めます。

注意:

変数レコードのいずれかに NULL 値が存在すると、空のビンが生成されます。 [入力フィーチャ] に NULL 値が存在する場合は、まず [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。

Value Table
summary_fields
[[Field, Statistic, Fill Empty Bins with],...]
(オプション)

時空間キューブに集約するときに、指定した統計の計算に使用する属性値を含む数値フィールド。 複数の統計とフィールドの組み合わせを指定できます。 指定したいずれかのフィールドに NULL 値が存在する場合、そのフィーチャは出力キューブから削除されます。 入力フィーチャに NULL 値が存在する場合は、時空間キューブを作成する前に [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。

使用可能な統計のタイプは次のとおりです。

  • SUM - 各ビン内の指定されたフィールドの値の合計を追加します。
  • MEAN - 各ビン内の指定されたフィールドの平均を計算します。
  • MIN - 各ビン内の指定されたフィールドのすべてのレコードの中で最も小さい値を検出します。
  • MAX - 各ビン内の指定されたフィールドのすべてのレコードの中で最も大きい値を検出します。
  • STD - 各ビン内の指定されたフィールドの値の標準偏差を検出します。
  • MEDIAN - 各ビン内の指定されたフィールドのすべてのレコードを並べ替えたときの、中央の値を検出します。

使用可能な入力タイプは次のとおりです。

  • ZEROS - 空のビンをゼロで埋めます。
  • SPATIAL_NEIGHBORS - 空のビンを空間近傍の平均値で埋めます。
  • SPACE_TIME_NEIGHBORS - 空のビンを時空間近傍の平均値で埋めます。
  • TEMPORAL_TREND - 空のビンを内挿された一変量スプライン アルゴリズムを使用して埋めます。

注意:

サマリー フィールド レコードに NULL 値が存在する場合、そのフィーチャは出力キューブから除外されます。 [入力フィーチャ] に NULL 値が存在する場合は、まず [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。 [欠損値の補完 (Fill Missing Values)] ツールの実行後にも NULL 値が存在し、解析方法の一環として各ビン内のポイント数を設定する場合、カウント用 (サマリー フィールドなし) とサマリー フィールド用に別々のキューブを作成することを検討してください。 それぞれのサマリー フィールドで、NULL 値のセットが異なる場合も、各サマリー フィールドに対して別々のキューブを作成することを検討してください。

Value Table
in_related_table
(オプション)

入力フィーチャにリレートされるテーブルまたはテーブル ビュー

Table View
related_location_id
(オプション)

リレートのキーとなる [ロケーション ID] が格納されている、[関連テーブル] 内の整数フィールド。

Field

コードのサンプル

CreateSpaceTimeCubeDefinedLocations の例 1 (Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.stpm.CreateSpaceTimeCubeDefinedLocations("Chicago_Data", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                               "NO_TEMPORAL_AGGREGATION", "TIME", "1 Months",
                                               "END_TIME", "", "COUNT ZEROS")
CreateSpaceTimeCubeDefinedLocations の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、CreateSpaceTimeCubeDefinedLocations 関数の使用方法を示しています。

# Fill missing values using a feature set and related table
# Use the results to create a space-time cube from defined locations
# Run Emerging Hot Spot Analysis on the data
# Visualize the results in 3d

# Import system modules
import arcpy

# Set overwriteOutput property to overwrite existing output, by default
arcpy.env.overwriteOutput = True

# Local variables ...
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"

try:

    # Fill missing values in a feature class containing block group polygon shapes and a related table containing the incidents
    # Since some of the values are missing we will fill them using the temporal trend method.

    arcpy.stpm.FillMissingValues("Chicago_Feature", "Chicago_FilledFeature", "COUNT", "TEMPORAL_TREND", "", "", NoneNone,
                                 "TIME", "", "MYID", "Chicago_Table", "MYID", "", "", "", "Chicago_FilledTable")



    # Create a defined location space time cube using a related table
    # Using a reference time at the start of the month to force binning fall on month breaks
    # Using temporal aggregation to sum multiple entries into one month
    # Using the method drop location if missing values since we already filled using Fill Missing Values
    arcpy.stpm.CreateSpaceTimeCubeDefinedLocations("Chicago_FilledFeature", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                                   "APPLY_TEMPORAL_AGGREGATION", "TIME", "1 Months", "REFERENCE_TIME",
                                                   "10/1/2015", "", "COUNT SUM DROP_LOCATIONS", "Chicago_FilledTable",
                                                   "MYID")

    # Run an emerging hot spot analysis on the defined locations cube
    # Using contiguity edges so only block groups which bound each other are considered neighbours
    arcpy.stpm.EmergingHotSpotAnalysis(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE",
                                       "Chicago_Cube_EmergingHotSpot", "", 1, "",
                                       "CONTIGUITY_EDGES_ONLY")

    # Use Visualize Cube in 3d to see the hot spot results for each time slice
    arcpy.stpm.VisualizeSpaceTimeCube3D(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE", "HOT_AND_COLD_SPOT_RESULTS",
                                        "Chicago_Cube_Visualize3d")

except arcpy.ExecuteError:
    # If any error occurred when running the tool, print the messages
    print(arcpy.GetMessages())