滞在場所の検索 (Find Dwell Locations) (GeoAnalytics Desktop)

サマリー

指定された時間と距離の閾値を使用して、移動中のオブジェクトが停止した場所 (滞在した場所) を検出します。

[滞在場所の検索 (Find Dwell Locations)] ツール
時間対応ポイントと検出された滞在場所。

使用法

  • 入力レイヤーは、特定時点を表す時間対応ポイント フィーチャでなければなりません。

  • 滞在場所は、一定の期間にわたって移動がほとんどないか、まったくない一連の観測点として定義されます。 利用分野によっては、滞在地やアイドル状態検出と呼ばれることもあります。

  • [滞在場所の検索 (Find Dwell Locations)] ツールで使用される用語を次の表に示します。

    用語説明

    滞在場所

    トラッキングが動作を停止した時点を指定された時間パラメーターと距離パラメーターで表すフィーチャ。 これは、このツールから生成される出力結果であり、滞在フィーチャがポイント、凸包、または地理的中心として表されます。

    トラッキング

    時間対応かつ時間のタイプが瞬間を示す一連のフィーチャ。 フィーチャはトラッキング ID フィールドに応じて順番が決定され、時間順に並びます。 たとえば、都市に 10 分ごとにその場所を記録する除雪トラックを配備できます。 車両 ID は、個別のトラッキングを示します。

    観測

    トラッキング上のポイント。

    測地線

    球体上に描画されたライン。 グローブ上に描画された測地線は、地球のジオイドの曲率を表します。

    平面

    平面 (デカルト平面) 上で計測される直線距離です。 ユークリッド距離とも呼ばれます。

    インスタント

    開始時間は指定されているが終了時間は指定されていない、ある特定の時点を指します。

    間隔

    開始時間と終了時間が指定されている期間のことを指します。

  • 結果は、時点を表すポイント フィーチャまたは時間間隔を表すエリア フィーチャになります。 間隔の始点と終点は、滞在に含まれている最初のフィーチャと最後のフィーチャの日時によって求められます。

  • 時間を持たないフィーチャは、解析から除外されます。

  • 滞在場所は、複数のフィーチャを含むトラッキングでのみ検出することができます。

  • 滞在場所を検出するには、時間の値 ([時間許容値] パラメーター) と距離の値 ([距離許容値] パラメーター) の両方を使用します。 最初に、このツールは、一意識別子を使用してフィーチャをトラッキングに割り当てます。 トラッキングの順序は、フィーチャの時間によって決まります。 次に、トラッキング内の最初の観測と次の観測間の距離が計算されます。 時間的に連続した 2 つのポイントが、少なくとも所定の期間、所定の距離内にある場合、フィーチャは滞在の一部であると見なされます。 2 つのフィーチャが滞在の一部であると判断されると、滞在の最初のフィーチャは参照ポイントとして使用され、ツールは、滞在の参照ポイントから指定の距離内にある連続したフィーチャを検索します。 指定距離内のすべてのフィーチャが検索されると、ツールは、滞在フィーチャを収集し、その地理的中心を算出します。 現在の滞在の前後にあるフィーチャが滞在場所の地理的中心から所定の距離内にある場合、それらは滞在に追加されます。 この処理は、トラッキングが終わるまで実行されます。

  • トラッキングを識別するために、1 つ以上のフィールドを選択できます。 トラッキングは、1 つ以上のトラッキング フィールドの一意の組み合わせで表されます。

  • デフォルトでは、測地線による方法を距離計算に使用して、滞在場所が作成されます。 次の場合には、測地線距離を使用することをお勧めします。

    • 国際日付変更線をまたぐトラッキング - 測地線による方法を使用する場合、国際日付変更線をまたぐ入力レイヤーには、国際日付変更線を正しく横断するトラッキングが含まれます。 これがデフォルトです。 入力レイヤーまたは処理空間参照は、国際日付変更線周辺の折り返しをサポートする空間参照に設定される必要があります (たとえば、正積円筒図法などのグローバル投影)。
    • データセットがローカル投影法でない場合 - 入力データがローカル投影法の場合は、平面距離による方法を使用します。 たとえば、1 つの州内の滞在場所を調べる場合に平面による方法を使用します。 入力レイヤーまたは処理空間参照は、データセットに対してローカルの空間参照に設定する必要があります。

  • 出力滞在場所は、4 通りの方法で表すことができます。 それぞれの例を次の表に示します。

    出力タイプ説明

    すべてのフィーチャ

    すべてのフィーチャが返されます。 結果として生成されるフィーチャの時間タイプはインスタントになります。

    滞在に属しているフィーチャは青でレンダリングされます。 滞在に属していないフィーチャはグレーでレンダリングされます。

    この出力タイプでは、カウント統計情報だけが算出されます。 このカウントは、1 つの滞在に属しているフィーチャの数を表します。 滞在以外のフィーチャのカウントは 0 になります。

    滞在場所の検索ツールから返されるすべてのフィーチャ

    滞在フィーチャ

    滞在の一部となっているフィーチャだけが返されます。 結果として生成されるフィーチャの時間タイプはインスタントになります。

    この出力タイプでは、カウント統計情報だけが算出されます。 このカウントは、1 つの滞在に属しているフィーチャの数を表します。

    滞在場所の検索ツールから返される滞在フィーチャ

    地理的中心

    滞在ごとに、距離と時間で滞在の地理的中心を表す 1 つのポイントが返されます。 結果として生成されるフィーチャの時間タイプは間隔になります。

    滞在に含まれているフィーチャの数が常に算出されます。 必要に応じて、このタイプの滞在フィーチャの統計情報を算出できます。 デフォルトでは、統計情報が算出されません。

    滞在場所の検索ツールから返される地理的中心フィーチャ

    凸包

    各滞在が滞在フィーチャの凸包で表されます。 結果として生成されるフィーチャの時間タイプは間隔になります。

    滞在に含まれているフィーチャの数が常に算出されます。 必要に応じて、このタイプの滞在フィーチャの統計情報を算出できます。 デフォルトでは、統計情報が算出されません。

    滞在場所の検索ツールから返される凸包フィーチャ

  • 入力レイヤー内のフィールドだけでなく、次のフィールドもすべての出力フィーチャに含まれます。

    フィールド名説明

    count

    滞在に含まれていたフィーチャの数

    dwellid

    該当するフィーチャが属している滞在に一意の ID

    meanx

    滞在を構成している X 座標の平均値

    meany

    滞在を構成している Y 座標の平均値

    meandistance

    滞在場所内の連続するポイント間の平均距離

    date

    出力タイプが滞在フィーチャ、地理的中心、またはすべてのフィーチャの場合に生成される個々のフィーチャの日時

    start_date

    出力タイプが凸包の場合に生成される開始日時

    end_date

    出力タイプが凸包の場合に生成される終了日時

    出力タイプが [すべてのフィーチャ] の場合、滞在に属している結果では、上記のフィールドの値が算出されます。 滞在に属していない結果では、count フィールドに値 0 が返され、date フィールドに入力フィーチャの時間値が返され、それ以外のすべてのフィールドに値 NULL が返されます。

  • トラッキングは次の方法で分割できます。

    • [時間分割] - 入力間の時間に基づきます。時間分割を適用すると、入力データが指定時間よりも大きい場合に、トラッキングが分割されます。たとえば、同じトラッキング識別子を持つフィーチャが 5 つあり、その時間が [01:00, 02:00, 03:30, 06:00, 06:30]、時間分割が 2 時間に設定されている場合、2 時間以上の間隔のあるフィーチャは分割されます。この例では、結果は [01:00, 02:00, 03:30] と [06:00, 06:30] となります。03:30 と 6:00 は 2 時間以上開いているからです。
    • [時間境界分割] - 定義された時間間隔に基づきます。時間境界分割を適用すると、定義済み間隔で追跡が行われます。たとえば、時間の境界を 1 日に設定し、1990 年 1 月 1 日午前 9 時から開始した場合、各トラッキングは毎日午前 9 時に切詰められます。この分割を使用すると、解析のためのトラッキングを短縮できるため、計算時間を高速化できます。時間の境界の繰り返しによる分割が解析で有効な場合は、ビッグ データ処理にこの方法を使用することをお勧めします。
    • [距離分割] - 入力間の距離に基づきます。距離分割を適用すると、入力データが指定距離よりも大きい場合に、トラッキングが分割されます。たとえば、距離分割を 5 キロメートルに設定した場合、5 キロメートル以上の連続したフィーチャは異なるトラッキングに分けられます。
    • [分割式] - Arcade 式に基づいています。分割式を適用すると、値、ジオメトリ、または時間値に基づいてトラッキングが分割されます。たとえば、フィールド値がトラッキング内の前の値の 2 倍よりも大きい場合にトラッキングを分割できます。このためには、たとえば、フィールド名を WindSpeed にして、var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1] という式を使用します。前の値 (speed[0]) が現在の値の 2 倍よりも小さくなると、トラッキングが分割されます。

  • 0、1、2、3、または 4 つの分割オプションを同時に適用できます。次に示されたすべての例で、間隔分割が使用されています。6 時間の時間分割、1 日の時間境界、16 キロメートルの距離分割を適用することを前提とした場合の結果は、次のようになります。

    時間と距離の変化による分割の 5 つの入力ポイント (緑色) 例
    時間と距離の変化による分割の 5 つの入力ポイント (黄色) 例が表示されます。

    分割オプション説明

    時間と位置を含む 6 つの入力ポイント

    同じ識別子の付いた入力ポイント。ポイント間の距離は点線の上にマークされ、各ポイント測定の時間はポイントの下にマークされます。タイムラインに 4 つの分割があります。赤色の分割は、午前 12 時から始まる 1 日の時間境界の分割を表します。青色の分割は、2 つのポイント間の距離が 16 キロメートルを超える距離分割を表します。紫色の分割は、2 つの連続したポイント間の時間距離が 6 時間を超える時間分割を表します。

    時間分割なし、距離分割なしの例

    時間分割なし、距離分割なしの例。

    6 時間の時間分割を伴う例

    6 時間の時間分割を伴う例。2 時間以上離れているフィーチャは、別々のトラッキングに分割されます。

    1 日の時間境界を伴う例

    午前 12 時から始まる、1 日の時間境界を伴う例。指定された時間 (ここでは午前 12 時) から始まる 1 日の間隔に対して、それぞれトラッキングが作成されます。

    16 キロメートルの距離分割を伴う例

    16 キロメートルの距離分割を伴う例。16 キロメートル以上離れているフィーチャ (午前 5 時のフィーチャと午前 6 時のフィーチャ) は、別々のトラッキングに分割されます。

    6 時間の時間分割と、午前 12 時から始まる 1 日の時間境界の分割を伴う例

    6 時間の時間分割と、午前 12 時から始まる 1 日の時間境界を伴う例。6 時間以上離れているフィーチャ、または午前 12 時の時間分割と交差するフィーチャは、 別々のトラッキングに分割されます。

    6 時間の時間分割と 16 キロメートルの距離分割を伴う例

    6 時間の時間分割と 16 キロメートルの距離分割を伴う例。6 時間以上離れているフィーチャ (午前 6 時のフィーチャと午後 7 時のフィーチャ) または 16 km 以上離れているフィーチャは、別々のトラッキングに分割されます。

    16 キロメートルの距離分割と、午前 12 時から始まる 1 日の時間境界を伴う例

    16 キロメートルの距離分割と、午前 12 時から始まる 1 日の時間境界を伴う例 16 キロメートル以上離れているフィーチャ、または午前 12 時の時間分割と交差するフィーチャは、別々のトラッキングに分割されます。

    16 キロメートルの距離分割、6 時間の時間分割、および午前 12 時から始まる 1 日の時間境界を伴う例

    16 キロメートルの距離分割、6 時間の時間分割、および午前 12 時から始まる 1 日の時間境界を伴う例。16 キロメートル以上離れているフィーチャ、6 時間以上離れているフィーチャ、または午前 12 時の時間分割と交差するフィーチャは、別々のトラッキングに分割されます。

  • 凸包を算出する際に、滞在場所がまったく変化していない場合 (1 つの一意の場所) または 2 つの一意のポイントで構成されている場合は、解析で使用されている空間参照の許容値に基づく小さい値が幅、高さ、直径として使用され、凸包の代わりに出力ポリゴンが生成されます。 このポリゴンは視覚化のために使用され、滞在場所の空間範囲を表していません。 これらのケースの例を次の表に示します。

    入力ケース説明

    一致 (1 つの空間的に一意のポイント)

    入力フィーチャが重ねて表示されている場合 (一致)、結果として生成される凸包は無効なポリゴンになります。

    この例では、一致する入力フィーチャは、黄色のポリゴンの中心にある赤色の点で表されています。 黄色のポリゴンは、一致するポイントの凸包の出力結果を表しています。 青色のポリゴンは、1 つの滞在場所に一致しない 4 つのポイントがある場合に、実際の凸包がどのように表示されるかを示しています。

    凸包を出力する場合に返される一致フィーチャ

    同一線 (2 つの空間的に一意のポイント)

    入力フィーチャが 1 つのライン上にある場合 (2 つの空間的に一意のポイントでよく見られるケース)、結果として生成される凸包は無効なポリゴンになります。

    この例では、同一線上のポイントは、黄色のポリゴン内の赤色の点で表されています。 黄色のポリゴンは、同一線上のポイントの凸包の出力結果を表しています。

    凸包を出力する場合に返される同一線上のフィーチャ

  • 滞在場所を検出するパラメーターを選択する場合は、観測点のタイプと検出する滞在場所の縮尺を考慮してください。 移動データから滞在場所を検出できるようにパラメーターを変更する方法の例を次に示します。

    • 船舶フィーチャに vesselID フィールドと tripID フィールドがある。
      • 個別のルートに沿って滞在場所を検出する場合は、vesselID フィールドと tripID フィールドを識別子として使用します。
      • 船舶が 1 時間以上 1 海里以内に停泊していた場所を検出する場合は、1 時間の時間許容値と 1 海里の距離許容値を使用します。
    • 動物トラッキングに animalID フィールドがある。
      • 特定の動物の滞在場所を比較する場合は、animalID フィールドを識別子として使用します。
      • 動物の行動範囲を特定する場合は、3 日の時間許容値と 10 マイルの距離許容値を使用して、対象となる動物生息環境を検出します。
      • 対象地域が小規模な場合は、2 時間の時間許容値と 100 メートルの距離許容値を使用します。

  • 次の操作を 1 つ以上実行すると、[滞在場所の検索 (Find Dwell Locations)] ツールのパフォーマンスを上げることができます。

    • 対象データのみが解析されるように、範囲環境を設定します。
    • 結果を [滞在フィーチャ] 値または [地理的中心] 値として出力します。
    • [トラッキング フィールド] の入力を追加して、できるだけ多くのトラッキングに分割します。
    • 測地線の代わりに平面による方法を距離計算に使用します。
    • [時間分割][時間境界の分割]、および [距離分割] パラメーターを使用して、トラッキングを分割します。 [時間境界の分割] は、パフォーマンスが最も向上します。
    • 解析が実行されている場所に対してローカルなデータを使用します。

  • ジオプロセシング ツールは、Spark を活用しています。解析は、複数のコアを並列に使用して、デスクトップ コンピューター上で実行されます。解析の実行方法の詳細については、「GeoAnalytics Desktop ツールに関する考慮事項」をご参照ください。

  • GeoAnalytics Desktop ツールを実行する場合、解析はデスクトップ コンピューター上で実行されます。最適なパフォーマンスを実現するには、データがデスクトップ上で使用可能である必要があります。ホスト フィーチャ レイヤーを使用している場合は、ArcGIS GeoAnalytics Server を使用することをお勧めします。データがローカルに存在していない場合、ツールの実行時間が長くなります。ArcGIS GeoAnalytics Server を使用して分析を行うには、GeoAnalytics Toolsをご参照ください。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

