Skip To Content

トラックの再構築

注意:

現在、この機能は Map Viewer Classic (旧名称 Map Viewer) でのみサポートされています。 新しい Map Viewer の今後のリリースで提供される予定です。

トラックの再構築 [トラックの再構築] ツールは、時系列ポイントをトラックに接続し、トラック内のフィーチャを集計します。 トラックは、1 つ以上のトラック フィールドで識別されます。 生成されるレイヤーには、ラインまたはエリアとしてのトラック、トラック内で集計されたフィーチャの個数、その他に指定された統計情報が表示されます。

ワークフロー図

[トラックの再構築] のワークフロー図

解析での使用 GeoAnalytics Tools

GeoAnalytics Tools を使用した解析は、複数の ArcGIS GeoAnalytics Server コンピューターやコアにまたがる分散型処理を使用して実施されます。GeoAnalytics ToolsArcGIS Enterprise の標準的なフィーチャ解析ツールは、異なるパラメーターと機能を持ちます。これらの相違点については、「フィーチャ解析ツールの相違点」をご参照ください。

用語

用語Description

測地線

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

平面

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

インスタント

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

間隔

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

ハリケーンは、米国で発生する嵐の中でも特に激しい嵐です。 保険料率を決定するには、ハリケーンの進路を追跡し、これまでにハリケーンによる多大な物的および金銭的損害を被った場所を特定する必要があります。 そこで、1 つのデータセットに集約した米国全土のハリケーンの位置データにアクセスします。データでは、位置ごとにタイムスタンプが記録されています。 すべての情報をまとめ、すべてのハリケーンの集計値を確認します。 ハリケーン トラック識別子を使用してデータを集計し、ハリケーンごとに統計をまとめます。

使用上の注意

[トラックの再構築] は、ポイント フィーチャまたはエリア フィーチャで実行されます。 入力レイヤーは、特定時点を表すフィーチャによって、時間が有効化されている必要があります。

線形の結果の場合、複数のポイントを含むトラックのみが返されます。 バッファーを適用すると、すべてのフィーチャが返されます。

入力フィーチャは、時間が有効化されており、特定時点を表すフィーチャで構成されます。 結果は、時間の間隔を表すライン フィーチャまたはエリア フィーチャになります。 間隔の始点と終点は、トラック内の最初のフィーチャと最後のフィーチャの時間によって決定されます。

2 つの明確なトラックを持つ入力フィーチャ (緑と赤)。時間タイプが「インスタント」 (左) と生成されるトラック (右)、または時間タイプが「間隔」。
時間タイプが「インスタント」 (左) と生成されるトラック (右)、または時間タイプが「間隔」である 2 つの明確なトラックを持つ入力フィーチャ (緑と赤) が表示されます。

トラックの中で最も基本的な計算は、集計されたフィーチャの個数カウントです。 統計情報 (個数、合計、最小、最大、範囲、平均、標準偏差、分散、トラックの最初と最後) は数値フィールドでも計算でき、統計情報 (個数、すべて、トラックの最初と最後) は文字列フィールドでも計算することができます。 文字列統計 [すべて] は、各トラックからサンプル文字列を返します。 統計情報は、各トラックで個別に計算されます。

トラックの識別に使用されるフィールドは、結果で返されます。

トラッキングを識別するために、1 つ以上のフィールドを選択できます。 トラッキングは、1 つ以上のトラッキング フィールドの一意の組み合わせで表されます。 たとえば、flightID フィールドと Destination フィールドがトラック識別子として使用される場合、フィーチャ「ID007, Solden」と「ID007, Tokoyo」は 2 つの個別トラッキングになります。Destination フィールドの値が異なるからです。

また、任意で入力フィーチャにバッファーを適用することもできます。 バッファーを適用すると、生成されるトラックはエリア フィーチャになります。

バッファーを適用し、トラックに再構築した入力ポイント
バッファーが適用された入力ポイントは、トラッキングに再構築されます。

