ラベル | 説明 | データ タイプ |
入力フィーチャ | 時空間キューブに変換する入力ポイント/ポリゴン フィーチャクラス。 | Feature Layer |
出力時空間キューブ | 作成する出力 netCDF データ キューブ。 | File |
ロケーション ID | 各一意の位置を示す ID 番号を含む整数フィールド。 | Field |
時間集約 | データを時間的に集約するかどうかを決定します。
| Boolean |
時間フィールド |
データセット内の各行のタイムスタンプを含むフィールド。 このフィールドは Date タイプである必要があります。 | Field |
時間ステップ間隔 (オプション) | 1 つの時間ステップを表す秒、分、時間、日、週、または年の数。 このパラメーターの有効な入力例として、「1 週間」、「13 日」、「1 か月」などがあります。 [時間集約] がオフに設定された場合、時間的な集約は行われないため、このパラメーターをデータの既存の時間的構造に設定する必要があります。 [時間集約] がオンに設定された場合、時間的な集約が行われるため、このパラメーターを、作成する [時間ステップの間隔] に設定する必要があります。 同じ [時間ステップの間隔] 内のすべてのフィーチャが集約されます。 | Time Unit |
時間ステップの配列 (オプション) | 指定された [時間ステップの間隔] に基づいてキューブ構造の実行方法が決定されます。
| String |
基準時間 (オプション) | 時間ステップの間隔の配列に使用する日付/時間。 たとえば、毎週 (月曜から日曜まで) のデータをビンに入れる場合、基準時間を日曜の深夜に設定することによって、日曜と月曜の間の深夜でビンが切り替わるようにすることができます | Date |
変数 (オプション) | 時空間キューブに取り込む属性値を含む数値フィールド。 使用可能な入力タイプは次のとおりです。
注意:変数レコードのいずれかに 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 |
サマリー
パネル データまたは観測データ (地理情報は変化しないが、属性が時間経過とともに変化する定義済みの位置) を取得し、時空間ビンを作成してそれらのデータを netCDF データ形式に構造化します。 すべての位置に対して、変数または集計フィールドの傾向が評価されます。
[定義済みの位置から時空間キューブを作成 (Create Space Time Cube From Defined Locations)] の詳細
図
使用法
このツールは、パネル データまたは観測データ (属性が時間経過とともに変化するが、地理情報は変化しない定義済みの位置) を [入力フィーチャ] として取得し、時空間ビンに構造化します。 作成されるデータ構造は、空間を表す x ディメンションと y ディメンションおよび時間を表す t ディメンションを持つ時空間ビンで構成された 3 次元キューブと考えることができます。
ビンごとに空間 (入力がポイントの場合は X, Y 位置、入力がポリゴン位置の場合は一連の固定された頂点) と時間 (t) の固定された位置があります。 同じ定義済みの位置エリア (X, Y または頂点) をカバーしているビンは、同じ [ロケーション ID] を共有します。 同じ期間を含むビンは、同じ時間ステップ ID を共有します。
時空間キューブ内のビンは、LOCATION_ID、time_step_ID、COUNT 値、および任意の [変数] またはキューブの作成時に集計された [集計フィールド] の値を保持します。 物理的に同じ位置に関連付けられているビンは、同じロケーション 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 の数を増減できます。 処理速度の増加は、大きい時空間キューブを作成したときに最も顕著です。
パラメーター
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 |
| 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 に基づいてキューブ構造の実行方法が決定されます。
| String |
reference_time (オプション) | 時間ステップの間隔の配列に使用する日付/時間。 たとえば、毎週 (月曜から日曜まで) のデータをビンに入れる場合、基準時間を日曜の深夜に設定することによって、日曜と月曜の間の深夜でビンが切り替わるようにすることができます | Date |
variables [[Field, Fill Empty Bins with],...] (オプション) | 時空間キューブに取り込む属性値を含む数値フィールド。 使用可能な入力タイプは次のとおりです。
注意:変数レコードのいずれかに 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 |
コードのサンプル
次の 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")
次のスタンドアロン 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())