概要
指定された時間と距離の閾値を使用して、移動中のオブジェクトが停止した場所 (滞在した場所) を検出します。
図
使用法
このジオプロセシング ツールは ArcGIS Enterprise 10.8 以降で使用できます。
入力レイヤーは、特定時点を表す時間対応ポイント フィーチャでなければなりません。
滞在場所は、一定の期間にわたって移動がほとんどないか、まったくない一連の観測点として定義されます。利用分野によっては、滞在地やアイドル状態検出と呼ばれることもあります。
[滞在場所の検索 (Find Dwell Locations)] ツールで使用される用語を次の表に示します。
用語 説明 滞在場所
トラックが動作を停止した時点を指定された時間パラメーターと距離パラメーターで表すフィーチャ。これは、このツールから生成される出力結果であり、滞在フィーチャがポイント、凸包、または地理的中心として表されます。
トラック
時間対応かつ時間のタイプが瞬間を示す一連のフィーチャ。フィーチャはトラック ID フィールドに応じて順番が決定され、時間順に並びます。たとえば、都市に 10 分ごとにその場所を記録する除雪トラックを配備できます。車両 ID は、個別のトラックを示します。
比較結果
トラック上のポイント。
測地線
球体上に描画されたライン。グローブ上に描画された測地線は、地球のジオイドの曲率を表します。
平面
平面 (デカルト平面) 上で計測される直線距離です。ユークリッド距離とも呼ばれます。
インスタント
開始時間は指定されているが終了時間は指定されていない、ある特定の時点を指します。
間隔
開始時間と終了時間が指定されている期間のことを指します。
結果は、時点を表すポイント フィーチャまたは時間間隔を表すエリア フィーチャになります。間隔の始点と終点は、滞在に含まれている最初のフィーチャと最後のフィーチャの日時によって求められます。
時間を持たないフィーチャは、解析から除外されます。
滞在場所は、複数のフィーチャを含むトラックでのみ検出することができます。
滞在場所を検出するには、時間の値 ([時間許容値]) と距離の値 ([距離許容値]) の両方を使用します。最初に、このツールは、一意識別子を使用してフィーチャをトラックに割り当てます。トラックの順序は、フィーチャの時間によって決まります。次に、トラック内の最初の観測と次の観測間の距離が計算されます。時間的に連続した 2 つのポイントが、少なくとも所定の期間、所定の距離内にある場合、フィーチャは滞在の一部であると見なされます。2 つのフィーチャが滞在の一部であると判断されると、滞在の最初のフィーチャは参照ポイントとして使用され、ツールは、滞在の参照ポイントから指定の距離内にある連続したフィーチャを検索します。指定距離内のすべてのフィーチャが検索されると、ツールは、滞在フィーチャを収集し、その地理的中心を算出します。現在の滞在の前後にあるフィーチャが滞在場所の地理的中心から所定の距離内にある場合、それらは滞在に追加されます。このプロセスは、トラックの終了まで継続されます。
トラックを識別するために、1 つ以上のフィールドを選択できます。トラックは、1 つ以上のトラック フィールドの一意の組み合わせで表されます。
デフォルトでは、測地線による方法を距離計算に使用して、滞在場所が作成されます。次の場合には、測地線距離を使用することをお勧めします。
- 国際日付変更線をまたぐトラック - 測地線による方法を使用する場合、国際日付変更線をまたぐ入力レイヤーには、国際日付変更線を正しく横断するトラックが含まれます。これがデフォルトです。入力レイヤーまたは処理空間参照は、国際日付変更線周辺の折り返しをサポートする空間参照に設定される必要があります (たとえば、正積円筒図法などのグローバル投影)。
- データセットがローカル投影法でない - 入力データがローカル投影法の場合は、平面距離による方法を使用します。たとえば、1 つの州内の滞在場所を調べる場合に平面による方法を使用します。入力レイヤーまたは処理空間参照は、データセットに対してローカルの空間参照に設定する必要があります。
出力滞在場所は、4 通りの方法で表すことができます。それぞれの例を次の表に示します。
出力タイプ 説明 例 すべてのフィーチャ
すべてのフィーチャが返されます。結果として生成されるフィーチャの時間タイプは [インスタント] になります。
滞在に属しているフィーチャは青でレンダリングされます。滞在に属していないフィーチャはグレーでレンダリングされます。
この出力タイプでは、カウント統計情報だけが算出されます。このカウントは、1 つの滞在に属しているフィーチャの数を表します。滞在以外のフィーチャのカウントは 0 になります。
滞在フィーチャ
滞在の一部となっているフィーチャだけが返されます。結果として生成されるフィーチャの時間タイプは [インスタント] になります。
この出力タイプでは、カウント統計情報だけが算出されます。このカウントは、1 つの滞在に属しているフィーチャの数を表します。
地理的中心
滞在ごとに、距離と時間で滞在の地理的中心を表す 1 つのポイントが返されます。結果として生成されるフィーチャの時間タイプは [間隔] になります。
滞在に含まれているフィーチャの数が常に算出されます。必要に応じて、このタイプの滞在フィーチャの統計情報を算出できます。デフォルトでは、統計情報が算出されません。
凸包
各滞在が滞在フィーチャの凸包で表されます。結果として生成されるフィーチャの時間タイプは [間隔] になります。
滞在に含まれているフィーチャの数が常に算出されます。必要に応じて、このタイプの滞在フィーチャの統計情報を算出できます。デフォルトでは、統計情報が算出されません。
入力レイヤー内のフィールドと指定された統計情報のサマリーだけでなく、次のフィールドもすべての出力フィーチャに含まれます。
フィールド名 説明 count
滞在に含まれているフィーチャの数
dwellid
該当するフィーチャが属している滞在に一意の ID
meanx
滞在を構成している X 座標の平均値
meany
滞在を構成している Y 座標の平均値
meandistance
滞在場所内の連続するポイント間の平均距離
instant_datetime
出力タイプが [滞在フィーチャ]、[地理的中心]、または [すべてのフィーチャ] の場合に生成される個々のフィーチャの日時
start_datetime
出力タイプが [凸包] の場合に生成される開始日時
end_datetime
出力タイプが [凸包] の場合に生成される終了日時
出力タイプが [すべてのフィーチャ] の場合、滞在に属している結果では、上記のフィールドの値が算出されます。滞在に属していない結果では、count フィールドに値 0 が返され、instant_datetime フィールドに入力フィーチャの時間値が返され、それ以外のすべてのフィールドに値 null が返されます。
凸包を算出する際に、滞在場所がまったく変化していない場合 (1 つの一意の場所) または 2 つの一意のポイントで構成されている場合は、解析で使用されている空間参照の許容値に基づく小さい値が幅、高さ、直径として使用され、凸包の代わりに出力ポリゴンが生成されます。このポリゴンは視覚化のために使用され、滞在場所の空間範囲を表していません。これらのケースの例を次の表に示します。
入力ケース 説明 例 一致 (1 つの空間的に一意のポイント)
入力フィーチャが重ねて表示されている場合 (一致)、結果として生成される凸包は無効なポリゴンになります。
この例では、一致する入力フィーチャは、黄色のポリゴンの中心にある赤色の点で表されています。黄色のポリゴンは、一致するポイントの凸包の出力結果を表しています。青色のポリゴンは、1 つの滞在場所に一致しない 4 つのポイントがある場合に、実際の凸包がどのように表示されるかを示しています。
同一線 (2 つの空間的に一意のポイント)
入力フィーチャが 1 つのライン上にある場合 (2 つの空間的に一意のポイントでよく見られるケース)、結果として生成される凸包は無効なポリゴンになります。
この例では、同一線上のポイントは、黄色のポリゴン内の赤色の点で表されています。黄色のポリゴンは、同一線上のポイントの凸包の出力結果を表しています。
トラックは次の方法で分割できます。
- [時間分割] - 入力間の時間に基づきます。時間分割を適用すると、入力データが指定時間よりも大きい場合に、トラックが分割されます。たとえば、同じトラック識別子を持つフィーチャが 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 キロメートル以上の連続したフィーチャは異なるトラックに分けられます。
0、1、2、または 3 つの分割オプションを同時に適用できます。6 時間の時間分割、1 日の時間境界、16 キロメートルの距離分割を適用することを前提とした場合の結果は、次のようになります。
分割オプション 詳細 時間と位置を含む 6 つの入力ポイント。
同じ識別子の付いた入力ポイント。ポイント間の距離は点線の上にマークされ、各ポイント測定の時間はポイントの下にマークされます。タイムラインに 4 つの分割があります。赤色の分割は、午前 12 時から始まる 1 日の時間境界の分割を表します。青色の分割は、2 つのポイント間の距離が 16 キロメートルを超える距離分割を表します。紫色の分割は、2 つの連続したポイント間の時間距離が 6 時間を超える時間分割を表します。
時間分割なし、距離分割なしの例。
2 時間の時間分割を伴う例。2 時間以上離れているフィーチャは、別々のトラックに分割されます。
午前 12 時から始まる、1 日の時間境界を伴う例。指定された時間 (ここでは午前 12 時) から始まる 1 日の間隔に対して、それぞれトラックが作成されます。
16 キロメートルの距離分割を伴う例。16 キロメートル以上離れているフィーチャ (午前 5 時のフィーチャと午前 6 時のフィーチャ) は、別々のトラックに分割されます。
6 時間の時間分割と、午前 12 時から始まる 1 日の時間境界を伴う例。6 時間以上離れているフィーチャ、または午前 12 時の時間分割と交差するフィーチャは、 別々のトラックに分割されます。
6 時間の時間分割と 16 キロメートルの距離分割を伴う例。6 時間以上離れているフィーチャ (午前 6 時のフィーチャと午前 7 時のフィーチャ) または 16 キロメートル以上離れているフィーチャ (午前 5 時のフィーチャと午前 6 時のフィーチャ) は、別々のトラックに分割されます。
16 キロメートルの距離分割と、午前 12 時から始まる 1 日の時間境界を伴う例。16 キロメートル以上離れているフィーチャ、または午前 12 時の時間分割と交差するフィーチャは、別々のトラックに分割されます。
16 キロメートルの距離分割、6 時間の時間分割、および午前 12 時から始まる 1 日の時間境界を伴う例。16 キロメートル以上離れているフィーチャ、6 時間以上離れているフィーチャ、または午前 12 時の時間分割と交差するフィーチャは、別々のトラックに分割されます。
滞在場所を検出するパラメーターを選択する場合は、観測点のタイプと検出する滞在場所の縮尺を考慮してください。移動データから滞在場所を検出できるようにパラメーターを変更する方法の例を次に示します。
- 船舶フィーチャに vesselID フィールドと tripID フィールドがある。
- 個別のルートに沿って滞在場所を検出する場合は、vesselID フィールドと tripID フィールドを識別子として使用します。
- 船舶が 1 時間以上 1 海里以内に停泊していた場所を検出する場合は、1 時間の時間許容値と 1 海里の距離許容値を使用します。
- 動物追跡に animalID フィールドがある。
- 特定の動物の滞在場所を比較する場合は、animalID フィールドを識別子として使用します。
- 動物の行動範囲を特定する場合は、3 日の時間許容値と 10 マイルの距離許容値を使用して、対象となる動物生息環境を検出します。
- 対象地域が小規模な場合は、2 時間の時間許容値と 100 メートルの距離許容値を使用します。
- 船舶フィーチャに vesselID フィールドと tripID フィールドがある。
次の操作を 1 つ以上実行すると、[滞在場所の検索 (Find Dwell Locations)] ツールのパフォーマンスを上げることができます。
- 対象データのみが解析されるように、範囲環境を設定します。
- 結果を [滞在フィーチャ] または [地理的中心] として出力します。
- [トラック フィールド] の入力を追加して、できるだけ多くのトラックに分割します。
- 測地線の代わりに平面による方法を距離計算に使用します。
- [時間分割]、[時間境界の分割]、および [距離分割] パラメーターを使用して、トラックを分割します。[時間境界の分割] は、パフォーマンスが最も向上します。
- 解析が実行されている場所に対してローカルなデータを使用します。
ジオプロセシング ツールは、ArcGIS GeoAnalytics Server を活用しています。解析は GeoAnalytics Server で実行され、結果が ArcGIS Enterprise のコンテンツに保存されます。
GeoAnalytics Server ツールを実行する場合、解析は GeoAnalytics Server で実行されます。最適なパフォーマンスを得るためには、ArcGIS Enterprise ポータルでホストされているフィーチャ レイヤーかビッグ データ ファイル共有を通じて、GeoAnalytics Server にデータを提供する必要があります。GeoAnalytics Server のローカルにないデータは、解析が開始する前に GeoAnalytics Server に移動されます。つまり、ツールを実行する時間が長くなり、場合によっては ArcGIS Pro から GeoAnalytics Server にデータを移動できないこともあります。エラーの閾値はネットワークの速度や、データのサイズや複雑さに左右されます。したがって、データを必ず共有するか、ビッグ データ ファイル共有を作成することをお勧めします。
構文
FindDwellLocations(input_features, output_name, track_fields, distance_method, distance_tolerance, time_tolerance, output_type, {summary_statistics}, {data_store}, {time_boundary_split}, {time_boundary_reference})
パラメーター | 説明 | データ タイプ |
input_features | 滞在場所の検出元になるポイント トラック。特定時点を表すフィーチャを含む時間対応レイヤーを入力する必要があります。 | Feature Set |
output_name | 出力フィーチャ サービスの名前。 | String |
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 |
data_store (オプション) | 出力の保存先の ArcGIS Data Store を指定します。デフォルトは、SPATIOTEMPORAL_DATA_STORE です。SPATIOTEMPORAL_DATA_STORE に格納されたすべての結果は、WGS84 で保存されます。RELATIONAL_DATA_STORE に格納された結果は、それらの座標系を維持します。
| String |
time_boundary_split (オプション) | 入力データを解析用に分割する期間。時間境界により、指定期間内の値を解析できます。たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラックは 1 日の開始時ごとに分割されます。 | Time Unit |
time_boundary_reference (オプション) | 入力データを解析用に分割する際に使用される基準時間。時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。基準時間が使用されない場合、1970 年 1 月 1 日が使用されます。 | Date |
派生した出力
名前 | 説明 | データ タイプ |
output | 滞在場所の出力ポイントまたは出力ポリゴン。 | レコード セット |
コードのサンプル
次の Python ウィンドウ スクリプトは、FindDwellLocationsツールの使用方法を示しています。
# Name: FindDwellLocations.py
# Description: Find the mean centers representing locations where ships have
# stayed within 15 miles across 4 hours of travel
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Hurricanes/MapServer/0"
outputName = "AtlanticShips_DwellLocations"
trackIdentifier = "SHIPID"
distance = "15 Miles"
timeDuration = "4 Hours"
outputType = "MEAN_CENTERS"
statistics = [["SPEED", "MEAN"]]
# Execute Find Dwell Locations
arcpy.geoanalytics.FindDwellLocations(inFeatures, outFeatures, trackIdentifier,
"GEODESIC", distance, timeDuration,
outputType, statistics,
"RELATIONAL_DATA_STORE")
環境
- 出力座標系
解析で使用される座標系。このパラメーターで指定されない限り、入力の座標系で解析が行われます。GeoAnalytics ツール の場合、最終結果は WGS84 のビッグ データ ストアに保存されます。
ライセンス情報
- Basic: 次のものが必要 ArcGIS GeoAnalytics Server
- Standard: 次のものが必要 ArcGIS GeoAnalytics Server
- Advanced: 次のものが必要 ArcGIS GeoAnalytics Server