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

サマリー

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

滞在ロケーションの検索ツールの図

使用法

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

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

  • [滞在ロケーションの検索 (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 メートルの距離許容値を使用します。

  • 次の操作を 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.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

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

  • 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 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)