ラベル | 説明 | データ タイプ |
入力ポイント レイヤー | ラインに一致するポイント。 入力は、特定時点を表す時間対応ポイント レイヤーにする必要があり、一意のトラックを特定する 1 つ以上のフィールドを含む必要があります。 | Feature Layer |
入力ライン レイヤー | ポイントが一致するライン。 入力には、ラインの始点ノードと終点ノードを示す値を持つフィールドが含まれている必要があります。 | Feature Layer |
出力フィーチャクラス | 一致したポイントの格納先となるフィーチャクラス。 | Feature Class |
トラック フィールド | 一意のトラッキングを識別するために使用される 1 つ以上のフィールド。 | Field |
検索距離 | 一致していると見なされるポイントとラインの間で許可される最大距離。 75 メートル以下の値を使用することをお勧めします。 距離を長くすると、処理に時間がかかり結果の精度が低くなります。 | Linear Unit |
接続性フィールドの一致 | 入力ライン フィーチャの接続性を定義するために使用されるライン レイヤー フィールド。
| Value Table |
含めるライン フィールド (オプション) | 出力結果に含められる入力ライン レイヤーの 1 つ以上のフィールド。 | Field |
距離計算の方法 (オプション) | ポイントとラインの間の距離を計算するために使用する方法を指定します。
| String |
方向値の一致 (オプション) | 入力ライン フィーチャの方向を定義するために使用されるライン レイヤー フィールドと属性値。 たとえば、ライン レイヤーには、T (逆方向)、F (正方向)、B (両方向)、"" (なし) の値を持つ direction というフィールドがあります。 値が指定されない場合、ラインは双方向であると見なされます。
| Value Table |
出力モード (オプション) | すべての入力フィーチャを返すか、ライン フィーチャに一致した入力フィーチャのみを返すかを指定します。
| String |
時間で分割 (オプション) | 時間次元で時間分割期間よりも離れているフィーチャは複数のトラッキングに分割されます。 | Time Unit |
距離で分割 (オプション) | 距離次元で距離分割値よりも離れているフィーチャは複数のトラッキングに分割されます。 | Linear Unit |
時間境界の分割 (オプション) |
入力データを解析用に分割する期間。 時間境界により、指定期間内の値を解析できます。 たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラッキングは 1 日の開始時ごとに分割されます。 | Time Unit |
時間境界の基準 (オプション) |
入力データを解析用に分割する際に使用される基準時間。 時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。 基準時間を指定しないと、1970 年 1 月 1 日が使用されます。 | Date |
サマリー
入力トラック ポイントをラインにスナップします。 時間対応ポイント データには、時間内の瞬間を表すフィーチャが含まれている必要があります。 解析には、始点ノードと終点ノードを示すフィールドを含む通過可能なラインが必要です。
図
使用法
[トラッキングのスナップ (Snap Tracks)] ツールで使用される用語を次の表に示します。
用語 説明 トラッキング
時間対応かつ時間のタイプが瞬間を示す一連のフィーチャ。 フィーチャの順番は、トラック ID フィールドとその時間順に応じて決定されます。 たとえば、都市に 30 秒ごとにその場所を記録する除雪トラックを配備できます。 車両 ID は、個別のトラックを示します。
観測
トラッキング上のポイント。
ノード
ノードは、ラインの方向を示すために使用されるライン フィーチャの端点です。 ラインの始点は始点ノードで、ラインの終点は終点ノードです。
方向
ラインの方向。 方向は、ラインが始点ノードと終点ノードの間をどのように移動するかを指します。
接続性
接続性は、通過可能なネットワークを表すためのラインの接続方法を説明するものです。 ラインはその始点ノードと終点ノードの値に基づいて接続されます。 接続性に基づき、ポイントで到達できないラインは一致しているとは見なされません。
通過可能
ラインが共通ノードにより接続されている場合、そのラインは通過可能です。 たとえば、ライン A の始点ノードがライン B の終点ノードと同じである場合、それらのラインは通過可能です。
このツールには、次のパラメーター入力レイヤーが必要です。
- [入力ポイント レイヤー] - 入力ポイント レイヤーは、特定時点を表す時間対応の観測点でなければなりません。 有効なタイム スタンプがないトラック観測点は、解析から除外されます。
- [入力ライン レイヤー] - 入力ライン レイヤーは、次の接続性の情報があるフィールドを含む必要があり、[接続性フィールドの一致] パラメーターで指定する必要があります。
- Unique ID- ラインの一意な ID
- From node- ラインに沿った移動が離れる元のノード
- To node- ラインに沿った移動が向かう先のノード
[入力ポイント レイヤー] パラメーター値の空間参照は、[入力ライン レイヤー] パラメーター値の空間参照と同じである必要があります。 データセットの空間参照が異なる場合、[出力座標系] 環境を使用して解析に使用する空間参照を指定するか、解析の前にデータセットを投影します。
トラッキングを識別するために、1 つ以上のフィールドを選択できます。 トラッキングは、1 つ以上のトラッキング フィールドの一意の組み合わせで表されます。 たとえば、flightID フィールドと Destination フィールドがトラッキング識別子として使用される場合、ID007, Solden と ID007, Tokyo の各フィーチャは 2 つの個別トラッキングになります。Destination フィールドの値が異なるからです。
トラッキングには、解析で使用する観測点が 2 つ以上必要です。 観測点が 1 つしかないトラッキングは、照合されません。
ポイント → ラインの一致は、次を考慮して行われます。
- 観測点は、ラインからの検索距離内に存在します。 これが最小要件です。 観測点が検索距離条件を満たしていない場合、その観測点は照合されません。
- 観測点は、ラインの接続性に基づいてラインを通過できます。
- 観測点は、ラインがサポートする方向に移動しています。 これは、[方向値の一致] パラメーターに値を指定した場合に実行されるオプションの条件です。 このオプションの条件に適合した結果はより正確になります。
[検索距離] パラメーターを使用して、観測点とラインの間に許可する最大距離を指定します。 たとえば、GPS ポイントの精度が約 100 メートルの場合、検索距離に 100 メートルを指定します。
[距離方法] パラメーターは、検索距離の計算方法を指定します。 距離方法には次の 2 つがあります。
- [測地線] - 空間参照が天底子午線全体で継続的に画面移動可能である場合、適切であればトラッキングは天底子午線と交差します。 空間参照が継続的に画面移動可能ではない場合、トラッキングは座標系の範囲に制限され、折り返すことはできません。 これがデフォルトです。
- [平面] - トラッキングは天底子午線と交差しません。 入力データで投影座標系を使用する場合は、このオプションを使用します。
出力結果に追加のライン属性を含めるには、[含めるライン フィールド] パラメーターを使用してフィールド名を指定します。 これらのフィールドは、解析の目的には使用されず、独自の用途向けに含められます。 出力結果にジオメトリ フィールドを含めることはできません。
ライン フィーチャごとにサポートされる方向を定義するには、[方向値の一致] パラメーターを使用します。 たとえば、ライン レイヤーには、T (逆方向)、F (正方向)、B (両方向)、"" (なし) の値を持つ direction というフィールドがあります。 方向照合はオプションですが、正確な結果を得るために使用することをお勧めします。 方向照合を指定しない場合、ラインは双方向であると見なされます。
ツールは、一致したラインに沿って最も近い位置にスナップされたポイントを返します。 ライン フィーチャは返されません。 ライン データセットの一意の ID は、一致した結果に使用できます。 一意識別子フィールドは [接続性フィールドの一致] パラメーターを使用して指定します。 このフィールドを指定することにより、一致先のラインを指定できます。
トラッキングは次の方法で分割できます。
- [時間分割] - 入力間の時間に基づきます。 時間分割を適用すると、入力データが指定時間よりも大きい場合に、トラッキングが分割されます。 たとえば、同じトラッキング識別子を持つフィーチャが 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 倍よりも小さくなると、トラッキングが分割されます。
[入力ポイント レイヤー] パラメーター値のフィールドおよび [含めるライン フィールド] パラメーターを使用して指定されたライン フィールドだけでなく、出力には次のフィールドも含まれます。
フィールド名 説明 MatchStatus
観測点がラインに一致したかどうかを示します。 一致したフィーチャの場合の値は M、一致しなかったフィーチャの場合は U です。
OrigX
入力観測点の X 座標。 座標は、出力空間参照の単位で格納されます。
OrigY
入力観測点の Y 座標。 座標は、出力空間参照の単位で格納されます。
MatchX
ライン上の一致結果の X 座標。 座標は、出力空間参照の単位で格納されます。
MatchY
ライン上の一致結果の Y 座標。 座標は、出力空間参照の単位で格納されます。
MatchDist
元の位置と観測点の一致した位置の間の距離。 距離は、指定した距離計算の方法 (測地線または平面) に基づいて計算されます。 値はメートル単位で記録されます。
DATE
観測点のタイム スタンプ。
指定した [出力モード] パラメーターの値が [すべてのフィーチャ] の場合、一致したポイントと一致しなかったポイントの両方が返されます。 一致しなかったポイントについては、数値フィールドの場合は NULL 値、文字列フィールドの場合は空の文字列が出力結果フィールドに追加されます。 NULL 値が追加されるフィールドは、[含めるライン フィールド] パラメーター、MatchX フィールド、MatchY フィールド、および MatchDist フィールドを使用して指定されたライン フィールドです。
次のツールを使用して、類似の解析を実行することもできます。
- [トラッキングの再構築 (Reconstruct Tracks)] ツールを使用して、時間対応トラック ポイントをラインに再構築します。
- [スナップ (Snap)] ツールを使用して、ポイント、マルチポイント、ライン、またはポリゴンを他のフィーチャにスナップします。 このツールを実行すると、入力データが変更されます。
ジオプロセシング ツールは、Spark を活用しています。 解析は、デスクトップ コンピューターで複数のコアを並列に使用して行われます。 解析の実行の詳細については、「GeoAnalytics Desktop ツールの考慮事項」をご参照ください。
GeoAnalytics Desktop ツールを実行する際、解析はデスクトップ コンピューターで行われます。 最適なパフォーマンスを得るために、データがデスクトップで利用できる必要があります。 ホスト フィーチャ レイヤーを使用している場合は、ArcGIS GeoAnalytics Server を使用することをお勧めします。 データがローカルではない場合は、ツールの実行時間は長くなります。 ArcGIS GeoAnalytics Server を使用して解析を実行する方法については、GeoAnalytics Tools をご参照ください。
注意:
ライセンス付き StreetMap Premium ジオデータベース フィーチャ レイヤーは、ArcGIS Pro 3.0 の入力としてサポートされていません。
パラメーター
arcpy.geoanalytics.SnapTracks(input_points, input_lines, out_feature_class, track_fields, search_distance, connectivity_field_matching, {line_fields_to_include}, {distance_method}, {direction_value_matching}, {output_mode}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference})
名前 | 説明 | データ タイプ |
input_points | ラインに一致するポイント。 入力は、特定時点を表す時間対応ポイント レイヤーにする必要があり、一意のトラックを特定する 1 つ以上のフィールドを含む必要があります。 | Feature Layer |
input_lines | ポイントが一致するライン。 入力には、ラインの始点ノードと終点ノードを示す値を持つフィールドが含まれている必要があります。 | Feature Layer |
out_feature_class | 一致したポイントの格納先となるフィーチャクラス。 | Feature Class |
track_fields [track_fields,...] | 一意のトラッキングを識別するために使用される 1 つ以上のフィールド。 | Field |
search_distance | 一致していると見なされるポイントとラインの間で許可される最大距離。 75 メートル以下の値を使用することをお勧めします。 距離を長くすると、処理に時間がかかり結果の精度が低くなります。 | Linear Unit |
connectivity_field_matching [connectivity_field_matching,...] | 入力ライン フィーチャの接続性を定義するために使用されるライン レイヤー フィールド。
| Value Table |
line_fields_to_include [line_fields_to_include,...] (オプション) | 出力結果に含められる入力ライン レイヤーの 1 つ以上のフィールド。 | Field |
distance_method (オプション) | ポイントとラインの間の距離を計算するために使用する方法を指定します。
| String |
direction_value_matching [direction_value_matching,...] (オプション) | 入力ライン フィーチャの方向を定義するために使用されるライン レイヤー フィールドと属性値。 たとえば、ライン レイヤーには、T (逆方向)、F (正方向)、B (両方向)、"" (なし) の値を持つ direction というフィールドがあります。 値が指定されない場合、ラインは双方向であると見なされます。
| Value Table |
output_mode (オプション) | すべての入力フィーチャを返すか、ライン フィーチャに一致した入力フィーチャのみを返すかを指定します。
| String |
time_split (オプション) | 時間次元で時間分割期間よりも離れているフィーチャは複数のトラッキングに分割されます。 | Time Unit |
distance_split (オプション) | 距離次元で距離分割値よりも離れているフィーチャは複数のトラッキングに分割されます。 | Linear Unit |
time_boundary_split (オプション) |
入力データを解析用に分割する期間。 時間境界により、指定期間内の値を解析できます。 たとえば、時間境界を 1 日として、時間境界基準を 1980 年 1 月 1 日に設定した場合、トラッキングは 1 日の開始時ごとに分割されます。 | Time Unit |
time_boundary_reference (オプション) |
入力データを解析用に分割する際に使用される基準時間。 時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。 基準時間を指定しないと、1970 年 1 月 1 日が使用されます。 | Date |
コードのサンプル
次のスタンドアロン スクリプトで、SnapTracks 関数を使用する方法を示します。
# Name: SnapTracks.py
# Description: Snap snowplow fleet tracks to roads to uncover areas that
# may need more resources for snow removal efforts
# 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\Snowplow.lyrx'
# MakeFeatureLayer converts the .lyrx to features
snowplowsLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Snowplows Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(snowplowsLayer, inputLyrx)
# Set local variables
lineLayer = "c:/mydata/Roads.gdb/CityStreets"
trackIdentifier = "vehicle_id"
out = "c:/mydata/OutputDatasets.gdb/Snowplows_snapped_to_streets"
searchDistance = "10 Meters"
connectivityFieldMatching = "unique_ID from_node to_node"
directionValueMatching = "dir_travel F T B #"
# Run Snap Tracks
arcpy.gapro.SnapTracks(snowplowsLayer, lineLayer, out, trackIdentifier,
searchDistance, connectivityFieldMatching, None,
"GEODESIC", directionValueMatching, "MATCHED_FEATURES")