pythonでWebスクレイピングができるならば、その先の情報をもっと取得したくなるもの。ということで検索していたら「pythonを使用した気象分析」というのが。
以前から気象データをいじってみたかったし、情報取得方法の確認する意味でも丁度良い。よしやってみよう。
◆実行の流れ
pythonで、外部サイト「PlanetOS」へ接続し、そこからデータをもらって、自分のPC上にデータを表示する。
なんてことない流れだが、テキトーには繋がらない。(当たり前か)
◆pythonモジュール確認
必要なモジュールは、requests, json, pandas
毎度のことながら
>py -m pip list
Package Version
--------------- ---------
certifi 2020.12.5
chardet 4.0.0
et-xmlfile 1.0.1
idna 2.10
jdcal 1.4.1
numpy 1.20.2
openpyxl 3.0.6
pandas 1.2.3
pip 21.0.1
python-dateutil 2.8.1
pytz 2021.1
requests 2.25.1
selenium 3.141.0
setuptools 49.2.1
six 1.15.0
urllib3 1.26.3
◆実行スクリプト
スクリプトはこちらにまとめておく。
◆Planet OS
アカウント作成は無料。登録すると接続に必要なAPI keyが付与される。
API keyは、ログイン後のブラウザ右上の自分のアカウントから「Account settings」で確認できる。
使用する情報源はNOAAのものらしい。ほかにも様々な場所の情報源があるらしいが、、、そこまでは深堀りしない。
いったいどのように接続しているのかな~と。
ネットに掲載されていたアドレスを見てみると、
あ、これか。
dataSetsID =noaa_gfs_global_sflux_0.12dなんだけど、
データセットIDってなんなのよ?って調べてみると、いろんな観測所?のデータを扱うことができるみたい。上記のAPIではNOAAを選択している。
◆気象情報(json)は下記のような感じで取得される。
取得できるデータのjsonファイル内容も記載されている。これは分かりやすい。
(実はこれを見る前に、jsonデータを数字羅列を見てしまい、、、いったいどんなデータの並びになっているのかすこーしハマった)
◆json形式
普通にjson形式でデータを取得するだけだとこんなものが。。。。
初めて見たときは「視力検査か?」ってくらいな文字列の嵐。
知らない人からすれば単なる嫌がらせだよね、こんな文字の羅列。
だいたい jsonって何よ?美味いの?
何も知らない人からすればなんだか分からんよ。
ググったらJavaScriptObjectNotationだったかな?
要はJavaScript形式のデータ集合体?で軽量で取り扱いしやすいんだと。
上記の中身を見てみると単なる文字列の集合体。ただ、カッコなど記号を規則的に使用して「意味のある表データ」になってる。エクセルの表だって、文字だけで表現すればこんな感じになるわけで。。。。ということで、規則性がわかってしまえばたいしたことない。
◆整理すればOK
手順を踏んでみれば、上記のデータの山はたった2つのカテゴリに。
その中に、気象のいろんなデータが入ってきている。
↓ 時刻と気温を抽出できる。
◆だからなんなんだ
世界中のいろんなところで気象データが無償で開示されている。
この情報を使っていろんな研究に…という学者さん向けなのかと。
とにかく膨大なデータがあるので、これをどーやって使うか?というのは日々見ていかないと分からない・・・つまり研究者向けだよね。
自分としては、APIを使用し、外部サイトにアクセスして情報を取得する方法を体験できた…これが今回の大きな収穫かと。
見るだけではなく、自分で触って動かして。
これが一番大事だ。