Find Nearest Tool

Alteryxツールアイコン「最寄り地点検索ツール」(Find Nearest Tool)をご紹介します

Find Nearest 最寄り地点検索ツール(Find Nearest Tool)

[空間]カテゴリの[最寄り地点検索]ツールについて紹介します。

概要

このツールは、ある空間オブジェクトを持つリストの各レコードに対して、別の空間オブジェクトを持つリストから最も距離が近いレコードを取得するツールです。

例えば、駅名リストとコンビニリストを持っているとします。

各駅の最寄りのコンビニを取得したい、ということであれば、以下のように駅名リストを「ターゲット(T)」入力に接続し、コンビニリストを「ユニバース(U)」入力に接続します。

最寄り地点検索イメージ

アウトプットとしては、「マッチ(M)」出力に「駅に対して条件にマッチした最寄りのコンビニ」を得ることができます。また、条件にマッチするコンビニがない駅については、「アンマッチ(U)」出力にリストが出力されます(駅リストと同じ項目が出てきます)。注意点としては、マッチしなかったコンビニのリストは得られません(もちろん、M出力とコンビニ出力を結合ツールを使うことでアンマッチなコンビニリストを得ることができます)。

また、駅リストの各レコードに対してコンビニリストを検索するため、複数の駅に対して同じコンビニが最寄りとして該当することがあります。

最寄り検索イメージ

必ず1対1の関係で最寄りを検索したい、ということであれば本ツールはそのままでは利用できません。

注意

入力する空間オブジェクトはポイント、ライン、ポリゴンすべて受け付けますが、ターゲット側は重心として計算されるためライン同士、ポリゴン同士の厳密な距離計算、近傍検索には向いていません。

設定項目

このツールは大きく分けて「ターゲット(T入力)」の設定と「ユニバース(U入力)」の設定、および「検索条件」の設定、「セレクト」機能を持ちます。

最寄り地点検索設定

①ターゲット設定

T入力に接続したデータのうち、距離を算出する起点となる空間オブジェクトを指定します。ここで指定したデータに対してU入力に入力したデータから近いものを選択することで出力を行います。

基本的に起点はポイントオブジェクトである必要があります。ポリゴンやラインオブジェクトを指定することもできますが、その場合はオブジェクトの重心が計算対象となります。

 

②ユニバース設定

最寄りとなる候補のリスト(データ)を指定します。U入力からデータを入力することもできますし、ワークフロー外のデータベースやファイルを指定することも可能です。いずれの場合も、距離を算出するための空間オブジェクトを指定する必要があります。ユニバースは、ポイント、ライン、ポリゴンいずれのタイプの空間オブジェクトでも入力可能です。

選択項目名 説明
U入力からのレコードを使用する 「最寄り地点検索」ツールのU入力のデータを最寄り検索の候補のリストとして使用します
ファイルまたはデータベースからレコードを使用 U入力には何も接続せず、ファイルやデータベースを直接指定し、最寄り検索の候補のリストとして使用します

 

③検索条件

検索条件を設定します。指定できる項目としては、「最寄りポイント数をトップから何位まで出力するか」「最寄りとして判定する最大距離」「距離が0の場合、対象とするか否か」となります。

設定項目 詳細説明
検索する最寄りポイント数 各T入力のレコードに対して、最寄りとなる候補のリスト(ユニバース)のうち近い順にここで指定した数分のレコードを算出します。近い順に、FindNearestRankフィールドに番号が振られます。
最大距離 最寄り地点として判定される最大の距離を指定します。ここで指定した距離以上離れているユニバースのレコードは最寄り地点として判定されません。

単位も指定でき「マイル」「キロメートル」「ドライブタイム(分)」「ドライブ距離(Mi)」「ドライブ距離(Km)」が選択できます。

なお、「ドライブ~」を使うには、オプションのドライブタイムデータベースが必要となります。データセットをここで指定する必要があります。

0の距離の一致を無視する チェックを入れると、ターゲットとユニバースの距離が0の場合、最寄り地点として判定されません。以下のような場合が該当します。

  • ユニバースがポイントの場合、ターゲットとユニバースが同じ地点の場合
  • ユニバースがラインの場合、ユニバースのライン上にターゲットが存在する場合
  • ユニバースがポリゴンの場合、ユニバースのポリゴンの内側にターゲットが存在する場合

 

④セレクトツール同等機能

「マッチ(M)出力」へ出力されるデータに対して、セレクトツールと同等の機能が設定可能です(フィールド名変更、フィールドの並び替え、フィールド出力有無)。

なお、本ツールでの演算結果として以下の項目が出力されます(不要であればチェックを外せば出力されません)。

フィールド名 データ型 詳細
FindNearestRank Int16 検索設定で「検索する最寄りポイント数」を2以上に設定した場合、近い順に番号が振られます。
DistanceKilometers Double T入力とU入力の空間オブジェクトの距離を出力します。「最大距離」で設定した単位に応じてフィールド名が変わります。

