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

サマリー

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

定義済みの位置から時空間キューブを作成の詳細

定義済みの位置から時空間キューブを作成の図

使用法

  • ツールで作成されるデータ構造は、空間を表す x ディメンションと y ディメンションおよび時間を表す t ディメンションを持つ時空間ビンで構成された 3D キューブと考えることができます。

    3D キューブの時空間ビン

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

    時空間キューブ内の位置

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

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

    注意:

    入力フィーチャがファイル ジオデータベースに格納され、トゥルー カーブ (頂点の密集ではなく円弧として格納される) を含んでいる場合は、時空間キューブへの格納時にポリゴン シェープに歪みが生じます。 入力フィーチャがトゥルー カーブを含んでいるかどうかを確認するには、[検証方法] パラメーターを [OGC] オプションに指定したジオメトリのチェック ツールを実行します。 選択したオプションが非線形セグメントをサポートしていないことを示すエラー メッセージが表示された場合は、データセット内に存在するトゥルー カーブが、時空間キューブの作成前に、[頂点の挿入方法] パラメーターを [角度] オプションに指定した [頂点の挿入 (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 値のセットが異なる場合も、各サマリー フィールドに対して別々のキューブを作成できます。

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

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

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

  • 時系列的トレンド タイプの場合は、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)] ツールを実行することをお勧めします。

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

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

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

  • ゼロ - 空のビンをゼロで埋めます。
  • 空間近傍 - 空のビンを空間近傍の平均値で埋めます。
  • 時空間近傍 - 空のビンを時空間近傍の平均値で埋めます。
  • 時系列トレンド - 空のビンを内挿した一変量スプライン アルゴリズムを使用して埋めます。

注意:

サマリー フィールド レコードに 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時空間キューブでは、指定した時間ステップ間隔に基づいて時間的にフィーチャが集約されます。 たとえば、データは毎日収集されており、毎週の時間ステップ間隔を使用してキューブを作成するとします。
  • NO_TEMPORAL_AGGREGATION入力フィーチャの既存の時間的構造を使用して時空間キューブを作成します。 たとえば、年次データが存在するときに、毎年の時間ステップ間隔を使用してキューブを作成します。 これがデフォルトです。
Boolean
time_field

データセット内の各行のタイム スタンプが格納されるフィールド。 このフィールドは date タイプである必要があります。

Field
time_step_interval
(オプション)

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

時間集約を適用しない (temporal_aggregation = "NO TEMPORAL_AGGREGATION") 場合、このパラメーターをデータの既存の時間構造に設定します。

時間集約を適用する (temporal_aggregation = "APPLY TEMPORAL_AGGREGATION") 場合、このパラメーターを、作成する時間ステップ間隔に設定します。 同じ時間ステップ間隔内のすべてのフィーチャが集約されます。

Time Unit
time_step_alignment
(オプション)

指定した time_step_interval 値に基づいて、キューブ構造の配列方法を指定します。

  • END_TIME時間ステップは最後の時間イベントに揃えられ、前の時間が集約されます。 これがデフォルトです。
  • START_TIME時間ステップは最初の時間イベントに揃えられ、後の時間が集約されます。
  • REFERENCE_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)] ツールを実行することをお勧めします。

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

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

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

  • ゼロ - 空のビンをゼロで埋めます。
  • 空間近傍 - 空のビンを空間近傍の平均値で埋めます。
  • 時空間近傍 - 空のビンを時空間近傍の平均値で埋めます。
  • 時系列トレンド - 空のビンを内挿した一変量スプライン アルゴリズムを使用して埋めます。

注意:

サマリー フィールド レコードに 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, 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 you 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 that bound each other are considered neighbors
    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())

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック