Snowflake勢がGeoを語るとこうなる：SnowVillage #geo 夜な夜なトーク会レポート

この記事は[Snowflake Advent Calendar 2023](https://qiita.com/advent-calendar/2023/snowflake)シリーズ3の19日目です。
この記事の公開日は12/31ですが、せっかくなので登録しました。  

## SnowVillageとは

SnowVillageはSnowflakeの国内ユーザコミュニティの愛称です。  
公式名称は[Snowflake User Groups Japan](https://usergroups.snowflake.com/japan/)なのかな？  
主にSlackで活動していますが、強い人たちはYouTubeで講義したり、技術書典で本を出版したりしています。  

## SnowVillageの分科会と#geo

SnowVillageはテーマ別にSlackのチャンネルが作られていて分科会(あるいはTeam)と呼称されています。  
グローバルに**Sub-Chapters**として周知されている大きな分科会から、Slack上だけで活動している小さな分科会まで色々。  
例えば\#data-clean-room、\#data-management、\#streamlit、\#certifications、\#containerなど…
\#geoは立ち上がったばかりのまだ小さな分科会です。  

https://usergroups.snowflake.com/japan-data-clean-rooms/

https://usergroups.snowflake.com/japan-west/

## イベントの趣旨

分科会が立ち上がったので簡単なイベントをやろう！ということで、ただ雑談をするだけのトーク会として企画しました。  
どんなことを話してもいいよねというつもりだったのですが、何を話せばいいか分からず気まずくならないように、以下のようなトークテーマを用意していました。  

- GISのこういう処理、どう実装しているかみんなに聞きたい
- SnowflakeのGIS、まだここがイケてない！
- 最近見かけたgeoな話
- 私の一押しのST_*関数はこれ
- 私の好きなマップタイル
- この形式のデータは扱いたくない！この町の住所は触れたくない！
- ところで可視化はいつもどうしてる？

また、次のイベントに繋げたかったので、これからやろうと思ったことを最後に宣言してもらいました。  

## 当日出た話題の抜粋

- Snowflake Native Appsやそうでないところで便利なライブラリが色々存在している
  - [CARTO's Analytics Toolbox](https://docs.carto.com/faqs/analytics-toolbox)
  - [SedonaSnow](https://app.snowflake.com/marketplace/listing/GZTYZF0RTY3/wherobots-sedonasnow)
  - Mapbox
  - PODB
  - [MapLibre](https://maplibre.org/)
- Snowflakeに足りない機能の例
  - [ST_GeneratePoints](https://postgis.net/docs/ST_GeneratePoints.html)
  - [ST_BUFFER](https://docs.snowflake.com/ja/sql-reference/functions/st_buffer)は最近実装された
- GeographyかGeometryか問題
  - CARTO's Analytics ToolboxにはGeographyのST_BUFFERがある
- Geoloniaがすごく頑張っている
  - [Geoloniaの住所正規化ライブラリ](https://github.com/geolonia/normalize-japanese-addresses)が気になる
- 郵便番号の精度ってどうなの？
  - ある程度は分かるけど自治体跨ぎになる(市区町村を跨いで同じ郵便番号になる)ケースがある
- KEN_ALL.csvが辛い
  - [改善されても](https://forest.watch.impress.co.jp/docs/serial/yajiuma/1514142.html)まだ辛いときがある
- [浜松市の行政区再編](https://www.city.hamamatsu.shizuoka.jp/kikaku/kuseido/index.html)
  - 一部の行政区が分割されて違う行政区に統合される
  - いつ対応するか悩む…
- 初心者へのアドバイス：座標系の違いやGeographyかGeometryの違いに起因する距離の誤差に注意！
  - 例えば南北の地域では距離の誤差が大きくなることがある
- 質問：位置情報ってどういう風にコード化するの？
  - 代表的なのはメッシュコード：https://www.fttsus.org/worldgrids/ja/top-ja/
  - [ジオハッシュ](https://ja.wikipedia.org/wiki/%E3%82%B8%E3%82%AA%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5)、S2セル、H3セルなども
- [Snowflakeの検索最適化サービス](https://docs.snowflake.com/ja/user-guide/search-optimization/geospatial-queries)って使ったことある？
  - 誰も試したことがない
- 可視化ってどうしてる？
  - DBeaverで小細工
  - ダウンロードして、[Kepler](https://kepler.gl/)を使う。Notebook＋kepler.gl
  - Streamlitを使う。ライブラリは色々ある
    - PyDeck
    - Folium
  - https://qiita.com/keijipoon/items/92d9551930fe52d6c90a
  - Tableauでやる。でもいちいちやるのは面倒
- Snowsightで投げたクエリの結果に緯度・経度が含まれているとき、そのままSnowsight上でプレビューしたい
  - Snowflake Communityにアイディアを投稿したらいいんじゃないの！？
- 自治体ポリゴンの形状が破綻していたことがある
  - Snowflakeで最近[ST_ISVALID](https://docs.snowflake.com/ja/sql-reference/functions/st_isvalid)が実装されたから今後はテストが簡単になりそう
- 大量に可視化したいときってどうするの？
  - https://maptiler.jp/
  - GeoJSONで分割する、みたいな手法が鉄板
- 測地系について
  - 日本測地系はそろそろ駆逐されてきている
  - 交通関係はまだ日本測地系が残ってしまっているかも…
- 質問：測地系っていつ更新されるの？
  - 大きな変化があったときに再度測量される：https://www.gsi.go.jp/sokuchikijun/jgd2000-2011.html
- Geoの活用事例
  - [空室情報の活用により、不正決済・不正注文を検知し与信審査における課題を解決](https://data-solution.homes.jp/case/001)
- BIMってSnowflakeで扱える？
- 3Dモデルで言うと[PLATEAU](https://www.mlit.go.jp/plateau/)も熱い
- 次回までにやろうと思ったこと
  - Geoloniaのジオコーダを解析する！
  - \#geoに興味のありそうな人を誘う
  - Snowflakeの[クイックスタート](https://quickstarts.snowflake.com/guide/getting_started_with_geospatial_geography/index.html#0)をやってみる
  - Snowflakeの検索最適化サービスを試してみる
  - Snowsightで地図が表示されてほしいから、Snowflake Communityにアイディアを投稿してみる

## 感想

Geoな分野は奥が深いなということをあらためて感じました。  
ここについてはSnowflakeも伸びしろがたくさんありそう。  

こういうイベントは継続して、Geoな分野の知識をもっと習得していきたいです！