最大距離の単位 フィールド名
マイル DistanceMiles
キロメートル DistanceKilometers
ドライブタイム(分) DriveDistanceKilometers
ドライブ距離(Mi) DriveDistanceMiles
ドライブ距離 DriveDistanceKilometers
DriveTime Double 「最大距離」の単位を「ドライブタイム(分)」で設定した場合に出力される項目です。時間(分)が出力されます。
Direction String T入力を中心に見た時のU入力の空間オブジェクトの方向をアルファベットで出力します。北:N、南:S、西:W、東:Eおよびこれを組み合わせたもの(例:南東=SE)が出力されます(「南南東」といったものは出力されず、8方位が出力されます)

「最大距離」の単位で「ドライブタイム~」を指定した場合は出力されません。

また、距離が0の場合は空白となります。

なお、セレクトツール同等機能の詳細はセレクトツールと同様になりますのでここでは割愛します。セレクトツールの記事を御覧ください。

 

サンプル

サンプルとして、ターゲットに「ランドマークリスト(田町駅、東京タワー、都庁)」、ユニバースに「山手線の駅リスト」を読み込ませ、各ランドマークに対して最寄りの山手線の駅を抽出するというワークフローを作成してみました。

最寄り地点検索 サンプルWF

Case1.検索する最寄りポイント=1

以下のような設定で実行してみます。

最寄り地点検索 設定1

結果は以下の通り、各ランドマークに対して1つずつ最寄り駅を取得できました。

最寄り地点検索ツール 出力サンプル

Case2.検索する最寄りポイント=3

以下のような設定に変更して実行してみました。想定どおりであれば、各ランドマークに対して3つずつ駅が出力されます。

最寄り地点検索 設定2

結果は以下の通り、想定どおりです(重複が多いので地図上は出力結果が少なく見えてしまいます)。

最寄り地点検索ツール 出力サンプル2

Case3.検索する最寄りポイント=1,最大距離=1km

以下のような設定に変更して実行してみました。想定どおりであれば、最寄り地点の距離が1kmを超える東京タワーの最寄り地点はない、ということになります。

最寄り地点検索 設定3

結果は以下の通り、想定どおりです。東京タワーはU出力の方に出力されます。

最寄り地点検索ツール 出力サンプル3

Case4.検索する最寄りポイント=1,0距離を無視

以下のような設定に変更して実行してみました。想定どおりであれば、ランドマークとしての田町駅の最寄り駅として距離が0になる田町駅は出力されません。

最寄り地点検索 設定4

結果は以下の通り、想定どおり田町駅の最寄り駅は浜松町駅となりました。

最寄り地点検索ツール 出力サンプル4

ワークフロー作成時のポイント

ターゲット入力に入れたリストをワークフローの最後まで保持したいということであれば、最大距離の制限に引っかかって最寄りのユニバースがない、ということになるレコードが出てくる可能性があり、その場合は欠落するレコードが出てきます。対策として、M出力とU出力をユニオン等で結合することで最後までリストの保持が可能です。

WF作成上の注意

まとめ

最寄り地点検索ツールは、空間オブジェクト同士で最も近いものを取得することが可能です。

できること

  • ポイント同士で最寄りのポイントを取得
  • ポイントとラインで最寄りのラインを取得
  • ポイントとポリゴンで最寄りのポリゴンを取得
  • ラインもしくはポリゴンの重心を取って、最寄りの空間オブジェクトを取得
  • 最寄りの空間オブジェクトは、近い順に複数取得可能
  • ポイント同士の場合は同じ場所であれば最寄り地点から省くことが可能
  • ポイントとラインの場合は、ポイントがラインに乗っている場合は最寄り地点から省くことが可能
  • ポイントがポリゴンの中にある場合は、最寄り地点から省くことが可能
  • 最寄り地点までの距離、方向の取得が可能
  • データベースがあれば、最寄り地点までのドライブ時間やドライブ距離の取得が可能(データベースは有償かつ日本は未リリース)

注意点

  • ポリゴン同士、ライン同士の最寄り検索は厳密にはできない(ターゲットは重心を利用)
  • ターゲットに入れたリストを最後まで保持したい場合は、M出力、U出力両方使う

 

サンプルワークフローダウンロード

FindNearest_Sample 

 

※Alteryx Designer 2019.4.4.20206時点の情報です

Alteryxの導入はぜひKCMEで!

セルフサービスデータ分析ツール「Alteryx」は2週間無償トライアルが可能です。

製品に対する操作方法、技術的な質問などは導入前・導入後に関わらずメールにてお答えします。また、Alteryxを用いた環境構築、開発、ヘルプデスク対応、ハンズオン、トレーニング、ワークフロー作成なども承りますので、お気軽にご相談ください。

おすすめの記事