Rei Frontier Tech Blog

人工知能を活用した位置情報分析プラットフォーム「SilentLog Analytics」を運営する、レイ・フロンティア株式会社のエンジニアメンバーで運営する技術ブログです。

Amazon Athena エンジンバージョン2【2020年12月16日東京リージョン対応】で追加された地理空間関数を使ってみました

レイ・フロンティアの佐藤です。

レイ・フロンティア株式会社では「人間の無意識を、行動データで見える化する」事業を展開しています。

f:id:reifrontier-blog:20201223084729p:plain

先日Amazon Athenaで新たにAthena エンジンバージョン2 ※1が発表され2020年12月16日に東京リージョンにもきました。

それに伴いPresto0.172からPresto0.217にアップデートされました。

そこで、追加された内容の中から弊社でよく利用する地理空間関数を実際に試してみました。

追加された地理空間関数の詳細はこちらをご覧ください。

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/geospatial-functions-list-v2-function-name-changes-and-new-functions.html#geospatial-functions-list-v2-new-functions

■やりたい事

日比谷駅から大手町駅までの距離をキロメートルで出す。

 

■使用した関数

great_circle_distance(latitude1, longitude1, latitude2, longitude2)

地表の2点間の大円距離(球の距離)をキロメートルで返してくれる関数です。

 

■やった事

まず日比谷駅から大手町駅までの距離を調べました。およそ1.3キロメートルあるようです。

f:id:reifrontier-blog:20201224131111p:plain

日比谷駅から大手町駅

次にAmazon Athenaで下記のコードを実行しました。 

f:id:reifrontier-blog:20201224130921p:plain

2点間の距離をキロメートルで出すコード

実行結果

f:id:reifrontier-blog:20201224130839p:plain

2点間の距離をキロメートルで出すコードの実行結果

1.26キロメートル。事前に調べた距離はおよそ1.3キロメートルですので合っていますね。

 

他の地理空間関数との比較も行いました。

使用したのは【to_spherical_geography】で、GeometryをSphericalGeography型に変換する関数です。

※ to_spherical_geographyの詳細

https://prestodb.io/docs/current/functions/geospatial.html

 また、ST_Distanceの機能が1つ増え球面上の点に対応するようになりました。

下記のコードで距離を出します。単位はメートルです。

f:id:reifrontier-blog:20201224131355p:plain

2点間の距離をメートルで出すコード


実行結果

f:id:reifrontier-blog:20201224131418p:plain

2点間の距離をメートルで出すコードの実行結果

先程と同じ距離になりました。

 

バージョン1のST_Distanceは地球の中心からの角度が結果として出てくる為、角度を近似式

■経度1度あたりのキロメートル

( 360 * 1000 ) / ( 2 * pi * ( 6378137 * cos(lat * pi / 180.0) )) 

で算出した結果で割り、距離を計算する必要がありましたが、

今回の関数が追加され直感的に距離をキロメートルで出せるようになりました。

 

※1 Amazon Athena がエンジンバージョン 2 の提供開始を発表

https://aws.amazon.com/jp/about-aws/whats-new/2020/11/amazon-athena-announces-availability-of-engine-version-2/

 

 ~お知らせ~

この度iPhone版同様にお使い頂けるSilentLog、Android版をリリースしました。
今後とも宜しくお願い致します。

Android版

https://play.google.com/store/apps/details?id=jp.reifrontier.silentlog

 iPhone版

https://apps.apple.com/jp/app/silentlog/id901679160

 

f:id:reifrontier-blog:20200413132836p:plain

毎日の振り返る楽しさを「プラス」するアプリ
SilentLogの公式サイトはこちらです

【SilentLog・公式サイト】

 

f:id:reifrontier-blog:202004131352:plain

レイ・フロンティアの公式サイトはこちらです

【レイ・フロンティア株式会社・公式サイト】

 

■レイ・フロンティアでは共に未来を切り開く仲間を募集しております。ご興味がある方はお気軽にお問い合わせください。
採用情報:https://www.rei-frontier.jp/recruit/