概要
時空間ビンにポイントのセットを集めることで、netCDF データ構造にポイントを集約します。各ビンで、ポイントが計算され、指定された属性が集約されます。すべてのビンの位置に対して、ポイント数の傾向と集計フィールドの値が評価されます。
ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points) の詳細
図
使用法
このツールは、入力ポイント フィーチャ を時空間ビンに集約します。作成されるデータ構造は、空間を表す x ディメンションと y ディメンションおよび時間を表す t ディメンションを持つ時空間ビンで構成された 3 次元キューブと考えることができます。
ビンごとに、空間 (x,y) と時間 (t) の固定された位置があります。同じ (x,y) エリアをカバーするビンは、同じロケーション ID を共有します。同じ期間を含むビンは、同じ時間ステップ ID を共有します。ポイント データが矩形でなくてもキューブは必ず矩形であるため、すべての時間ステップに対してゼロのポイント数を持つ場所もあります。大多数の分析では、データがある位置、つまり、少なくとも 1 つの時間ステップの間に少なくとも 1 つのポイント数が 1 より大きい位置のみが分析に含まれます。
時空間キューブ内のビンは、LOCATION_ID、time_step_ID、COUNT 値、およびキューブの作成時に集計された [集計フィールド] の値を保持します。物理的に同じ位置に関連付けられているビンは、同じロケーション ID を共有し、共に時系列を示します。同じ時間ステップ間隔に関連付けられているビンは、同じ時間ステップ ID を共有し、共にタイム スライスを構成します。各ビンのカウント値は、関連付けられた時間ステップ間隔中に、関連付けられた場所で発生したポイント数を反映します。
入力フィーチャ は、犯罪や火事のイベント、病気のインシデント、顧客の売上データ、交通事故などのポイントである必要があります。各ポイントには日付が関連付けられている必要があります。イベントのタイムスタンプが格納されるフィールドのタイプは、DATE である必要があります。このツールでは、60 個以上のポイントとさまざまなタイムスタンプが必要です。指定したパラメーターによってキューブ内に 20 億個以上のビンが生成されると、このツールは失敗します。
このツールには、距離を正確に測定するために投影データが必要です。
このツールの出力は、入力ポイントの netCDF 表現と、キューブの特性を要約するメッセージです。メッセージは [結果] ウィンドウに書き込まれます。作成された netCDF ファイルは、[時空間ホット スポット分析 (Emerging Hot Spot Analysis)] ツールまたは [ローカル外れ値分析 (Local Outlier Analysis)] ツールへの入力として使用できます。キューブのコンテンツを表示できるようにする手法については、「時空間キューブの視覚化」をご参照ください。
[時間フィールド] パラメーターで Date タイプのフィールドを選択します。このフィールドには、各ポイント フィーチャと関連付けられたタイムスタンプが含まれます。
[時間ステップの間隔] は、集約されるポイントを時間全体で分割する方法を定義します。たとえば、1 日、1 週、1 年などの間隔を使用してポイントを集約するように指定できます。時間ステップの間隔は常に固定された期間であり、ツールでは 10 個以上の時間ステップが必要です。[時間ステップの間隔] の値を指定しない場合、ツールは自動的にこの値を計算します。デフォルトの時間ステップ間隔の計算方法の詳細については、「ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points) の詳細」をご参照ください。有効な時間ステップ間隔の単位は、年、月、日、時、分、秒です。
[時間ステップの間隔] は、整数値と単位値として入力します。時間ステップの間隔の入力例としては、「1 週」、「2 週」、「13 日」、「1 月」などがあります。
時空間キューブを作成できない場合、ツールは 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)] の詳細」をご参照ください。
[基準時間] には、日時の値または日付のみの値を指定できますが、時間のみの値を指定することはできません。必要な形式は、コンピューターの地域の時間設定によって決まります。
フィッシュネットまたは六角形の [集約形状タイプ] を選択できます。一般的に使用される集約形状はフィッシュネット グリッドですが、特定の解析では、六角形のオプションの方が適している場合があります。
[距離間隔] には、時空間ビンの規模を指定します。ビンは、ポイント データの集約に使用されます。たとえば、各フィッシュネット ビンを 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 値のセットが異なる場合も、各集計フィールドに対して別々のキューブを作成することを検討してください。
構文
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})
パラメーター | 説明 | データ タイプ |
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) ファイルである必要があります。 | File |
time_step_interval (オプション) | 1 つの時間ステップを表す秒、分、時間、日、週、または年の数。同じ [時間ステップの間隔] および [距離間隔] 内のすべてのポイントが集約されます ([テンプレート キューブ] を指定した場合、このパラメーターは無視され、[時間ステップの間隔] の値はテンプレート キューブから取得されます)。このパラメーターの有効な入力例として、「1 週間」、「13 日」、「1 年」などがあります。 | Time unit |
time_step_alignment (オプション) | 指定された time_step_interval に基づいて集約方法が決定されます。template_cube を指定した場合、このパラメーターの設定値は time_step_alignment に関連付けられた template_cube によって無効化され、time_step_alignment の template_cube が使用されます。
| 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 値が存在する場合、そのフィーチャは解析から除外されます。解析方法の一部として各ビン内のポイント数を持つ場合、カウント用 (集計フィールドなし) と集計フィールド用のキューブを別々に作成することを検討してください。それぞれの集計フィールドで、NULL 値のセットが異なる場合も、各集計フィールドに対して別々のキューブを作成することを検討してください。 | Value Table |
aggregation_shape_type (オプション) | 入力フィーチャのポイント データが集約されるポリゴン メッシュの形状。
| String |
コードのサンプル
CreateSpaceTimeCube (時空間キューブの作成) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは CreateSpaceTimeCube (時空間キューブの作成) ツールの使用方法を示しています。
arcpy.env.workspace = r"C:\STPM"
arcpy.CreateSpaceTimeCube_stpm("Homicides.shp", "Homicides.nc", "OccDate", "#", "3 Months",
"End time", "#", "3 Miles", "Property MEDIAN SPACETIME; Age STD ZEROS")
CreateSpaceTimeCube (時空間キューブの作成) の例 2 (スタンドアロン Python スクリプト)
次のスタンドアロン 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.CreateSpaceTimeCube_stpm("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.MinimumBoundingGeometry_management("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.EmergingHotSpotAnalysis_stpm("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())
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい