Alteryxの空間処理において同様の処理ができるツール・関数について

Alteryx

Alteryxの空間処理において、空間カテゴリのツールの機能を、その他のカテゴリのツールや関数で代替できるケースがあります。もしくは、データの持ち方によっては空間カテゴリのツールではなく、フォーミュラなどの関数で行ったほうが良いケースがあります。今回はその代替処理について解説したいと思います。

空間ツールに対して代替できる他カテゴリツール・関数について

ポイント作成

ポイント作成ツールは、ST_CreatePoint関数で代替することができます。

ポリビルド

ポリビルドは、ラインやポリゴンを作成するツールですが、複数行フォーミュラと空間関数の組み合わせで同じことを実現可能です。基本的に縦持ちのデータを集計ツールのように加工するのがポリビルドのため、そのまま代替とはならず、複数行フォーミュラツールを中心にいくつかのツールを組み合わせる形となります。

  • シーケンスポリライン → ST_CreateLine関数(複数行フォーミュラ)+集計ツール(結合)
  • シーケンスポリゴン → 厳密には全く同じことができるツール・関数はありません。データの持ち方を横持ちに変更し、ST_CreatePolygon関数(複数行フォーミュラ)を使うことでポリゴンを作成することは可能です。ただし、動的な処理などは行いにくくなります。
  • 凸包 → 集計ツール(凸方を作成)もしくはST_ConvexHull関数(複数行フォーミュラ)

距離

ST_Distance関数で代替することができますが、ドライブタイムなどはST_Distance関数では対応していません。ただし、現時点では日本でドライブタイムのデータセットは販売されていないため、事実上気にしないで良いポイントです。また、ポリゴンの内部の近傍点などの作成は関数ではできません。

空間情報

空間情報ツールは、フォーミュラツールや、他のツールでいくつかの機能の代替が可能です。

  • パーツ数 → ST_PartsNum関数
  • ポイント数 → ST_NumPoints関数
  • 中心点:SpatialObj → ST_Centroid関数、集計ツールの「中心点を作成」
  • 中心点:XY座標フィールド → ST_CentroidX関数、ST_CentroidY関数
  • 境界矩形:XY座標フィールド → ST_MaxX関数、ST_MaxY関数、ST_MinX関数、ST_MinY関数
  • 境界矩形:ポイント → ST_MaxX/Y,MinX/Y関数とST_CreatePointの組み合わせ
  • 境界矩形:ポリゴン → ST_BoundingRectangle関数、集計ツールの「境界矩形を作成」
  • 空間オブジェクト型 → ST_ObjectType関数
  • 終端地点:SpatialObj → ST_StartPoint関数、ST_EndPoint関数
  • 終端地点:XY座標フィールド → ST_Start/EndPoint関数とST_CentroidX/Y関数の組み合わせ
  • 長さ(キロメートル)→ ST_Length関数
  • 長さ(マイル)→ ST_Length関数
  • 面積(平方キロメートル)→ ST_AREA関数
  • 面積(平方マイル)→ST_AREA関数

代替できない処理

  • ペアノ鍵

なお、集計ツールの「境界矩形を作成」による境界矩形の作成は、元がポイントデータの場合は緯度経度が(0,0)のポイントデータを生成してしまうので注意してください。

空間プロセス

空間プロセスツールの代替ツール・関数は以下のとおりです。

  • オブジェクトを結合する → ST_Combine関数
  • 切り取る → ST_Cut関数
  • 交差オブジェクトを作成する → ST_Intersection関数、データの入力方法の工夫は必要ですが、空間マッチツールの「ターゲットとユニバースの交差地点」+「交差オブジェクトを出力」も可能です
  • 逆交差オブジェクトを作成する → ST_InverseIntersection関数

その他、

  • 「オブジェクトを結合する」は、データを縦持ちにすれば集計ツールの「結合」でも可能です。
  • 「交差オブジェクトの作成」は、データを縦持ちにすれば集計ツールの「交差を作成」でも可能です。

最寄り地点検索

最寄り地点検索は、一発で同等の機能を有するものはありませんが、いくつかのツールを組み合わせることで実現できます。とはいえ、複数のツール組み合わせるくらいであれば、最初から最寄り地点検索ツールを使えば十分です。

空間マッチ

空間マッチツールは、基本的に2つのフィールドが異なるデータストリームの場合に使います。その場合は代替手段を使う意味はありません。もし、各レコード内に比較したい空間オブジェクトが配置されている場合は、空間マッチツールではなく、関数を使う方が効率が良いです。

言い換えると、空間マッチツールは、条件にマッチする空間オブジェクトを探すためのものであり、代替手段となりうる関数を使う場合はあらかじめセットになった空間オブジェクトが特定の関係性を持つかどうかを判断するような場合に使う、ということになります(つまり、Aの中にBが含まれるか、ということを単純に判断したい場合は関数を使う、ということになります。BのリストからAの中に含まれる特定のBを探したい、というようなときは空間マッチツールを使うということです)。

  • 対象とユニバースの交差地点(Intersects) → ST_Intersects関数
  • 対象のユニバースのSpatialObjを含む(Contains) → ST_Contains関数
  • 対象のユニバース内にある地点(Within) → ST_Within関数
  • ターゲットとユニバースの接触地点(Touches) → ST_Touches関数
  • ターゲットとユニバースの接触または交差地点 → ST_TouchesOrIntersects関数
  • ターゲット境界矩形がユニバースに重なる地点 → ST_Intersects関数とST_BoundingRectangle関数の組み合わせ
  • カスタムDE-9IM相関 → ST_Relate関数

ヒートマップ

ヒートマップツールはそもそもマクロです。マクロの内部を解析すれば、ご自分の好きな形にカスタマイズが可能です。

代替手段がないツール

これらのツールは、他ツールで代替はできません。バッファと商圏分析は設定によっては同じ処理が可能です。

  • バッファ
  • 商圏分析
  • グリッド作成
  • スムージング
  • 一般化
  • ポリゴン分割

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

コメント

タイトルとURLをコピーしました