完成図おわりに関連する記事こんにちは。Snowflakeでポリゴン地図を表示させてみます。マップ表示が使えるようになっています。streamlitのデフォルト関数st.mapでは制約が多く、カスタマイズができない欠点があります。(なぜか、カラーやサイズ等を指定できない。)また、st.mapではプロット地図のみ可能で、ヒートマップ地図やポリゴン地図を表示するには、他の手法を利用する必要があります。そこで今回、pydeckライブラリを使用した別の手法でポリゴン地図を表示しようと思います。Bankの都道府県データを使って、人口の多い・少ないで色分けしたポリゴン地図を可視化してみます。ソースコードを共有します。地図を表示st.pydeck_chart(fig)コードの詳細をピックアップして解説していきます。今回、Snowflake上のGeography型都道府県ポリゴンを、Geography→Geojson→Geometryに変換しています。気持ちとしては、地図表示に使用するPydeckライブラリは、入力にGeoDataFrameデータを指定すると管理が楽であり、そのGeoDataFrameを作成するにはDataFrame型属性データ(都道府県名・人口...)とGeometry型かGeojson型ポリゴンデータが必要となるためです。GeoDataFrameにGeojson型が使えそうならGeojson→Geometryの変換が不要だと思われますが、Geometry型では正常なポリゴンかどうかを判定する関数と補正する関数があるため、ポリゴン表示をより正確に行うためにGeometry型への変換を実施します。Snwoflake上のGeographyからGeojsonへと変換するためには、SnowflakSQL上でST_ASGEOSON関数を使用します。GEO_JSON次にGeojsonからGeometryに変換するためには、地理データを処理するShapelyライブラリを使用します。入力をGeojsonとして、shape関数でGeometry型に変換します。shape関数で変換したGeometry型には、表示できない形状があります。is_validで使用できるかの判定を行い、make_valid関数を使って補正をします。#47都道府県のポリゴンリストを作成ここまで行い、Geometry型の正常な47都道府県ポリゴンが完成します。GeoDataFrameを作成47都道府県の属性データを格納した47レコードのDataFrameと、Geometry型の47都道府県ポリゴンリストを入力にして、GeoDataFrameを作成します。GeoDataFrameをPydeckに入れて地図出力Pydeckライブラリを使ってポリゴン地図を表示します。layer変数では、人口が多い・少ないに応じた色分け都道府県ポリゴンデータが格納されています。(Tableauのマップレイヤーみたいですね。)fig変数では、地図全体の設定を行っています。map_styleでは、ベースマップを指定しています。衛星地図とかも表示できるようです。initial_view_stateでは、初期地図の拡大度や中心を指定しています。最後に、st.pydeck_chart関数で、Pydeckで作成した地図をStreamlit画面に表示します。Bankは、都道府県データ・ポリゴンだけではなく、カレンダーデータや、気象予報データ等があります。環境構築まで幅広くサポート可能です。t.ozawa↓すぐに使えるオープンデータが揃っています。ついてのお知らせです。