【Tableau】度分秒の経度緯度の変換

こんにちは、Data Saberに挑戦中の者です。

今回は、交通事故統計情報のオープンデータ(警察庁)を使ってVizを作る中で、経度・緯度データの処理に手こずることがあったので、
どのように対処したかをご紹介します。

今回扱うデータについて

交通事故統計情報のオープンデータ(2021)の緯度・経度のデータは固定長の整数になっています。(緯度は9桁・経度10桁)

画像5

誤ったやり方

最初に、この座標データに少数点を挿入して使用できないか試しました。
このようなイメージです。
424857124 → 42.4857124度

画像2

この数式で作った列を、地理的役割の緯度・経度に設定して地図にマークすると、下のように格子状にマーカーが無いエリアができてしまいました。
正しく扱えていないようです。

画像3

正しく扱う方法

色々調べているうちに、今回のデータは10進法で書かれたものではなく、度・分・秒で表したデータだということがわかりました。(分と秒は60進法)

このようなイメージです。
× 424857124 → 42.4857124度
〇 424857124 → 42度48分57.124秒→42.8158677度

つまり、度・分・秒に分解して
度はそのまま
分を60で除算したもの
秒を3600で除算したもの

を足せば10進法表記の座標に正しく変換できることになります。
こちらを参考にこのような数式を作りました。
(今回は1つの数式で処理しましたが、事前に度・数・分の列に分割してから計算すると分かりやすいと思います。)

画像4

この数式で作った列を、地理的役割の緯度・経度に設定して地図にマークすることにより、正しくプロットすることができました。

画像5

最後に

今回ご紹介した数式は、そのままではこのデータ以外では使用できないと思いますが、
度/分/秒の変換の考え方を知っていれば、様々な緯度・経度表記に対応できると思います。


この記事が気に入ったらサポートをしてみませんか?