ラベル | 説明 | データ タイプ |
入力フィーチャ | 滞在ロケーションが検出されるポイント トラック。 特定時点を表すフィーチャを含む時間対応レイヤーを入力する必要があります。 | Feature Layer |
出力データセット | 結果として生成された滞在ロケーションを含む出力フィーチャクラス。 | Feature Class |
トラック フィールド | 一意のトラッキングを識別するために使用される 1 つ以上のフィールド。 | Field |
距離計算の方法 | 滞在フィーチャ間の距離を算出する方法を指定します。
| String |
距離許容値 | 1 つの滞在ロケーションで考慮されるポイント間の最大距離。 | Linear Unit |
時間許容値 | 1 つの滞在ロケーションで考慮される最小期間。 滞在ロケーションを検出する場合には、時間と距離の両方が考慮されます。 距離は、[距離許容値] パラメーターで指定します。 | Time Unit |
出力タイプ | 滞在ロケーションの出力方法を指定します。
| String |
統計サマリー (オプション) | 指定されたフィールドに関して計算される統計情報。
| Value Table |
時間境界の分割 (オプション) |
入力データを解析用に分割する期間。 時間境界により、指定期間内の値を解析できます。 たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラッキングは 1 日の開始時ごとに分割されます。 | Time Unit |
時間境界の基準 (オプション) |
入力データを解析用に分割する際に使用される基準時間。 時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。 基準時間を指定しないと、1970 年 1 月 1 日が使用されます。 | Date |
サマリー
指定された時間と距離の閾値を使用して、移動中のオブジェクトが停止したロケーション (滞在したロケーション) を検出します。
図
使用法
入力レイヤーは、特定時点を表す時間対応ポイント フィーチャでなければなりません。
滞在ロケーションは、一定の期間にわたって移動がほとんどないか、まったくない一連の観測点として定義されます。 利用分野によっては、滞在地やアイドル状態検出と呼ばれることもあります。
[滞在ロケーションの検索 (Find Dwell Locations)] ツールで使用される用語を次の表に示します。
用語 説明 滞在ロケーション
トラッキングが動作を停止した時点を指定された時間パラメーターと距離パラメーターで表すフィーチャ。 これは、このツールから生成される出力結果であり、滞在フィーチャがポイント、凸包、または地理的中心として表されます。
トラッキング
時間対応かつ時間のタイプが瞬間を示す一連のフィーチャ。 フィーチャはトラッキング ID フィールドに応じて順番が決定され、時間順に並びます。 たとえば、都市に 10 分ごとにそのロケーションを記録する除雪トラックを配備できます。 車両 ID は、個別のトラッキングを示します。
観測
トラッキング上のポイント。
測地線
球体上に描画されたライン。 グローブ上に描画された測地線は、地球のジオイドの曲率を表します。
平面
平面 (デカルト平面) 上で計測される直線距離です。 ユークリッド距離とも呼ばれます。
インスタント
開始時間は指定されているが終了時間は指定されていない、ある特定の時点を指します。
間隔
開始時間と終了時間が指定されている期間のことを指します。
結果は、時点を表すポイント フィーチャまたは時間間隔を表すエリア フィーチャになります。 間隔の始点と終点は、滞在に含まれている最初のフィーチャと最後のフィーチャの日時によって求められます。
時間を持たないフィーチャは、解析から除外されます。
滞在ロケーションは、複数のフィーチャを含むトラッキングでのみ検出することができます。
滞在ロケーションを検出するには、時間の値 ([時間許容値] パラメーター) と距離の値 ([距離許容値] パラメーター) の両方を使用します。 最初に、このツールは、一意識別子を使用してフィーチャをトラッキングに割り当てます。 トラッキングの順序は、フィーチャの時間によって決まります。 次に、トラッキング内の最初の観測と次の観測間の距離が計算されます。 時間的に連続した 2 つのポイントが、少なくとも所定の期間、所定の距離内にある場合、フィーチャは滞在の一部であると見なされます。 2 つのフィーチャが滞在の一部であると判断されると、滞在の最初のフィーチャは参照ポイントとして使用され、ツールは、滞在の参照ポイントから指定の距離内にある連続したフィーチャを検索します。 指定距離内のすべてのフィーチャが検索されると、ツールは、滞在フィーチャを収集し、その地理的中心を算出します。 現在の滞在の前後にあるフィーチャが滞在ロケーションの地理的中心から所定の距離内にある場合、それらは滞在に追加されます。 この処理は、トラッキングが終わるまで実行されます。
トラッキングを識別するために、1 つ以上のフィールドを選択できます。 トラッキングは、1 つ以上のトラッキング フィールドの一意の組み合わせで表されます。
デフォルトでは、測地線による方法を距離計算に使用して、滞在ロケーションが作成されます。 次の場合には、測地線距離を使用することをお勧めします。
- 国際日付変更線をまたぐトラッキング - 測地線による方法を使用する場合、国際日付変更線をまたぐ入力レイヤーには、国際日付変更線を正しく横断するトラッキングが含まれます。 これがデフォルトです。 入力レイヤーまたは処理空間参照は、国際日付変更線周辺の折り返しをサポートする空間参照に設定される必要があります (たとえば、正積円筒図法などのグローバル投影)。
- データセットがローカル投影法でない場合 - 入力データがローカル投影法の場合は、平面距離による方法を使用します。 たとえば、1 つの州内の滞在ロケーションを調べる場合に平面による方法を使用します。 入力レイヤーまたは処理空間参照は、データセットに対してローカルの空間参照に設定する必要があります。
出力滞在ロケーションは、4 通りの方法で表すことができます。 それぞれの例を次の表に示します。
出力タイプ パラメーターのオプション 説明 例 すべてのフィーチャ
すべてのフィーチャが返されます。 結果として生成されるフィーチャの時間タイプはインスタントになります。
滞在に属しているフィーチャは青でレンダリングされます。 滞在に属していないフィーチャはグレーでレンダリングされます。
この出力タイプでは、カウント統計情報だけが算出されます。 このカウントは、1 つの滞在に属しているフィーチャの数を表します。 滞在に属していないフィーチャのカウントは 0 になります。
滞在フィーチャ
滞在の一部となっているフィーチャだけが返されます。 結果として生成されるフィーチャの時間タイプはインスタントになります。
この出力タイプでは、カウント統計情報だけが算出されます。 このカウントは、1 つの滞在に属しているフィーチャの数を表します。
地理的中心
滞在ごとに、距離と時間で滞在の地理的中心を表す 1 つのポイントが返されます。 結果として生成されるフィーチャの時間タイプは間隔になります。
滞在に含まれているフィーチャの数が常に算出されます。 必要に応じて、このタイプの滞在フィーチャの統計情報を算出できます。 デフォルトでは、統計情報が算出されません。
凸包
各滞在が滞在フィーチャの凸包で表されます。 結果として生成されるフィーチャの時間タイプは間隔になります。
滞在に含まれているフィーチャの数が常に算出されます。 必要に応じて、このタイプの滞在フィーチャの統計情報を算出できます。 デフォルトでは、統計情報が算出されません。
入力レイヤー内のフィールドだけでなく、次のフィールドもすべての出力フィーチャに含まれます。
フィールド名 説明 count
滞在に含まれていたフィーチャの数
dwellid
該当するフィーチャが属している滞在に一意の ID
meanx
滞在を構成している X 座標の平均値
meany
滞在を構成している Y 座標の平均値
meandistance
滞在ロケーション内の連続するポイント間の平均距離
dwellduration
滞在ロケーションに含まれる最初の観測と最後の観測の間の期間 (ミリ秒単位)
date
出力タイプが滞在フィーチャ、地理的中心、またはすべてのフィーチャの場合に生成される個々のフィーチャの日時
start_date
出力タイプが凸包の場合に生成される開始日時
end_date
出力タイプが凸包の場合に生成される終了日時
出力タイプが [すべてのフィーチャ] の場合、滞在に属している結果では、上記のフィールドの値が算出されます。 滞在に属していない結果では、count フィールドに値 0 が返され、date フィールドに入力フィーチャの時間値が返され、それ以外のすべてのフィールドに値 NULL が返されます。
[時間境界分割] パラメーターを使用してトラックを分割します。 指定間隔でトラックがセグメント化されます。 たとえば、[時間境界基準] パラメーターを 1 日に設定し、1990 年 1 月 1 日午前 9 時から開始した場合、各トラッキングは毎日午前 9 時に切詰められます。 この分割を使用すると、解析のためのトラッキングを短縮できるため、計算時間を高速化できます。 時間の境界の繰り返しによる分割が解析で有効な場合は、ビッグ データ処理にこの方法を使用することをお勧めします。
凸包を算出する際に、滞在ロケーションがまったく変化していない場合 (1 つの一意のロケーション) または 2 つの一意のポイントで構成されている場合は、解析で使用されている空間参照の許容値に基づく小さい値が幅、高さ、直径として使用され、凸包の代わりに出力ポリゴンが生成されます。 このポリゴンは視覚化のために使用され、滞在ロケーションの空間範囲を表していません。 これらのケースの例を次の表に示します。
入力ケース 説明 例 一致 (1 つの空間的に一意のポイント)
入力フィーチャが重ねて表示されている場合 (一致)、結果として生成される凸包は無効なポリゴンになります。
この例では、一致する入力フィーチャは、黄色のポリゴンの中心にある赤色の点で表されています。 黄色のポリゴンは、一致するポイントの凸包の出力結果を表しています。 青色のポリゴンは、1 つの滞在ロケーションに一致しない 4 つのポイントがある場合に、実際の凸包がどのように表示されるかを示しています。
同一線 (2 つの空間的に一意のポイント)
入力フィーチャが 1 つのライン上にある場合 (2 つの空間的に一意のポイントでよく見られるケース)、結果として生成される凸包は無効なポリゴンになります。
この例では、同一線上のポイントは、黄色のポリゴン内の赤色の点で表されています。 黄色のポリゴンは、同一線上のポイントの凸包の出力結果を表しています。
滞在ロケーションを検出するパラメーターを選択する場合は、観測点のタイプと検出する滞在ロケーションの縮尺を考慮してください。 移動データから滞在ロケーションを検出できるようにパラメーターを変更する方法の例を次に示します。
- 船舶フィーチャに vesselID フィールドと tripID フィールドがある。
- 個別のルートに沿って滞在ロケーションを検出する場合は、vesselID フィールドと tripID フィールドを識別子として使用します。
- 船舶が 1 時間以上 1 海里以内に停泊していたロケーションを検出する場合は、1 時間の時間許容値と 1 海里の距離許容値を使用します。
- 動物トラッキングに animalID フィールドがある。
- 特定の動物の滞在ロケーションを比較する場合は、animalID フィールドを識別子として使用します。
- 動物の行動範囲を特定する場合は、3 日の時間許容値と 10 マイルの距離許容値を使用して、対象となる動物生息環境を検出します。
- 対象地域が小規模な場合は、2 時間の時間許容値と 100 メートルの距離許容値を使用します。
- 船舶フィーチャに vesselID フィールドと tripID フィールドがある。
次の操作を 1 つ以上実行すると、[滞在ロケーションの検索 (Find Dwell Locations)] ツールのパフォーマンスを上げることができます。
- 対象データのみが解析されるように、範囲環境を設定します。
- 結果を [滞在フィーチャ] 値または [地理的中心] 値として出力します。
- [トラッキング フィールド] の入力を追加して、できるだけ多くのトラッキングに分割します。
- 測地線の代わりに平面による方法を距離計算に使用します。
- [時間境界分割] パラメーターを使用してトラックを分割します。
- 解析が実行されているロケーションに対してローカルなデータを使用します。
ジオプロセシング ツールは、Spark を活用しています。 解析は、デスクトップ コンピューターで複数のコアを並列に使用して行われます。 解析の実行の詳細については、「GeoAnalytics Desktop ツールの考慮事項」をご参照ください。
GeoAnalytics Desktop ツールを実行する際、解析はデスクトップ コンピューターで行われます。 最適なパフォーマンスを得るために、データがデスクトップで利用できる必要があります。 ホスト フィーチャ レイヤーを使用している場合は、ArcGIS GeoAnalytics Server を使用することをお勧めします。 データがローカルではない場合は、ツールの実行時間は長くなります。 ArcGIS GeoAnalytics Server を使用して解析を実行する方法については、GeoAnalytics Tools をご参照ください。
パラメーター
arcpy.geoanalytics.FindDwellLocations(input_features, output, track_fields, distance_method, distance_tolerance, time_tolerance, output_type, {summary_statistics}, {time_boundary_split}, {time_boundary_reference})
名前 | 説明 | データ タイプ |
input_features | 滞在ロケーションが検出されるポイント トラック。 特定時点を表すフィーチャを含む時間対応レイヤーを入力する必要があります。 | Feature Layer |
output | 結果として生成された滞在ロケーションを含む出力フィーチャクラス。 | Feature Class |
track_fields [track_fields,...] | 一意のトラッキングを識別するために使用される 1 つ以上のフィールド。 | Field |
distance_method | 滞在フィーチャ間の距離を算出する方法を指定します。
| String |
distance_tolerance | 1 つの滞在ロケーションで考慮されるポイント間の最大距離。 | Linear Unit |
time_tolerance | 1 つの滞在ロケーションで考慮される最小期間。 滞在ロケーションを検出する場合には、時間と距離の両方が考慮されます。 距離は、[距離許容値] パラメーターで指定します。 | Time Unit |
output_type | 滞在ロケーションの出力方法を指定します。
| String |
summary_statistics [summary_statistics,...] (オプション) | 指定されたフィールドに関して計算される統計情報。
| Value Table |
time_boundary_split (オプション) |
入力データを解析用に分割する期間。 時間境界により、指定期間内の値を解析できます。 たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラッキングは 1 日の開始時ごとに分割されます。 | Time Unit |
time_boundary_reference (オプション) |
入力データを解析用に分割する際に使用される基準時間。 時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。 基準時間を指定しないと、1970 年 1 月 1 日が使用されます。 | Date |
コードのサンプル
次のスタンドアロン スクリプトで、FindDwellLocations 関数を使用する方法を示します。
# Name: FindDwellLocations.py
# Description: Find the mean centers representing locations where ships have
# stayed within 1 mile across 4 hours of travel.
# Requirements: ArcGIS GeoAnalytics Desktop tools
# Import system modules
import arcpy
# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\MyAtlanticShips.lyrx'
# MakeFeatureLayer converts the .lyrx to features
myAtlanticShipsInputLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "MyAtlanticShips_layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(myAtlanticShipsInputLayer, inputLyrx)
# Set local variables
outFeatures = "c:/mydata/OutputDatasets/AtlanticShips_DwellLocations.shp"
trackIdentifier = "SHIPID"
distance = "1 Miles"
timeDuration = "4 Hours"
outputType = "MEAN_CENTERS"
statistics = [["SPEED", "MEAN"]]
# Run Find Dwell Locations
arcpy.gapro.FindDwellLocations(myAtlanticShipsInputLayer, outFeatures, trackIdentifier,
"GEODESIC", distance, timeDuration,
outputType, statistics)