Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

foliumを用いた地理データを地図上に可視化

はじめに

地理データを地図上に可視化するPythonライブラリにfoliumがあります。

本記事では、foliumを用いた地理データを地図上に可視化する方法について簡単に紹介します。

 

 

1. foliumとは

foliumの公式ドキュメントは以下です。

python-visualization.github.io

以下のように緯度経度の情報を用いることで地図データを作成することができます。ここでは日本標準時子午線がある兵庫県明石市を基準にしています。

上記コマンドで下図のように地図を描画することができます。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

2. foliumのインストール

以下のコマンドでfoliumをインストールできます。

 

3. foliumで地図描画

3.1 地図データの作成

では、緯度経度のデータを用いて簡単に地図データを作成していきたいと思います。まずは皇居の緯度経度の値を用いて地図を作成していきたいと思います。

地図データを作成するには、任意の地点を指定して作成します。ここで任意の地点を皇居とし、その経度緯度から地図データを作成します。

上記のコマンドで以下のような地図データを作成できます。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

次に、zoom_startの引数を指定することで、地図の表示範囲を調整したいと思います。zoom_startの値を小さくすることで表示範囲が広くなり、大きくすることで表示範囲が小さくなります。

上記のコマンドで以下のような地図データが作成されます。上図の地図よりも拡大して表示されていることが確認できるかと思います。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

3.2 地図にマーカーをプロット

続いて、作成した地図に任意の地点にマーカーをプロットしたいと思います。ここでは、皇居の緯度経度の値を用いてfolium.Marker()で皇居にマーカーをプロットします。

上記のコマンドで以下のような地図データを作成することができます。皇居に青いマーカーがプロットされたことが確認できます。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

次に、マーカーにポップアップをつけて、マーカーの色変更、マーカーのアイコン設定を行いたいと思います。

ここで、マーカーの色は以下のリスト内から選択します。

[‘red’, ‘blue’, ‘green’, ‘purple’, ‘orange’, ‘darkred’, ’lightred’, ‘beige’, ‘darkblue’, ‘darkgreen’, ‘cadetblue’, ‘darkpurple’, ‘white’, ‘pink’, ‘lightblue’, ‘lightgreen’, ‘gray’, ‘black’, ‘lightgray’]

アイコンについては以下のリンク先の中から選択します。

glyphsearch.com

では、皇居につけたマーカーのポップアップに「皇居」を指定し、マーカーの色を赤色にして、アイコンを"info-sign"に設定します。

上記のコマンドで以下の地図データを作成することができます。マーカーをクリックうすると「皇居」のポップアップを確認することができます。また、マーカーの色とアイコンが変わったのも確認できると思います。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

3.3 任意の地点を中心に円を描画

続いて、任意の地点を中心に円を描画したいと思います。ここでは、皇居を中心に円を描画したいと思います。

まずは、folium.CircleMarker()を用いて皇居を中心に円を描画したいと思います。folium.CircleMarker()を用いた場合、拡大縮小によって円のサイズの変化があります。

上記のコマンドで以下のような地図データを作成することができます。皇居を中心に円が描画されていることが確認できると思います。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

次に、folium.Circle()を用いて皇居を中心に円を描画したいと思います。folium.Circle()を用いた場合、拡大縮小によって円のサイズの変化はなく、固定です。

上記のコマンドで以下のような地図データを作成することができます。皇居を中心に円が描画されていることが確認できると思います。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

さらに、円の内部にも色を付ける場合には、folium.CircleMarker()の引数fill_colorにカラーコードを指定します。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

3.4 タイルの設定

folium で 指定できるタイルは以下です。

  • Stamen Terrain
  • Stamen Toner
  • Stamen Watercolor
  • Cartodb Positron
  • Cartodb dark_matter

 

ではそれぞれのタイルの描画内容を見てみたいと思います。

Stamen Terrain

Make this Notebook Trusted to load map: File -> Trust Notebook

 

Stamen Toner

Make this Notebook Trusted to load map: File -> Trust Notebook

 

Stamen Watercolor

Make this Notebook Trusted to load map: File -> Trust Notebook

 

Cartodb Positron

Make this Notebook Trusted to load map: File -> Trust Notebook

 

Cartodb dark_matter

Make this Notebook Trusted to load map: File -> Trust Notebook

 

さらに地理院のタイルも指定することができます。以下の記事を参考にしました。

Python folium 指定できる 地図の タイル について | Monotalk

地図タイルの提供してくれるサービスとして、地理院タイルがあります。地理院タイルは国土交通省国土地理院が無償で提供してくれているものです。以下のリンクから地理院タイルを確認することができます。

地理院地図|地理院タイル一覧

 

ここでは以下の2つの地理院タイルを使用してみたいと思います。

  1. 簡易空中写真(2004年~)
  2. 電子国土基本図(オルソ画像)(2007年~)

 

では、簡易空中写真(2004年~)のタイルを使用して地図を描画したいと思います。簡易空中写真(2004年~)のタイルは以下のリンクから確認できます。

https://maps.gsi.go.jp/development/ichiran.html#airphoto

tilesに'https://cyberjapandata.gsi.go.jp/xyz/airphoto/{z}/{x}/{y}.png'を指定することでタイルを使用できます。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

次に、電子国土基本図(オルソ画像)(2007年~)のタイルを使用して地図を描画したいと思います。電子国土基本図(オルソ画像)(2007年~)のタイルは以下のリンクから確認できます。

https://maps.gsi.go.jp/development/ichiran.html#ort

tilesに'https://cyberjapandata.gsi.go.jp/xyz/ort/{z}/{x}/{y}.jpg'を指定することでタイルを使用できます。

Make this Notebook Trusted to load map: File -> Trust Notebook

 

4. 実例

都道府県のすき家店舗のマップを作成してみました。すき家のホームページから各店舗の店舗名、住所等を取得して、そのデータを基にfoliumを用いて地図データを作成しました。以下のリンクをご覧ください。

sukiyasuki.starfree.jp

 

引用

以下の記事を参考に本記事を作成いたしました。ありがとうございます。

chayarokurokuro.hatenablog.com

chayarokurokuro.hatenablog.com

www.monotalk.xyz

maps.gsi.go.jp

 

オススメ書籍

Pythonによるあたらしいデータ分析の教科書

Python3エンジニア認定データ分析試験の教科書にもなっている書籍で、データ分析に必要なPythonの基礎手法を身に付けることができます。具体的には、numpyとpandasを用いたデータの前処理、matplotlibを用いたデータのグラフ化、scikit-learnを用いた機械学習の基礎記述方法を身に付けることができます。これ一つで基礎はバッチリで、実務でも十分活用できると思います。個人的には見やすい書籍でした。

データサイエンス教本 Pythonで学ぶ統計分析・パターン認識・深層学習・信号処理・時系列データ分析

こちらの書籍は初心者から少し記述できるようになった人、かつ数学的な理論と一緒にPythonの記述方法を理解したい方にオススメです。統計分析、パターン認識、深層学習、信号処理、時系列データといった幅広く実務で使用する手法を学びたい方にもオススメです。

東京大学のデータサイエンティスト育成講座 ~Pythonで手を動かして学ぶデ―タ分析~

こちらの基礎を抑えながら実務で必要なPython記述法を学べる書籍です。基礎を一つ一つ抑えるというよりも実務で活用できるように必要な知識を身に付けられると感じました。これ一冊あれば十分かなと思いました。

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