ラベル | 説明 | データ タイプ |
入力フィーチャ | 時空間ビンに集約する入力ポイント フィーチャクラス。 | Feature Layer |
出力時空間キューブ | 入力フィーチャ ポイント データの個数と要約を格納するために作成する出力 netCDF データ キューブ。 | File |
時間フィールド |
ポイントごとの日時 (タイムスタンプ) が格納されているフィールド。 このフィールドは Date タイプである必要があります。 | Field |
テンプレート キューブ (オプション) | [出力時空間キューブ] の解析範囲、ビン ディメンション、およびビン配列の定義に使用する基準時空間キューブ。 [時間ステップの間隔]、[距離間隔]、および [基準時間] の情報も、テンプレート キューブから取得されます。 このテンプレート キューブは、このツールを使用して作成された netCDF (.nc) ファイルである必要があります。 [定義済みの位置] への集約に使用する時空間キューブは [テンプレート キューブ] として使用できません。 | File |
時間ステップ間隔 (オプション) | 1 つの時間ステップを表す秒、分、時間、日、週、または年の数。 同じ [時間ステップの間隔] および [距離間隔] 内のすべてのポイントが集約されます。 ([テンプレート キューブ] を指定した場合、このパラメーターは無視され、[時間ステップの間隔] の値はテンプレート キューブから取得されます。) | Time Unit |
時間ステップの配列 (オプション) | 指定された [時間ステップの間隔] に基づいて集約方法が決定されます。 [テンプレート キューブ] を指定した場合、このパラメーターの設定値は [テンプレート キューブ] に関連付けられた [時間ステップの配置] によって無効化され、[テンプレート キューブ] の [時間ステップの配置] が使用されます。
| String |
基準時間 (オプション) | 時間ステップの間隔の配列に使用する日付/時間。 たとえば、毎週 (月曜から日曜まで) のデータをビンに入れる場合、基準時間を日曜の深夜に設定することによって、日曜と月曜の間の深夜でビンが切り替わるようにすることができます ([テンプレート キューブ] を指定した場合、このパラメーターは無効になり、[基準時間] は [テンプレート キューブ] に基づきます)。 | Date |
距離間隔 (オプション) | [入力フィーチャ] の集約に使用するビンのサイズ。 同じ [距離間隔] および [時間ステップの間隔] 内のすべてのポイントが集約されます。 六角形グリッドに集約している場合、この距離は、六角形ポリゴンを構築するための高さとして使用されます ([テンプレート キューブ] を指定した場合、このパラメーターは無効になり、距離間隔の値は [テンプレート キューブ] に基づきます)。 | Linear Unit |
サマリー フィールド | 時空間キューブに集約するときに、指定した統計の計算に使用する属性値を含む数値フィールド。 複数の統計とフィールドの組み合わせを指定できます。 指定したいずれかのフィールドに NULL 値が存在する場合、そのフィーチャは出力キューブから削除されます。 入力フィーチャに NULL 値が存在する場合は、時空間キューブを作成する前に [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。 使用可能な統計のタイプは次のとおりです。
使用可能な入力タイプは次のとおりです。
注意:サマリー フィールド レコードに NULL 値が存在する場合、そのフィーチャは出力キューブから除外されます。 [入力フィーチャ] に NULL 値が存在する場合は、まず [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。 [欠損値の補完 (Fill Missing Values)] ツールの実行後にも NULL 値が存在し、解析方法の一環として各ビン内のポイント数を設定する場合、カウント用 (サマリー フィールドなし) とサマリー フィールド用に別々のキューブを作成することを検討してください。 それぞれのサマリー フィールドで、NULL 値のセットが異なる場合も、各サマリー フィールドに対して別々のキューブを作成することを検討してください。 | Value Table |
集約形状タイプ (オプション) | 入力フィーチャのポイント データを集約するポリゴン メッシュの形状。
| String |
定義済みのポリゴン位置 (オプション) | 入力ポイント データを集約するポリゴン フィーチャ。 これらの位置は郡の境界、警察の巡回区域、販売テリトリーなどを表すことができます。 | Feature Layer |
ロケーション ID (オプション) | 各一意の位置を示す ID 番号を含むフィールド。 | Field |
サマリー
時空間ビンにポイントのセットを集めることで、netCDF データ構造にポイントを集約します。 各ビンで、ポイントが計算され、指定された属性が集約されます。 すべてのビンの位置に対して、ポイント数の傾向とサマリー フィールドの値が評価されます。
図
使用法
このツールは、入力ポイント フィーチャを時空間ビンに集約します。 作成されるデータ構造は、空間を表す x ディメンションと y ディメンションおよび時間を表す t ディメンションを持つ時空間ビンで構成された 3 次元キューブと考えることができます。
ビンごとに、空間 (x,y) と時間 (t) の固定された位置があります。 同じ (x,y) エリアをカバーするビンは、同じロケーション ID を共有します。 同じ期間を含むビンは、同じ時間ステップ ID を共有します。
時空間キューブ内のビンは、LOCATION_ID、time_step_ID、COUNT 値、およびキューブの作成時に集計された任意の [サマリー フィールド] の値を保持します。 物理的に同じ位置に関連付けられているビンは、同じロケーション ID を共有し、共に時系列を示します。 同じ時間ステップ間隔に関連付けられているビンは、同じ時間ステップ ID を共有し、共にタイム スライスを構成します。 各ビンのカウント値は、関連付けられた時間ステップ間隔中に、関連付けられた場所で発生したポイント数を反映します。
[入力フィーチャ] は、犯罪や火災、病気のインシデント、顧客の売上データ、交通事故などのポイントである必要があります。 各ポイントには日付が関連付けられている必要があります。 イベントのタイムスタンプが格納されるフィールドのタイプは、DATE である必要があります。 このツールでは、60 個以上のポイントとさまざまなタイムスタンプが必要です。 指定したパラメーターによってキューブ内に 20 億個以上のビンが生成されると、このツールは失敗します。
このツールで距離を正確に測定するには、投影データが必要です。
このツールから生成される出力の内容は、入力ポイントの netCDF 表現と、キューブの特性を要約するメッセージです。 メッセージは、ツールの実行中に [ジオプロセシング] ウィンドウの下部に書き込まれます。 このメッセージにアクセスするには、進行状況バーにマウス カーソルを合わせるか、ポップアップ ボタン をクリックするか、[ジオプロセシング] ウィンドウのメッセージ セクションを展開します。 ジオプロセシング履歴から、これまでに実行した [ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points)] ツールのメッセージにアクセスすることもできます。 netCDF ファイルは、[時空間ホット スポット分析 (Emerging Hot Spot Analysis)] ツールまたは [ローカル外れ値分析 (Local Outlier Analysis)] ツールなど、他のツールの入力として使用します。 キューブのコンテンツを表示できるようにする手法については、「時空間キューブの視覚化」をご参照ください。
[時間フィールド] パラメーターで Date タイプのフィールドを選択します。 このフィールドには、各ポイント フィーチャに関連付けられているタイムスタンプが含まれる必要があります。
[時間ステップの間隔] は、集約されるポイントを時間全体で分割する方法を定義します。 たとえば、1 日、1 週、1 年などの間隔を使用してポイントを集約するように指定できます。 時間ステップの間隔は常に固定された期間であり、ツールでは 10 個以上の時間ステップが必要です。 [時間ステップの間隔] の値を指定しない場合、ツールは自動的にこの値を計算します。 デフォルトの時間ステップ間隔の計算方法の詳細については、「ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points) の詳細」をご参照ください。 有効な時間ステップの間隔の単位は、年、月、日、時間、分、および秒です。
注意:
[時間ステップの間隔] ドロップダウン リストには多くの時間単位が表示されますが、このツールは年、月、週、日、時間、分、秒だけをサポートしています。
時空間キューブを作成できなかった場合、ツールは 10 個の時間ステップ間隔で指定した入力データを構築できなかった可能性があります。 このツールの実行中にエラー メッセージが表示された場合は、入力ポイントのタイムスタンプを調べて、値の範囲が含まれていることを確認します。 この値の範囲には、ツールで指定できる最小の時間範囲である 10 秒以上の範囲が含まれている必要があります。 10 個の時間ステップ間隔は、Mann-Kendall 統計で必要です。
インシデント データを含む時空間キューブを作成する場合、選択した [時間ステップの間隔] によっては、期間全体にデータがないビンがキューブの最初または最後に作成される可能性があります。 たとえば、[時間ステップの間隔] に 1 月を選択し、データが 1 月間隔で均等に分割されない場合、期間全体にデータがない時間ステップが最初または最後に存在する場合があります。 これにより、時間的偏りのある時間ステップは他の時間ステップよりポイントが大幅に少ないため、結果に偏りが生じて、集約方式の結果が不自然になる可能性があります。 メッセージは、最初または最後の時間ステップに時間的バイアスがあるかどうかを示します。 1 つの解決策は、選択した [時間ステップの間隔] の中でデータが均等に分散するように、データの選択セットを作成することです。
データセットの時間的な分布が等間隔であることは、珍しいことではありません。 たとえば、年次データがすべて各年の 1 月 1 日にある場合や、月次データのタイムスタンプがすべて各月の最初である場合があります。 この種のデータは、よくパネル データと呼ばれます。 パネル データを使用すると、時間的バイアスの計算で非常に高いパーセンテージが示されることがよくあります。 この状況が発生するのは、指定された時間ステップで、各ビンが 1 つの特定の時間単位のみをカバーするためです。 たとえば、1 年の [時間ステップの間隔] を選択し、データが各年の 1 月 1 日にある場合、各ビンは 1 年のうちの 1 日だけをカバーします。 これは、各ビンに適用されるため、まったく問題ありません。 時間的バイアスが問題になるのは、実際のデータの分布ではなく、ビンの作成パラメーターが原因で特定のビンにのみ存在する場合です。 データの分布に基づいて、各ビンの予想される範囲の観点から時間的バイアスを評価することが重要です。
出力レポートの時間的バイアスは、データが存在しない期間のパーセンテージとして算出されます。 たとえば、空のビンの時間的バイアスは 100% です。 期間が 1 か月、[時間ステップの配列] が [終了時間] のビンで、最初の時間ステップが後半の 2 週間のデータのみの場合、最初の時間ステップの時間的バイアスは 50% です。 期間が 1 か月、[時間ステップの配列] が [開始時間] のビンで、最後の時間ステップが前半の 2 週間のデータのみの場合、最後の時間ステップの時間的バイアスは 50% です。
時空間キューブを作成したら、キューブの空間範囲は拡張できません。 時空間キューブの今後の解析で分析範囲を使用する場合 ([時空間ホット スポット分析 (Emerging Hot Spot Analysis)] ツールの [ポリゴン解析マスク] など)、キューブを作成するときに、[ポリゴン解析マスク] が [入力フィーチャ] の範囲を超えないことを確認します。 キューブを作成するときに、[範囲] 環境設定として今後の解析に使用する分析範囲ポリゴンを設定すると、解析の最初に必要なキューブの範囲を確保できます。
レガシー:
[ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points)] ツールで時空間キューブの範囲を作成する方法は、ArcGIS Pro 1.3 および ArcMap 10.5 のリリースで変更されました。この変更の詳細については、「時空間キューブのバイアス調整」をご参照ください。 新しいバイアス調整を使用すると、より適切な結果が得られますが、何らかの理由で以前の範囲でキューブを再作成する必要がある場合は、[範囲] 環境設定を通じて範囲を指定できます。
特に、連続する期間のデータを比較する場合、分析を実行するたびに使用できる [テンプレート キューブ] を作成できます。 同じテンプレート キューブを指定することによって、ビン サイズ、時間ステップ間隔、基準時間、および時間ステップの配列が必ず一定になるようにします。
[テンプレート キューブ] を指定した場合、テンプレート キューブの範囲外にある入力ポイントは、分析から除外されます。 また、入力ポイント フィーチャに関連付けられた空間参照が、テンプレート キューブに関連付けられた空間参照と異なる場合、ツールは、テンプレート キューブに一致するように [入力フィーチャ] を投影してから集約処理を開始します。 テンプレート キューブに関連付けられた空間参照は、出力座標系の設定もオーバーライドします。 また、[テンプレート キューブ] が指定されていると、別の処理範囲を指定した場合でも、テンプレート キューブによって、使用する処理範囲が決定されます。 詳細については、「時空間キューブの作成の詳細」をご参照ください。
[基準時間] には、日時の値または日付のみの値を指定できますが、時間のみの値を指定することはできません。 必要な形式は、コンピューターの地域の時間設定によって決まります。
[集約形状タイプ] パラメーターを使用してポイントを空間的に集約する方法については、いくつかのオプションがあります。 規則的な形状のグリッドに集約する場合は、フィッシュネットまたは六角形の形状のいずれかを選択できます。 一般的に使用される集約形状はフィッシュネット グリッドですが、特定の解析では、六角形のオプションの方が適している場合があります。 解析で有意な境界または位置 (国勢調査区や警察の巡回区域など) が存在する場合は、[定義済みの位置] オプションでそれらを使用して集約することもできます。
注意:
[定義済みの位置] がファイル ジオデータベースに格納され、トゥルー カーブ (頂点の密集ではなく円弧として格納される) を含んでいる場合は、時空間キューブへの格納時にポリゴン形状に歪みが生じます。 [定義済みの位置] がトゥルー カーブを含んでいるかどうかを確認するには、[OGC] の [検証方法] を用いた ジオメトリのチェック ツールを実行します。 選択したオプションが非線形セグメントをサポートしていないことを示すエラー メッセージが表示された場合は、データセット内に存在するトゥルー カーブが、時空間キューブの作成前に、[頂点の挿入方法] が [角度] に指定された [頂点の挿入 (Densify)] ツールを使用して削除され、頂点に置き換えられている可能性があります。
ポイント データが矩形でなくてもグリッド キューブは必ず矩形であるため、すべての時間ステップに対してゼロのポイント数を持つ場所もあります。 多くの分析では、データを持つ場所 (少なくとも 1 つの時間ステップにおいて 1 より大きいポイント数を少なくとも 1 つ持つ) だけが分析に含められます。
-
定義済みの位置に集約するキューブを作成するときは、どの時間ステップにもポイントが存在しない位置であっても、ユーザーが指定したすべての定義済みの位置が含まれます。
[距離間隔] には、時空間ビンの規模を指定します。 ビンは、ポイント データの集約に使用されます。 たとえば、各フィッシュネット ビンを 50 x 50 メートルにしたりできます。 六角形に集約している場合、[距離間隔] は各六角形の高さになり、生成される六角形の幅は、高さの 2 倍を 3 の平方根で除算した値になります。[テンプレート キューブ] が指定されている場合を除いて、キューブの左上隅にあるビンが [入力フィーチャ] の空間範囲の左上隅を中心として配置されます。
- 分析において有意な [距離間隔] を選択する必要があります。 距離間隔を大きくしすぎて、ポイント データの基になるパターンを失ってしまう場合と、距離間隔を小さくしすぎたため、結果としてキューブに充填されるポイント数が 0 になる場合との間のバランスを見つける必要があります。 [距離間隔] の値を指定しない場合は、ツールによって距離間隔が計算されます。 デフォルトの距離間隔の計算方法の詳細については、「ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points) の詳細」をご参照ください。 サポートされる距離間隔の単位は、キロメートル、メートル、マイル、フィートです。
集約されたカウント データとサマリー フィールドの値に対して実行される傾向分析は、Mann-Kendall 統計に基づいています。
このツールで実行できる属性の集約に対する統計演算は、合計、平均、最小、最大、標準偏差、および中央値です。
SPATIAL_NEIGHBORS を使用して空のビンを埋めるときは、2 次近傍 (近傍と、近傍の近傍を含む) の Queens Case Contiguity (エッジおよびノードに基づく隣接) が使用されます。 このオプションを使用して空のビンを埋めるには、最低 4 つの空間近傍が必要です。
SPACE_TIME_NEIGHBORS を使用して空のビンを埋めるときは、2 次近傍 (近傍と、近傍の近傍を含む) の Queens Case Contiguity (エッジおよびノードに基づく隣接) が使用されます。 さらに、空間近傍になったビンには、2 つの時間ステップを往復することで時間近傍が使用されます。 このオプションを使用して空のビンを埋めるには、最低 13 の時空間近傍が必要です。
TEMPORAL_TREND を使用して空のビンを埋める場合は、指定された位置のその他の期間に値を内挿するために、その位置の最初の 2 つの期間と最後の 2 つの期間のビンに値を入力する必要があります。
TEMPORAL_TREND の入力タイプでは、SciPy 内挿パッケージ内にある Interpolated Univariate Spline 手法が使用されます。
サマリー フィールド レコードに NULL 値が存在する場合、そのフィーチャは出力キューブから除外されます。 [入力フィーチャ] に NULL 値が存在する場合は、まず [欠損値の補完 (Fill Missing Values)] ツールを実行することを強くお勧めします。 [欠損値の補完 (Fill Missing Values)] ツールの実行後にも NULL 値が存在し、解析方法の一環として各ビン内のポイント数を設定する場合、カウント用 (サマリー フィールドなし) とサマリー フィールド用に別々のキューブを作成することを検討してください。 それぞれのサマリー フィールドで、NULL 値のセットが異なる場合も、各サマリー フィールドに対して別々のキューブを作成することを検討してください。
このツールには、複数の CPU (またはマルチコア CPU) を使用しているシステムでパフォーマンスが向上するという利点があります。 デフォルトでは、このツールは使用可能なプロセッサの 50% を使用して実行されますが、並列処理ファクター環境を使用して、使用される CPU の数を増減できます。 処理速度の増加は、大きい時空間キューブを作成したときに最も顕著です。
パラメーター
arcpy.stpm.CreateSpaceTimeCube(in_features, output_cube, time_field, {template_cube}, {time_step_interval}, {time_step_alignment}, {reference_time}, {distance_interval}, summary_fields, {aggregation_shape_type}, {defined_polygon_locations}, {location_id})
名前 | 説明 | データ タイプ |
in_features | 時空間ビンに集約する入力ポイント フィーチャクラス。 | Feature Layer |
output_cube | 入力フィーチャ ポイント データの個数と要約を格納するために作成する出力 netCDF データ キューブ。 | File |
time_field |
ポイントごとの日時 (タイムスタンプ) が格納されているフィールド。 このフィールドは Date タイプである必要があります。 | Field |
template_cube (オプション) | output_cube の解析範囲、ビン ディメンション、およびビン配列の定義に使用する基準時空間キューブ。 time_step_interval、distance_interval、および reference_time の値も、テンプレート キューブから取得されます。 このテンプレート キューブは、このツールを使用して作成された netCDF (.nc) ファイルである必要があります。 DEFINED_LOCATIONS への集約に使用する時空間キューブは template_cube として使用できません。 | File |
time_step_interval (オプション) | 1 つの時間ステップを表す秒、分、時間、日、週、または年の数。 同じ time_step_interval および distance_interval 内のすべてのポイントが集約されます。 (template_cube を指定した場合、このパラメーターは無視され、time_step_interval の値はテンプレート キューブから取得されます)。 このパラメーターの有効な入力例として、「1 週間」、「13 日」、「1 か月」などがあります。 | Time Unit |
time_step_alignment (オプション) | 指定された time_step_interval に基づき、集約方法を定義します。 template_cube を指定した場合、このパラメーター設定は time_step_alignment に関連付けられた template_cube によって無効になり、template_cube の time_step_alignment が使用されます。
| String |
reference_time (オプション) | 時間ステップの間隔の配列に使用する日付/時間。 たとえば、毎週 (月曜から日曜まで) のデータをビンに入れる場合、基準時間を日曜の深夜に設定することによって、日曜と月曜の間の深夜でビンが切り替わるようにすることができます (template_cube を指定した場合、このパラメーターは無視され、reference_time は template_cube に基づきます。) | Date |
distance_interval (オプション) | in_features の集約に使用するビンのサイズ。 同じ distance_interval および time_step_interval 内のすべてのポイントが集約されます。 六角形グリッドに集約している場合、この距離は、六角形ポリゴンを構築するための高さとして使用されます (template_cube を指定した場合、このパラメーターは無視され、距離間隔の値は template_cube に基づきます。) | Linear Unit |
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 |
aggregation_shape_type (オプション) | 入力フィーチャのポイント データを集約するポリゴン メッシュの形状。
| String |
defined_polygon_locations (オプション) | 入力ポイント データを集約するポリゴン フィーチャ。 これらの位置は郡の境界、警察の巡回区域、販売テリトリーなどを表すことができます。 | Feature Layer |
location_id (オプション) | 各一意の位置を示す ID 番号を含むフィールド。 | Field |
コードのサンプル
次の Python ウィンドウ スクリプトは、CreateSpaceTimeCube 関数の使用方法を示しています。
arcpy.env.workspace = r"C:\STPM"
arcpy.stpm.CreateSpaceTimeCube("Homicides.shp", "Homicides.nc", "OccDate", "#",
"3 Months", "End time", "#", "3 Miles",
"Property MEDIAN SPACETIME; Age STD ZEROS",
"HEXAGON_GRID")
次のスタンドアロン Python スクリプトは、CreateSpaceTimeCube 関数の使用方法を示しています。
# Create Space Time Cube of homicide incidents in a metropolitan area
# Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"C:\STPM"
try:
# Set the current workspace (to avoid having to specify the full path to the feature
# classes each time)
arcpy.env.workspace = workspace
# Create Space Time Cube of homicide incident data with 3 months and 3 miles settings
# Also aggregate the median of property loss, no date predicted by space-time neighbors
# Also aggregate the standard deviation of the victim's age, fill the no-data with zeros
# Process: Create Space Time Cube By Aggregating Points
cube = arcpy.stpm.CreateSpaceTimeCube("Homicides.shp", "Homicides.nc", "MyDate", "#",
"3 Months", "End_time", "#", "3 Miles",
"Property MEDIAN SPACETIME; Age STD ZEROS",
"HEXAGON_GRID")
# Create a polygon that defines where incidents are possible
# Process: Minimum Bounding Geometry of homicide incident data
arcpy.management.MinimumBoundingGeometry("Homicides.shp", "bounding.shp", "CONVEX_HULL",
"ALL", "#", "NO_MBG_FIELDS")
# Emerging Hot Spot Analysis of homicide incident cube using 5 Miles neighborhood
# distance and 2 neighborhood time step to detect hot spots
# Process: Emerging Hot Spot Analysis
cube = arcpy.stpm.EmergingHotSpotAnalysis("Homicides.nc", "COUNT", "EHS_Homicides.shp",
"5 Miles", 2, "bounding.shp")
except arcpy.ExecuteError:
# If any error occurred when running the tool, print the messages
print(arcpy.GetMessages(2))