LoginSignup
118
102

More than 3 years have passed since last update.

【超簡単~】10分間でPython+FineReportで地震ヒートマップを作成

Last updated at Posted at 2019-09-04

前回はExcelでハリケーンの進路を可視化でアメリカ2017年の超大型ハリケーン「イルマ」の進路を、Excelで描きました。Excelは簡単なグラフの作成がいいですが、複雑なタイプとなると手順の数が多いです。

今回はPythonでWebスクレイピングして、抽出した地震データをFineReportでヒートマップに作成します。10分間ぐらいかかって、超簡単だと思います。

FineReport【2019年】データ分析・可視化に本気でおすすめのツール30選(ノーコード型ツール含め)に紹介したものです。)

では、はじめます。

Pythonでスクレイピング

1.環境構築

ここはAnacondaでPythonの環境を構築しました。具体的なインストール方法は調べるといろいろありますので、ここは省きします。

(Qiitaの記事Anaconda で Python 環境をインストールするをご参考にしてもいいです。)

AnacondaでPython をインストールした場合、Jupyter Notebook が Python と同時にインストールされています。コマンドプロンプトでJupyter Notebook を起動します。
0401.png

2.ライブラリ導入

Jupyter Notebookのホームページで「New」ボタン ⇒「Python3」を選択し、ノートブックを作成します。
0402.png

requests、Beautifulsoap4、pandasをインポートします。
0403.png

requests:HTTPリクエストを作成する
BeautifulSoup:htmlファイルから目的のデータを抽出する
pandas:データ操作によく用いられるパッケージ。ここでは抽出したデータをCSVへのエクスポートのために使う

3.Webスクレイピング

下記のURLから、USGS(アメリカ地質調査所)の提供した世界中の地震データ(1999~2019年)をスクレイピングします。アメリカ地質調査所はアメリカ内に重点を置くので、アメリカ以外の国の場合、規模が大きな地震のみを含みます。

http://ditu.92cha.com/dizhen.php?page=1&dizhen_ly=usa&dizhen_zjs=1&dizhen_zje=10&dizhen_riqis=1999-07-11&dizhen_riqie=2019-07-11

BeautifulSoupを使い地震データを抽出します。


#htmlからページ1~3のデータを抽出する
for i in range(1,3):
url = 'http://ditu.92cha.com/dizhen.php?page={}&dizhen_ly=usa&dizhen_zjs=1&dizhen_zje=10&dizhen_riqis=1999-07-11&dizhen_riqie=2019-07-11'.format(i)  
page = requests.get(url)
soup = BeautifulSoap(page.content,'lxml')
tb = soup.find_all('td',class_='text-center')
for i in tb:
b.append(i.string)

データを区切って列名を指定し、Excelファイルに出力します。


i in range(0,len(b),5):
   sj.append(b(i))

dataframe = pd.DataFrame({'time':sj,'magnitude':zj,'longitude':jd,'latitude':wd,'depth':sd})

dataframe.to _excel("test.xls",index=False,sep!=',')


出力したデータは以下の通り:
0405.png

FineReportで地震ヒートマップを作成

1.Excelデータをインポート

FineReportを公式サイトからダウンロードし、インストールします。(個人体験版の試用期限が無制限。インストール方法が申し込み後のダウンロード画面にあるので、ここでは省きます。)
0406.png

ExcelファイルをFineReportのインストール先C:\FineReport_10.0\webapps\webroot\WEB-INF\reportletsに置きます。

FineReportデザイナを開くと、左上のテンプレート一覧に先のExcelファイルがあります。
0407.png

これからデータセットを作ります。
データセットパネルで「ファイルデータセット」を選択します。

0408.png

以下に示すように、Excelファイルからデータセットを作成します。

0416.png

プレビューして、データセットは以下の通り:
0409.png

2.ヒートマップを作成

ダッシュボードを新規作成し、ツールバーからヒートマップを追加します。
0410.png

「編集」ボタンをクリックし、右側に地図のポイントとGISレイヤを設定します。
0411.png

「データ」で地図のデータを設定します。
データソースは上記のデータセットを選択し、経度、緯度、エリア名、系列を以下のように設定します。
0412.png

ここまでヒートマップの作成がほぼ終わりましたが、見た目をきれいにするために、スタイルも調整します。

凡例は既定でグラデーションとなりますが、場合によって最大値、最小値などを変更できます。
0413.png

では、完了したヒートマップを以下に示します。
0414.png

また、拡張グラフの地球を選択し、上記のように設定すれば、以下の効果が出できます。かっこいいじゃないか?
0415.gif
图片.png

以上です。

ぜひやってみてください!

【2019年】データ分析・可視化に本気でおすすめのツール30選(ノーコード型ツール含め)で紹介したほかのツールも使いやすいですし、必要によって利用してみてください!

118
102
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
118
102