バッファーは、フィールドまたはバッファー条件式を使用して作成されます。 バッファー条件式と書式設定の詳細については、「GeoAnalytics Tools でのバッファー条件式の使用」をご参照ください。 トラック対応条件式を適用できます。 たとえば、方程式 mean($track.field["wind_speed].history(-4, -1)) を使用してトラック内の前の 3 つのフィーチャの wind_speed フィールドの平均によって、現在のフィーチャをバッファー処理できます。

入力フィーチャをバッファー処理すると、入力フィーチャごとにバッファー処理されます。 次に、凸包が生成され、エリア トラックが作成されます。

入力ポイント (緑)、視覚化用の中間バッファー (青のハッチング)、生成されるポリゴン トラック (青)
入力ポイント (緑)、視覚化用の中間バッファー (青のハッチング)、生成されるポリゴン トラック (青) の例を示します。

デフォルトでは、トラックは測地線による方法で作成されます。 この方法は、解析の以下の 2 つのコンポーネントに適用されます。

  • 国際日付変更線をまたぐトラック - 測地線による方法を使用する場合、国際日付変更線をまたぐ入力レイヤーには、国際日付変更線を正しく横断するトラックが含まれます。 これがデフォルトです。 入力レイヤーまたは処理空間参照は、国際日付変更線周辺の折り返しをサポートする空間参照に設定される必要があります (正積円筒図法のようなグローバル投影など)。
  • バッファー - 入力フィーチャは任意でバッファーすることもできます。 測地線バッファーまたは平面バッファーの適用について詳しくは、「バッファーの作成」をご参照ください。

トラックを分割する方法には、次の 4 通りがあります。

  • [入力間の時間に基づく] - 時間分割を適用します
  • [定義済み時間間隔] - 時間の境界を適用します
  • [入力間の距離に基づく] - 距離分割を適用します
  • [Arcade 条件式に基づく] - 分割式を適用します

時間分割を適用すると、入力データが指定時間よりも大きい場合に、トラックが分割されます。 たとえば、同じトラック識別子を持つフィーチャが 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 キロメートル以上の連続したフィーチャは異なるトラックに分けられます。

分割式を適用すると、値、ジオメトリ、または時間値に基づいてトラックを分割します。 たとえば、フィールド値がトラッキングの前の値より倍以上である場合にトラッキングを分割できます。 これを行うには、WindSpeed というサンプル フィールドを使用して var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1] という式を使用します。 前の値 (speed[0]) が現在の値の半分以下である場合にトラックが分割されます。

分割オプションを適用しない、一部のみ適用する、または同時にすべて適用できます。 下記のすべての例は、このギャップ分割を使用しています。 6 時間の時間分割、1 日の時間境界、16 キロメートルの距離分割を適用することを前提とした場合の結果は、次のように異なります。

時間と距離の変化による分割の 8 つの入力ポイント (緑色) の例
時間と距離の変化による分割の 8 つの入力ポイント (黄色) 例を示します。

分割オプションDescription

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

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

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

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

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

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

1 日の時間境界を伴う例

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

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

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

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

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

6 時間の時間分割と 16 km の距離分割を伴う例

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

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

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

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

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

時間の分割、距離の分割、または分割式を使用してトラックを分割する場合、分割間のセグメントの作成方法を指定できます。 時間境界分割は、常にギャップを生成します。 トラック分割オプションは ArcGIS Enterprise 10.9 以降で使用できます。 次のオプションがあります。

  • [ギャップ] - 分割された 2 つのフィーチャ間に間隔を空けます。
  • [分割後に終了] - 分割後に終了するセグメントを作成します。
  • [分割前に開始] - 分割前に終了して開始するセグメントを作成します。

次の図に、分割タイプの例を示します。

同じ入力ポイント (黄色) 上の時間分割の例を 3 つ示します。

同じ入力ポイント (黄色) 上の時間分割の例を 3 つ示します。

時間分割オプション

Description

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

同じ識別子の付いた 5 つの入力ポイント。 各ポイントの時間は、点線の下にマークされます。 すべての例に、午前 2 時と午前 5 時の間に 1 つの分割があります。 各トラックは、トラック上の 3 番目および 4 番目のポイント間で 2 つのセグメントに分割されます。 1 つ目のトラックは緑色、2 つ目は紫色です。 トラックの分割方法は、分割タイプ パラメーターで決定されます。

ギャップ

ギャップ分割

分割されている 2 つのポイント間にギャップを空けた例。 1 つ目のトラックは 3 番目のポイントで終了し、2 つ目のトラックは 4 番目のポイントで開始します。 これがデフォルトです。

分割後に終了

分割後に終了

4 番目のポイントで分割後にトラックが終了する例。 2 つ目のトラックは 4 番目のポイントで開始します。

分割前に開始

分割前に開始

3 番目のポイントで分割を開始する前にトラックが分割する例。 2 つ目のトラックは 3 番目のポイントで開始します。

以下の例は、航空路線のフライト便を使用し、分割パラメーターとフィールド識別子パラメーターを使用してトラックを定義することの有効性を示したものです。

  • 航空機フィーチャには aircraft IDflight IDpilot namestart timeflight_maneuver フィールドがあります。

    flight_maneuver フィールドは、航空機が地上にあるか、上昇中、降下中、または一定の高度であるかを表します。

    • 各航空機の移動履歴を確認する場合は、識別子に aircraft ID を使用します。
    • 個別のルートを比較する場合は、識別子として aircraft ID および flight ID フィールドを使用します。
    • 1 年間の各航空機のフライト便を調査する場合は、aircraft id と 1 年の時間境界を使用します。
    • 各パイロットのフライト便を確認する場合は、 pilot nameaircraft ID、および start time を使用します。
    • 1,000 キロメートル以上離れている測定値を同じトラックに含めない場合、aircraft ID を識別子として使用し、1,000 キロメートルを超える距離で分割して新しいトラックを決定します。
    • aircraft ID フィールドを識別子として使用し、flight_manuever フィールドの値が変わったときに式を使用して分割します。 たとえば、var manuever = TrackFieldWindow("maneuver", -1, 1); maneuver[0] != maneuver[1] は、トラックの現在の値と前の値が一致するかどうかを確認します。 一致しない場合はトラックが分割されます。

出力トラックは、トラック識別子として使用されるフィールド、トラック内のフィーチャ数 (count)、各トラックの開始時間と終了時間 (start_datetimeend_datetime)、トラックの間隔 (ミリ秒、duration)、およびその他のオプション統計を返します。

[現在のマップ範囲を使用] がオンの場合、現在のマップ範囲に表示されるフィーチャだけが解析されます。オフの場合、入力レイヤーのすべての入力フィーチャが、現在のマップ範囲内になくても解析されます。

制限事項

入力は、タイプが「インスタント」の時間対応フィーチャを含む、ポイント レイヤーまたはエリア レイヤーでなくてはなりません。 時間を含まないフィーチャは、出力トラックには含まれません。

トラックの再構築の仕組み

以下のセクションでは、[トラックの再構築] ツールの機能について説明します。

方程式

分散は以下の方程式で算出されます。

分散の方程式
分散の変数

標準偏差は、分散の平方根として算出されます。

計算

入力レイヤーは、一意の識別子を使用してトラックに集約されます。 集約結果は、トラック内で計算されます。

各トラックは、任意で数値統計情報 ([個数][合計][最小][最大][範囲][平均][標準偏差][分散][最初][最後]) または文字列統計情報([個数][すべて][最初][最後]) をトラック内で集約されるフィーチャに適用できます。

[最初][最後] の統計情報は、トラックの最初または最後の値を返します。 たとえば、時系列順のトラックで [Toronto,Guelph,Montreal] という値が指定されている場合、[最初] の値は Toronto、[最後] の値は Montreal です。 [最初][最後] の統計情報は、10.8.1 で使用できます。

計数統計 (文字列フィールドと数値フィールド) は、非 NULL の値を数えます。次の値の数は 5 です: [0, 1, 10, 5, null, 6] = 5。このセットの値の数は 3 です: [Primary, Primary, Secondary, null] = 3

ArcGIS API for Python の例

トラックの再構築ツールは ArcGIS API for Python で使用できます。

この例では、ハリケーン進路を再構築します。


# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
from arcgis.geoanalytics import summarize_data

# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password")
if not portal.geoanalytics.is_supported():
    print("Quitting, GeoAnalytics is not supported")
    exit(1)   

# Find the big data file share dataset you'll use for analysis
search_result = portal.content.search("", "Big Data File Share")

# Look through the search results for a big data file share with the matching name
bdfs_search = next(x for x in search_result if x.title == "bigDataFileShares_NaturalDisasters")

# Look through the big data file share for hurricanes
hurricanes = next(x for x in bdfs_search.layers if x.properties.name == "Hurricanes")

# Set the tool environment settings
arcgis.env.verbose = True

# Reconstruct the hurricane tracks by their serial number 
track_result = summarize_data.reconstruct_tracks(input_layer = hurricanes, 
                                                 track_fields = "serial_num",
                                                 method = 'Geodesic',
                                                 output_name = "hurricane_tracks")

# Visualize the tool results if you are running Python in a Jupyter Notebook
processed_map = portal.map('World')
processed_map.add_layer(track_result)
processed_map

類似のツール

[トラックの再構築 (Reconstruct Tracks)] を使用すると、トラック内のフィーチャを集計できます。 その他のツールは、類似した少し異なる問題を解決するのに効果的です。

Map Viewer Classic の解析ツール

異なる空間関係を使用してポイント、ライン、またはエリアを集計しようとしている場合は、[フィーチャの結合 (Join Features)] ツールを使用します。

ArcGIS Pro の解析ツール

[トラックの再構築 (Reconstruct Tracks)] ツールは、ArcGIS Pro でも使用できます。

ツールを ArcGIS Pro から実行するには、プロジェクトのアクティブなポータルで ArcGIS Enterprise 10.5 以上を実行している必要があります。 10.5 では、ポータルで空間解析を実行できる権限を持つアカウントで、ポータルにサイン インしている必要があります。