旅行といえば温泉はつきもの。
今回は温泉地科学データベースを利用し、日本全国の温泉地をPythonで可視化してみます
本記事のまとめ ● 入力データ ・温泉地化学データベース(データ集) ● 開発言語 ・Python ・plotly, folium(可視化ライブラリ) ● 本記事で得られること ・温泉地科学データベースを基にした、日本全国の温泉地の場所 ・Pythonの可視化ライブラリ(plotly, folium)の実装方法【ソースコード付き】
温泉地科学データベース
今回、温泉地科学データベースの中から緯度・経度情報が掲載されている約10,000箇所のデータを分析の入力データとしました。
緯度・経度情報の他にも水源種別、利用目的、水温、湧出量、pHなどのデータも収録されています。
火山・地熱活動による地下水の水質等に及ぼす影響を定量的に把握するための基盤情報として,全国各地の温泉水の化学分析値を取りまとめた「温泉地化学データベース(データ集)」を作成しました。
本データ集は,温泉水の湧出量,化学分析値,pH,利用目的等について,学術論文や各自治体の衛生研究所発行の報告書等の記載値約20,800件を取りまとめたものです。また,試料採取地点の位置(緯度・経度)については,収録データの約半数を特定しています。
https://www.jaea.go.jp/04/tono/siryou/dbghs/dbghs.html
Pythonで温泉地データを可視化
可視化ライブラリ plotly
全ての温泉地をプロット
各点にカーソルを合わせると水源種別、利用目的、水温、湧出量、pHなどの補足情報も確認できます。
ライブラリをインポート
import plotly
import plotly.express as px
全ての温泉地の緯度・経度をプロットし、htmlファイルに出力・保存
# plotlyでプロット
param_location_center = [35.6895014, 139.6917337] # 東京都庁の緯度・経度を中心とする
fig = px.scatter_mapbox(
# データフレームおよび緯度・経度の設定
data_frame=df,
lat="latitude",
lon="longitude",
# ホバー時の表示設定
hover_data=["latitude","longitude","都道府県名","所在地","水源種別","利用目的","水温","湧出量","pH"],
# 散布図のマーカーの設定
size="circle_size",
size_max=3,
# グラフの設定
center={'lat':param_location_center[0], 'lon':param_location_center[1]},
zoom=4,
width=1200,
height=800,
mapbox_style='open-street-map'
)
# htmlファイルの保存
file_name = "日本の温泉地.html"
plotly.offline.plot(fig, filename=f'{param_directory_output}{file_name}', auto_open=False)
可視化ライブラリ folium
温泉地の密集度をヒートマップでプロット
密集度の高いエリアが赤く表示されています。
ライブラリをインポート
import folium
from folium.plugins import HeatMap
ヒートマップをプロットし、htmlファイルに出力・保存
# foliumでプロット
param_location_center = [35.6895014, 139.6917337] # 東京都庁の緯度・経度を中心とする
folium_map = folium.Map(location=param_location_center, zoom_start=5, tiles="OpenStreetMap", width=1200, height=800)
HeatMap(df[["latitude", "longitude"]], radius=4, blur=3).add_to(folium_map)
# htmlファイルの保存
file_name = "日本の温泉地ヒートマップ.html"
folium_map.save(f'{param_directory_output}{file_name}')
まとめ
以上、今回は温泉地科学データベースを利用し、日本全国の温泉地をPythonで可視化してみました。
今回利用したplotlyやfoliumライブラリは、簡単にインタラクティブなグラフが描画できるので非常に便利です!
リンク
コメント