Alteryxウィークリーチャレンジ#8中級やってみた!

全てのAlteryxウィークリーチャレンジャーに捧ぐ。#8の解説です。
2024.01.18

アルテリックス?アルタリクス?どちらでもわたしは一向にかまわんッッ!の國崎です。

Alteryxウィークリーチャレンジ#8をやってみたので、そちらの解説記事をご紹介します。
今回のチャレンジテーマは「#8: 三角、三角、三角.....」です。

今回のチャレンジでやること

お題

このチャレンジはアイデアとしては単純ですが、実行するには少し手こずるかもしれません。

座標のセットが用意されています。この課題では、三角形の空間オブジェクトを作成して、あなたのAlteryx 空間ツールに関する知識を試すことができます。
各三角空間オブジェクトは、厳密に3つの非共線点(non-collinear point) を持たなければなりません。
このデータセットを使用して、516個のユニークな三角形を作成しましょう。

引用元:#8: 三角、三角、三角.....

用意されたデータ

16レコードの緯度経度のデータが用意されてました。
20240118Alteryx_1

ゴール

とりあえず与えられたデータから516個の三角形を作ればいいと解釈しました。
レッツチャレンジ!

フォーミュラで1つめの座標を作成する

20240118Alteryx_2

今回三角形に必要な座標をフォーミュラで以下の式を書いて作成します。

ST_CreatePoint([Longitude],[Latitude])

注意点としては空間関数を使う際は、データ型をSpatialObjにしないといけません。
20240118Alteryx_3_2

出力すると追加の列に座標のポイントが反映されます。
20240118Alteryx_4_2

上記の流れで1つ作成したら、複製して残り2つを作成します。

レコードIDで番号を割り当てる

レコードIDを接続して各レコードに数字を割り当てます。
20240118Alteryx_5

列名、開始値も全部同じでいいです。
20240118Alteryx_6

さて、ここからちょいと分けて作業をしていきます。

フィールド付加で2つめの座標を作る

20240118Alteryx_7

フィールド付加を使い、3つのうち2つのデータを組み合わせて2つめの座標を作成します。
ここで各カラム名の重複を回避するため、名前も変更します。
20240118Alteryx_8

出力すると256行のレコードが作成されます。
20240118Alteryx_9

フィルターで座標の重複を削除

20240118Alteryx_12

フィルターに接続し重複してる座標を削除します。
ここでレコードIDが役立ってきますねん。
20240118Alteryx_10

フィルターにかけると120レコードに絞られました。
20240118Alteryx_11

再度フィールド付加で3つめの座標を作る

20240118Alteryx_13

「フィルターで書き出したデータ」と「放置していた3つめのデータ」をフィールド付加で組み合わせて3つめの座標を作ります。
ここでもカラム名の重複を回避するため、組み合わせる3つめのデータのカラム名を変更します。
20240118Alteryx_14

出力したら1,920レコードが作成されます。
20240118Alteryx_15

フィルターで再び座標の重複を削除

20240118Alteryx_16

新たに追加したデータによる重複をフィルターで削除します。
20240118Alteryx_17

実行すると560レコードになりました。
20240118Alteryx_18

フォーミュラで三角形を作成

20240118Alteryx_19

フォーミュラに以下式を入れて3つの座標から三角形を作成します。

ST_ConvexHull([point1],[point2],[point3])

この際もデータ型をSpatialObjにするのを忘れず。
20240118Alteryx_20

実行すると「triangle」という三角形データが入ったカラムが追加されました。
20240118Alteryx_21

空間情報で面積を見てみる

20240118Alteryx_22

ここから516までどう削るのかわからなかったのですが、模範解答を見ると0.1平方マイルより大きい三角形が516になるとのことだったので、同じ処理をしてみます。
空間情報を接続し、三角形の面積を平方マイルで出します。
20240118Alteryx_23

20240118Alteryx_24

フィルターで小さい三角形を削る

20240118Alteryx_25

カスタムフィルターで0.1平方マイル未満の三角形をフィルタリングします。
20240118Alteryx_26

すると516レコードになりました!
20240118Alteryx_27

あとは余計なカラムをセレクトで排除し最終的には以下のワークフローになりました。
20240118Alteryx_28

まとめ

こんな感じでAlteryx#8をやってみました。 0.1平方マイル未満を排除する根拠がわからなかったけど、解答を見てもよくわからないので、その辺は気にしないようにします。

本日はこの辺で。