滞在場所の検出元になるポイント トラッキング。 特定時点を表すフィーチャを含む時間対応レイヤーを入力する必要があります。

Feature Layer
出力データセット

結果として生成された滞在場所を含む出力フィーチャクラス。

Feature Class
トラック フィールド

一意のトラッキングを識別するために使用される 1 つ以上のフィールド。

Field
距離計算の方法

滞在フィーチャ間の距離を算出する方法を指定します。

  • 測地線空間参照が画面移動可能な場合は、必要に応じてトラッキングが国際日付変更線をまたぎます。 空間参照が画面移動可能ではない場合、トラッキングは座標系の範囲に制限され、折り返すことはできません。
  • 平面平面距離が使用されます。
String
距離許容値

1 つの滞在場所で考慮されるポイント間の最大距離。

Linear Unit
時間許容値

1 つの滞在場所で考慮される最小期間。

滞在場所を検出する場合には、時間と距離の両方が考慮されます。 距離は、[距離許容値] パラメーターで指定します。

Time Unit
出力タイプ

滞在場所の出力方法を指定します。

  • 滞在フィーチャ滞在の一部となっている入力ポイント フィーチャがすべて返されます。
  • 地理的中心それぞれの滞在グループの地理的中心を表すポイントが返されます。 これがデフォルトです。
  • 凸包それぞれの滞在グループの凸包を表すポリゴンが返されます。
  • すべてのフィーチャすべての入力ポイント フィーチャが返されます。
