Alteryxで各地点間の距離を出力する

2018.10.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

今回は各地点間の距離を出力してみます。

Distanceツールを利用する

ワークフローの概要

今回は岩本町オフィスを出発して神田駅、東京駅、上越妙高駅、上越オフィスまでの各地点間の距離を出力します。以下のワークフローを作成します。

  1. Text Inputツールで各地点の緯度経度の情報を入力
  2. Create Pointsツールで位置情報を出力
  3. Multi-Row Formulaツールで位置情報をコピー
  4. Distanceツールで距離を出力
  5. Browseツールで結果を確認

ワークフローの詳細

[In/Out]->[Text Input]に各地点の緯度経度の情報を入力しています。「Location」が場所、「Latitude」が緯度、「Longitude」が経度の情報になっています。

[Spatial]->[Create Points]を追加します。[X Field (Longitude)]に経度、[Y Field (Latitude)]に緯度を設定し、Pointという位置情報を出力します。

[Preparation]->[Multi-Row Formula]を追加し、Distanceツールで2地点を選択できるようにするための処理を行います。[Create New Field]に「Departure」と「SpatialObj」を設定し、出発地点となる位置情報を出力します。

[Expression]では、以下の結果になるように設定しています。

  • 「Location」列が岩本町オフィスの場合は「Centroid」を出力
  • それ以外の場合はひとつ上の「Centroid」を出力

結果を確認すると、「Departure」列が追加され、Pointデータが出力されています。

[Spatial]->[Distance]を追加し、2地点の距離を出力します。[Point or Centroid Source]に「Depature」列、[Point, Line or Polygon Destination]に「Centroid」列、[Units]は「Kilometers」を設定します。

[In/Out]->[Browse]を追加して結果を確認します。「DistanceKilometers」列が追加され、出発地点(「Location」列のひとつ上の場所)から到着地点(「Location」列の現在の場所)の各地点間の距離が出力されています。

Spatial Infoツールを利用する

ワークフローの概要

今度は各地点を線で結んで地図上に表示し、Resultsウィンドウに距離を表示してみます。作成するワークフローは以下のとおりです。

  1. Text Inputツールで各地点の緯度経度の情報を入力
  2. Generate Rowsツールで各地点のデータを複製
  3. Multi-Row Formulaツールでグループ化
  4. Filterツールで不要な行を削除
  5. Create Pointsツールで位置情報を出力
  6. Poly-Buildツールで各地点を線で結ぶ
  7. Spatial Infoツールで距離を表示
  8. Browseツールで結果を確認

ワークフローの詳細

Text Inputツールでは前項と同じデータを入力しています。

[Preparation]->[Generate Rows]を追加します。[Preparation]->[Generate Row]を追加し、[Create New Field]に「RowCount」と「Int32」、[Initialization Expression]に「1」、[Condition Expression]に「RowCount <= 2」、[Loop Expression (Usually Increment)]に「RowCount + 1」を設定し、各地点のデータを2行ずつにします。

Multi-Row Formulaツールを追加します。[Create New Field]に「Group」と「Int32」を設定し、新しく「Group」列を作成します。

[Expression]では、以下の結果になるように設定しています。

  • 初めの行または最後の行は0を出力
  • 「Location」列のひとつ上が「岩本町オフィス」場合は1を出力
  • 「Location」列がひとつ上と異なる場合はひとつ上の「Group」列を出力
  • それ以外はひとつ上の「Group」列に1を足して出力

結果を確認すると、「Group」列が作成され、最初の行と最後の行には0が出力されています。また、岩本町オフィスと神田駅、神田駅と東京駅というペアになる2地点で同じ数字が割り当てられています。

最初の岩本町オフィスと最後の上越オフィスは線を描画する上で不要になりますので、[Preparation]->[Filter]を追加して不要なデータを取り除きます。[Basic filter]に対して「Group」「!=」「0」で振り分けします。

[T] (True)の出力を確認すると、元のデータの最初と最後の行がないことを確認できます。

Create Pointsツールを追加してPointデータを出力します。

[Spatial]->[Poly-Build]を追加します。[Source Field]にPointデータがある「Centroid」、[Group Field]に「Group」を選択します。

距離の出力のため、[Spatial]->[Spatial Info]を追加します。[Spatial Object Field]の「Length (Kilometers)」を選択します。

Browseツールを接続して結果を確認します。Resultsウィンドウには「LengthKm」という列が出力され、キロメートル単位の距離が出力されています。

地図を表示すると、各地点が直線で結ばれています。Resultsウィンドウ上で最初の行を選択し、東京方面を拡大表示すると、該当箇所がピンク色で表示されていることを確認できます。

最後に

今回は各地点間の距離を出力してみました。今後もAlteryxの機能をご紹介していきます。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400