0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【365日後にPredictive Master】大企業の平社員がAlteryx Weekly Challengeに挑む #008

Posted at

はじめに

こんにちは、積立お兄さんです。
大企業新卒3年目のAlteryx初心者です。
ひょんなことから「365日後にPredictive Masterになる!」という目標を掲げて、公式のWeekly Challengeにコツコツ挑戦しています。

この記事では、Alteryx歴3か月の平社員が、実務で生かせそうなノーコード分析力をどうやって身につけていくかを記録&共有していきます。

  • 目標:ETLツールを自在に使いこなせるようになる
  • 対象読者:Alteryxを始めたばかりの方/Weekly Challengeの解説が欲しい方

今回のチャレンジ:Weekly Challenge #008

先に白状いたしますが、今回のチャレンジは自力では解けませんでした。
ACEの方のものをもろパクリして作成しております。ですが、内容はしっかりと理解して作成したため、その解説を行っていこうと思います。

  • タイトル:[Weekly Challenge #008:三角、三角、三角.....] LINK
  • レベル感:中級者向け(個人的には上級)
  • ゴール:入力では16点の座標が準備されている。これを使用して、516個のユニークな三角形を空間ツールを使用して描画する。
  • 入力
  • 出力


解いた流れと使用ツール

ワークフロー全体

処理の手順と解説

  1. レコードIDツール :各座標にラベル付の用途でindexの列を作成。
  2. フィールド付加ツール:三角形を構成する3点の内、2点目を選択する。各1点目に対して2点目16点(16*16=256)の合計256パターンの行が完成する。
  3. フィルターツール:フィールド付加ツールの出力段階では、2つの点が同じ点のパターンが存在してしまう。こうなると三角形が作成できないので、それらを除外する必要がある。レコードIDツールでindexを付与しているため、各行に対して同じ点を付与しないように[RecordID_1] < [Record_2]としている。こうすることで、点1と点2、点2と点3のように2点が重複しないようになる。
  4. フィールド付加ツール:2と同様の考えで3点目を選択する。
  5. フィルターツール :3と同様の考えで、各点が重複しないようにする。
  6. フィルターツール:重複のない3点の座標が手に入ったが、まだ考えるべきことがある。それは、3点すべてが1直線上にある場合に三角形が作成できないという点である。よって、3点の座標を用いて3角形の面積を計算し、誤差含めて0.001より多きもののみ採用するようにした。

計算の公式は以下のものを使用している(引用元:https://univ-juken.com/vector-sankakkei)
高校数学で学んだベクトルの計算です。忘れているなぁ...


7. セレクトツール:必要な列以外を消す。また、この後のフローで各列の値を結合するので、文字列型に変換しておく。
8. フォーミュラツール:以下のような形に変換する。
'{ "type": "Polygon", "coordinates": [ [ [' + [Longitude_1] +','+[Latitude_1]+'], ['+[Longitude_2]+','+[Latitude_2]+'],['+[Longitude_3]+','+[Latitude_3]+'], ['+[Longitude_1] +','+[Latitude_1]+'] ] ] }'

上記の式は、GeoJSON形式で三角形のポリゴンを記述している文字列を作成する式です。

GeoJSONとは?

  • 地理空間データを表すための標準的なJSON形式
  • Alteryxでは、このGeoJSON文字列を ST_CreateSpatialObj() などでSpatialオブジェクトに変換可能です

各パーツの説明

部分 意味
"type": "Polygon" ジオメトリの種類 → 「ポリゴン(多角形)」
"coordinates": [[...]] 多角形の頂点の座標リスト
[Longitude_1], [Latitude_1] 1つ目の点(経度, 緯度)
[Longitude_2], [Latitude_2] 2つ目の点
[Longitude_3], [Latitude_3] 3つ目の点
[Longitude_1], [Latitude_1](再度) 始点と同じ座標で終点を閉じる → ポリゴンの必須要件!

つまり、三角形の3点を指定し、始点と終点を一致させて1つのポリゴンを閉じている構造です。

9. セレクトツール:8で作成した列をSpetialObj型に変換する。


詰まったポイントとその解決

  • 問題1:そもそも描画ってどうやんの!?
    → まずそもそもこれ。インタラクティブレッスンで、空間ツールを使用して描画する方法を見た気がするが、忘れてしまっていた。一方で、ACEの方のものを見るとGeoJSONを使用することで描画できる方法を見つけた。これの方が直感的で簡単な気がした(個人の感想)。
  • 問題2:数学力の欠如
    → 16点から三角形をたくさん作るときの考え方がわからなかった。これは単純に16点中3点を選んで結べばよい。ただ、1直線状の3点を除く必要がある。
    また、ベクトルを用いた三角形の面積の公式は完全に忘れていた。高校数学勉強し直したくなったなぁ。

結果と出力確認

→行が516行あるので、おそらく問題なくできているはず(数えるのは勘弁)。


今日の学び・振り返り

  • 新しく覚えたツール:フィールド付加ツール
  • 新たな知識1:フィールド付加ツールを使用するとかんたんに2つのデータを連結させることができる。ソースの方は繰り返しで連結させることができる。
  • 新たな知識2:GeoJSON形式で書いたものをSpetialOjb型に変換すると、図形を描画することができる。

次回予告

次は【Weekly Challenge #009】に挑戦予定!
図形を描画する方法を学べた。なかなか楽しかったが個人的には激むず。
自力でやられた方々すごいなぁ。

今日もお疲れ様でした!


タグ

Alteryx weekly Challenge データ分析 Predictive Master 365日チャレンジ ノーコード

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?