コンテンツにスキップ

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 Key, API Secret)は自分の環境に合わせて変更してください。

from dashboard_modules.v2 import WebApiClient

# 接続情報を渡してクライアントを初期化する
client = WebApiClient(
    'http://webapi-endpoint/api/v1/evwhapi/jsonrpc',
    '[API Key]',
    '[API Secret]',
)

# パラメータを渡して mapserv_riskmap からデータを取得
df = client.mapserv_riskmap({
    'type': 'Feature',
    'geometry': {
        'type': 'Polygon',
        'coordinates': [[[139.0, 35.0],[140.0, 35.0],[140.0, 36.0],[139.0, 36.0],[139.0, 35.0]]]
    }, # 取得範囲を GeoJSON 形式で指定
    'properties': {
        'themes': ['riskmap_sample_tbl'], # 取得テーマを指定
        'start_datetime': '2022-01-01 00:00:00', # 取得時刻を指定
        'target_theme_mesh_degree': 4, # メッシュ粒度レベルを 1-4 の範囲で指定
    },
})

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

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

取得したリスクマップデータ(df)は Pandas の Dataframe 形式となっています。 セル追加ボタンを押し、新しいセルを追加して以下のコードを実行することで、取得したデータの中身を確認できます。

df

4. 地図で表示する

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

from dashboard_modules.v2 import MapView

# 地図の初期化
map = MapView(
    center = (35.65, 139.62),
    zoom = 12,
)

# 表示データの追加
# 引数は (データ, 分析対象カラム名, 識別ラベル, 表示色)
map.put(df, 'risk', 'リスク値', 'red')

# 地図の表示
map.show()

実行すると地図が表示されます。データの値が高い場所は色が濃く、低い場所は薄く表示されます。

image