String
要約統計量
(オプション)

指定されたフィールドに関して計算される統計情報。

  • [個数] - NULL 値でない値の数。 数値フィールドまたは文字列に使用できます。 [null, 0, 2] の個数は 2 です。
  • [合計] - フィールド内の数値の合計。 [null, null, 3] の合計は 3 です。
  • [平均] - 数値の平均。 [0, 2, null] の平均は 1 です。
  • [最小] - 数値フィールドの最小値。 [0, 2, null] の最小は 0 です。
  • [最大] - 数値フィールドの最大値。 [0, 2, null] の最大値は 2 です。
  • [標準偏差] - 数値フィールドの標準偏差。 [1] の標準偏差は null です。 [null, 1,1,1] の標準偏差は null です。
  • [分散] - トラッキング内の数値フィールドの分散。 [1] の分散は null です。 [null, 1, 1, 1] の分散は null です。
  • [範囲] - 数値フィールドの範囲。 これは、最大値から最小値を減算して計算されます。 [0, null, 1] の範囲は 1 です。 [null, 4] の範囲は 0 です。
  • [任意] - 文字列型のフィールドのサンプル文字列。
  • [最初] - トラッキング内の指定フィールドの最初の値。
  • [最後] - トラッキング内の指定フィールドの最後の値。

