Skip to content

JupyterHub の利用とデータ分析

このページでは、導入した Edge 環境で JupyterHub(Python によるデータ分析環境) にアクセスし、同環境のデータベースから取得したデータを、グラフ・地図により可視化するところまでの手順を解説します。

事前準備

事前に下記の実施が必要となります。(別途記載)

  • Edge 導入/JupyterHub ユーザ作成

JupyterHub を使ってみる

1. JupyterHub にログイン

https://<xData Edge の IP アドレス>/jupyter

ブラウザ(Chrome最新版)で上記にアクセスし、作成したユーザの Username, Password でログインします。

2. Notebook ファイルを作成

まず始めに、データ分析をするワークスペースとして Notebook ファイルを作成します。 Launcher から下記のボタンをクリックし、Notebook ファイルを新規作成します。

image

ファイル名は Untitled.ipynb となっていますので、hello.ipynb に変更してください。

image

3. 最初の Python プログラム実行

hello.ipynb を開いた状態にします。 画面上に空のセル(コードをを入力するための枠)が表示されているはずです。 ここに下記を入力してください。

print('Hello, Jupyter!')

入力したら、画面上部の実行ボタンをクリックします。 セルの下に Hello, Jupyter! と出力されます。

image

これで、あなたは Notebook 上で Python プログラムを動かすことができるようになりました。

JupyterHub でデータ分析を行う(空間)

次に、Web API を使ってリスクマップのデータ取得し、地図に表示する Notebook を作成します。 なお、本セクションのサンプル Notebook が Edge の Jupyter コンテナ上 /opt/xdata-edge/sample/riskmap_api_sample.ipynb に配置してあります。このファイルを Jupyter のワークスペースにコピーして実行することができます。

1. 分析用の Notebook ファイルを作成

新しい Notebook ファイルを作成してください。 ファイル名は任意ですが、ここでは、map.ipynb とします。 map.ipynb を開いて、次の手順に進んでください。

2. リスクマップテーブルからデータを取得する

最初のセルに、下記のコードを入力します。 api_endpoint, api_key, api_secret は自分の環境に合わせて変更してください。

from dashboard_modules import EvwhDataSet
dataset = EvwhDataSet(
    api_endpoint = 'http://webapi-endpoint/api/v1/evwhapi/jsonrpc',
    api_key = '[API Key]',
    api_secret = '[API Secret]',
)
options = {
    'tables': ['riskmap_sample_tbl'], # 取得テーマを指定
    'boundary': (139.0, 35.0, 140.0, 36.0), # 取得範囲の緯度経度(min, max)を指定
    'start_datetime': "2022-01-01 00:00:00", # 取得時刻を指定
    'target_theme_mesh_degree': 4, # メッシュ粒度レベルを 1-4 の範囲で指定
    'timezone': "Asia/Tokyo", # 取得データの時刻のタイムゾーンを指定
}
dataset.load(options)

これを実行すると、リスクマップ拡張 API を使って、データベースのリスクマップテーブル、イベントテーブルからデータを取得します。 ビジー状態(セル左側に [*] 表示)が終わったら、取得完了なので次に進みます。

3. 取得したデータを確認する

セル追加ボタンを押し、新しいセルを追加して以下のコードを実行してください。

dataset.get_event_dataframe('riskmap_sample_tbl')

取得したリスクマップデータ(Pandas の Dataframe 形式)の中身を確認できます。

4. 地図で表示する

最後に、地図を表示して空間上のデータ分布を表示します。 セルを追加して以下のコードを入力し、実行してください。

from dashboard_modules import DatetimeRangeSlider, MapView

mapview = MapView(dataset)
mapview.map.center = (35.69, 139.69)

mapview.display()

実行すると地図が表示されます。データ分布は最初は表示されていませんが、地図右のチェックボックスを ON にすることで表示できます。データの値が高い場所は色が濃く、低い場所は薄く表示されます。

image