この記事は、「Python Advent Calendar 2019」の1日目の記事です。
Jupyter NotebookとMapbox GL JSを組み合わせて可視化してみました!
今回は、Pythonのバージョンはv3.7.2で環境構築しました。

はじめに、各ライブラリをインストールします。
mapboxgl-jupyterをインストール。

pandasをインストール。

jupyterをインストール。

requestsをインストール。(起動時エラーとなった場合)

各ライブラリのインストールが終わったらjupyter notebookを起動します。起動できたらこれで環境構築が完了です。これだけでjupyter notebookの中でMapbox GL JSを利用できます!

コード入力画面を開きます。New → Python 3

新しいタブでコード入力画面が開きます。

今回は、下記コードで地図上にサークルポイントを表示してみます。
import os import pandas as pd
from mapboxgl.utils import * from mapboxgl.viz import *
data_url = 'http://day-journal.com/example/try-028/sample_point.csv' df = pd.read_csv(data_url)
print (str(df))
point = df_to_geojson( df, properties=['name', 'value'], lat='lat', lon='lon', precision=3, )
print (str(point))
viz = CircleViz( point, radius = 3, opacity = 0.8, color_property = 'value', color_stops = create_color_stops( [0, 50, 100, 500], colors='GnBu' ), stroke_color = '#333333', stroke_width = 0.5,
style = { 'version': 8, 'sources': { 'MIERUNEMAP': { 'type': 'raster', 'tiles': ['https://tile.mierune.co.jp/mierune_mono/{z}/{x}/{y}.png'], 'tileSize': 256 } }, 'layers': [ { 'id': 'MIERUNEMAP', 'type': 'raster', 'source': 'MIERUNEMAP' } ] }, center = [139.767, 35.681], zoom = 11, width = '100%', height = '600px' )
viz.show()
|
まずは、必要なライブラリをインポートし、サンプルCSVを読み込みます。
import os import pandas as pd
from mapboxgl.utils import * from mapboxgl.viz import *
data_url = 'http://day-journal.com/example/try-028/sample_point.csv' df = pd.read_csv(data_url)
print (str(df))
|

読み込んだデータをGeoJSON形式に変換します。
point = df_to_geojson( df, properties=['name', 'value'], lat='lat', lon='lon', precision=3, )
print (str(point))
|

変換したGeoJSONを利用し、背景地図にサークルレイヤを表示します。
viz = CircleViz( point, radius = 3, opacity = 0.8, color_property = 'value', color_stops = create_color_stops( [0, 50, 100, 500], colors='GnBu' ), stroke_color = '#333333', stroke_width = 0.5,
style = { 'version': 8, 'sources': { 'MIERUNEMAP': { 'type': 'raster', 'tiles': ['https://tile.mierune.co.jp/mierune_mono/{z}/{x}/{y}.png'], 'tileSize': 256 } }, 'layers': [ { 'id': 'MIERUNEMAP', 'type': 'raster', 'source': 'MIERUNEMAP' } ] }, center = [139.767, 35.681], zoom = 11, width = '100%', height = '600px' )
viz.show()
|

処理を実行すると可視化されたマップが表示されます。

Jupyter NotebookとMapbox GL JSを組み合わせて可視化ができました!
思ったよりJupyter NotebookとMapbox GL JSを連携するのは手軽にできました。データをマップを利用して可視化するのに役立ちそうです。
Mapbox GL JSについて、他にも記事を書いています。よろしければぜひ。
tags - Mapbox GL JS