Value Table
時間境界の分割
(オプション)

入力データを解析用に分割する期間。 時間境界により、指定期間内の値を解析できます。 たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラッキングは 1 日の開始時ごとに分割されます。

Time Unit
時間境界の基準
(オプション)

入力データを解析用に分割する際に使用される基準時間。 時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。 基準時間を指定しないと、1970 年 1 月 1 日が使用されます。

Date

arcpy.gapro.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

滞在フィーチャ間の距離を算出する方法を指定します。

  • GEODESIC空間参照が画面移動可能な場合は、必要に応じてトラッキングが国際日付変更線をまたぎます。 空間参照が画面移動可能ではない場合、トラッキングは座標系の範囲に制限され、折り返すことはできません。
  • PLANAR平面距離が使用されます。
String
distance_tolerance

1 つの滞在場所で考慮されるポイント間の最大距離。

Linear Unit
time_tolerance

1 つの滞在場所で考慮される最小期間。

滞在場所を検出する場合には、時間と距離の両方が考慮されます。 距離は、[距離許容値] パラメーターで指定します。

Time Unit
output_type

滞在場所の出力方法を指定します。

  • DWELL_FEATURES滞在の一部となっている入力ポイント フィーチャがすべて返されます。
  • DWELL_MEAN_CENTERSそれぞれの滞在グループの地理的中心を表すポイントが返されます。 これがデフォルトです。
  • DWELL_CONVEX_HULLSそれぞれの滞在グループの凸包を表すポリゴンが返されます。
  • ALL_FEATURESすべての入力ポイント フィーチャが返されます。
