アメグラ2号のブログ

1980年代後半の古き良きビデオゲームのほか、オッサンの個人的備忘録

python 外部サイトから気象情報取得 ⇒ウィジェット

f:id:game-allergy:20210611094841p:plain

先日ウィジェットのひな型ができたので、これをベースにして天気情報のウィジェットを作成してみる。

天気情報は既に作成した「tenki.jp」の情報収集スクリプトを使用する。

以下が以前の記事

game-allergy.hatenablog.com

 

注意:ラズパイでウィジェットを作るのではなく、windows上でウィジェットを作る、です。(過去にラズパイで動かしたWebスクレイピングの仕組みを流用するってことです)

 

◆完成したウィジェット

f:id:game-allergy:20210730135005j:plain

最上段にある「地名」ボタンを押すと、

その地名の天気情報を収集し、下段にある表示エリアに情報が表示される。

 

横浜市」を押すと、以下のようになる。

f:id:game-allergy:20210730135041j:plain

 

この状態で、上段右側あたりにある「チャート出力」を押すと、グラフが表示される。

f:id:game-allergy:20210730135114j:plain

 

 

◆グラフ

グラフは、気温、湿度、風速、雨量の4つ。

横軸は時間(0~72時間後まで)

例えば7/30にデータ収集した場合は、7/30,7/31,8/1の3日間=72時間分を表す。

要は、グラフは7/30,7/31,8/1と1時間おきの推移を示していて、今後「良くなるのか」「悪くなるのか」を一目で把握できるようにしている。

f:id:game-allergy:20210730141931j:plain

 

ちなみに「長野県佐久市」の情報は以下

八ヶ岳のふもとでも30℃近くはいくから涼しいわけではないね。

ただ、最低気温が20℃を切るから日が落ちれば涼しい。

f:id:game-allergy:20210730141948j:plain

 

そして以下は「札幌市」。

札幌の明日の気温が34℃くらい…札幌もけっこう暑いのね夏は。

f:id:game-allergy:20210730142051j:plain

 

◆仕組み

Tkinterウィジェット

beatifulsoupでWebアクセス、html収集

sqlite3でデータベース保持

pandasでデータフレーム作成

Matplotlibでグラフ作成

 

とまぁ、これまで作ってきたものを総動員しただけ。

 

スクリプトは以下

game-allergy.hatenablog.com

 

◆ほか、機能

一応、下段エリアの情報をクリックすると、上段側で表示する。

DBへの書き込み可能だけど、収集した天気情報を自分で書き換える必要ないからなぁ・・・あんまり意味ない機能。

f:id:game-allergy:20210730135141j:plain

 

CSV出力

一応CSV出力可能。

sqliteから吐き出してるだけ。

せっかくDB記録したのに消しちゃった…ってなる前に使う機能かな。

f:id:game-allergy:20210730135356j:plain

 

CSV読込

吐き出したCSVを読む用。

カラム間違えるとDB受け付けないからね。

f:id:game-allergy:20210730135229j:plain

 

◆最後に

このウィジェット、情報源はtenki.jpのデータだけど、データを変えればなんにでも応用がきく。tenki.jpから取集したデータって、「8カラム×72レコード」の配列なので、自分がどんなデータを取集したいか?が決まればすぐに改変できる。

以前作ったplanetOSのデータがjsonなので、それを読めるようにしても面白いかもしれないな~。