先日ウィジェットのひな型ができたので、これをベースにして天気情報のウィジェットを作成してみる。
天気情報は既に作成した「tenki.jp」の情報収集スクリプトを使用する。
以下が以前の記事
注意:ラズパイでウィジェットを作るのではなく、windows上でウィジェットを作る、です。(過去にラズパイで動かしたWebスクレイピングの仕組みを流用するってことです)
◆完成したウィジェット
最上段にある「地名」ボタンを押すと、
その地名の天気情報を収集し、下段にある表示エリアに情報が表示される。
「横浜市」を押すと、以下のようになる。
この状態で、上段右側あたりにある「チャート出力」を押すと、グラフが表示される。
◆グラフ
グラフは、気温、湿度、風速、雨量の4つ。
横軸は時間(0~72時間後まで)
例えば7/30にデータ収集した場合は、7/30,7/31,8/1の3日間=72時間分を表す。
要は、グラフは7/30,7/31,8/1と1時間おきの推移を示していて、今後「良くなるのか」「悪くなるのか」を一目で把握できるようにしている。
ちなみに「長野県佐久市」の情報は以下
八ヶ岳のふもとでも30℃近くはいくから涼しいわけではないね。
ただ、最低気温が20℃を切るから日が落ちれば涼しい。
そして以下は「札幌市」。
札幌の明日の気温が34℃くらい…札幌もけっこう暑いのね夏は。
◆仕組み
beatifulsoupでWebアクセス、html収集
sqlite3でデータベース保持
pandasでデータフレーム作成
Matplotlibでグラフ作成
とまぁ、これまで作ってきたものを総動員しただけ。
◆スクリプトは以下
◆ほか、機能
一応、下段エリアの情報をクリックすると、上段側で表示する。
DBへの書き込み可能だけど、収集した天気情報を自分で書き換える必要ないからなぁ・・・あんまり意味ない機能。
◆CSV出力
一応CSV出力可能。
sqliteから吐き出してるだけ。
せっかくDB記録したのに消しちゃった…ってなる前に使う機能かな。
◆CSV読込
吐き出したCSVを読む用。
カラム間違えるとDB受け付けないからね。
◆最後に
このウィジェット、情報源はtenki.jpのデータだけど、データを変えればなんにでも応用がきく。tenki.jpから取集したデータって、「8カラム×72レコード」の配列なので、自分がどんなデータを取集したいか?が決まればすぐに改変できる。
以前作ったplanetOSのデータがjsonなので、それを読めるようにしても面白いかもしれないな~。