String
summary_statistics
[summary_statistics,...]
(オプション)

指定されたフィールドに関して計算される統計情報。

  • COUNT - NULL 値でない値の数。 数値フィールドまたは文字列に使用できます。 [null, 0, 2] の個数は 2 です。
  • SUM - フィールド内の数値の合計。 [null, null, 3] の合計は 3 です。
  • MEAN - 数値の平均。 [0,2, null] の平均は 1 です。
  • MIN - 数値フィールドの最小値。 [0, 2, null] の最小は 0 です。
  • MAX - 数値フィールドの最大値。 [0, 2, null] の最大値は 2 です。
  • STDDEV - 数値フィールドの標準偏差。 [1] の標準偏差は null です。 [null, 1,1,1] の標準偏差は null です。
  • VAR - トラッキング内の数値フィールドの分散。 [1] の分散は null です。 [null, 1,1,1] の分散は null です。
  • RANGE - 数値フィールドの範囲。 これは、最大値から最小値を減算して計算されます。 [0, null, 1] の範囲は 1 です。 [null, 4] の範囲は 0 です。
  • ANY - 文字列型のフィールドのサンプル文字列。
  • FIRST - トラッキング内の指定フィールドの最初の値。
  • LAST - トラッキング内の指定フィールドの最後の値。

Value Table
time_boundary_split
(オプション)

入力データを解析用に分割する期間。 時間境界により、指定期間内の値を解析できます。 たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラッキングは 1 日の開始時ごとに分割されます。

Time Unit
time_boundary_reference
(オプション)

入力データを解析用に分割する際に使用される基準時間。 時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。 基準時間を指定しないと、1970 年 1 月 1 日が使用されます。

Date

コードのサンプル

FindDwellLocations の例 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトで、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 a .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.MakeFeatureLayer_management(inputLyrx, "MyAtlanticShips_layer")

# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.ApplySymbologyFromLayer_management(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"]]

# Execute Find Dwell Locations
arcpy.gapro.FindDwellLocations(myAtlanticShipsInputLayer, outFeatures, trackIdentifier, 
                               "GEODESIC", distance, timeDuration, 
                               outputType, statistics)

ライセンス情報

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

関連トピック