なりなり日記

Appleと折りたたみ自転車(BROMPTON / Tern Vektron S10 / BESV PSF1)の情報を中心に発信中!

【Python入門】iPadとJuno for Jupyterと気象庁の気象データを使って旅行日程を決める


スポンサーリンク

こんにちは、なりなりです(^ ^)

PCより手軽で起動が早いiPadとキーボードの組み合わせは、こうしてブログを書いていても快適で、やはり最高です!

家ではiPhoneを使う頻度が大きく下がりましたし、電車で遠出する時はiPadを持って出かけることも増えそうです。

iPadでのPythonプログラミング

【Python入門】Pythonista 3の機能を拡張するStaShをインストールしてみたけど… - なりなり日記

【Python入門】GoogleのクラウドPython開発環境ColaboratoryはiPadでは使いにくい - なりなり日記

【Python入門】Juno for Jupyterを使ってiPadでPythonプログラミング - なりなり日記

Pythonでのプログラミングに関しても、紆余曲折の末

Juno Connect

Juno Connect

  • Rational Matter
  • 開発ツール
  • ¥1,220
Junoを使えばPCと同様にJupyterでのプログラミングが快適に出来ることが分かりました。


【連載】ゼロからはじめるPython | TECH+
Pythonプログラミング入門としては、こちら、マイナビの「ゼロからはじめるPython」がとてもいいので、今回はこちらの記事を参考にして作業を進めます。


ゼロからはじめるPython(12) 過去の気象情報をもとに運動会の開催日を選んでみよう(その1) - 気象データの入手と簡単な統計 | TECH+
僕が「おお!」と思ったのがこちら。Pythonで気象庁の気象情報を使って運動会の日を決めようという記事です。

僕らの様に自転車旅行を計画する場合などは天気は特に重要なので、それをプログラミングによって決めようなんて考えたことも有りませんでした。

気象データをダウンロード

気象庁|過去の気象データ・ダウンロード

まず、こちら気象庁の気象データをダウンロードします。今回は、既に決まっている5月の高松、小豆島旅行の日程が、気象データ的にどうなのか確認します。

本当は日程を決める前に試したかったですけど(^^;;


今回は

  • 地点: 香川県 >
  • 項目1つ目: 降水 > 降水量の日合計
  • 項目2つ目: 雲量/天気 > 天気概況(昼: 06-18時)
  • 期間: 5月1日から5月31日まで、1998年から2018年まで

自転車で走るのは主に小豆島なので、本当は内海の情報が欲しかったのですが、確認したところ天気概況が空欄だったので高松にしました。

Numbersでデータ加工


CSVをダウンロードしてみると



文字化けしてしまうのですが、Numbersにコピーすると



正しく表示されます。



Numbersで編集して必要な降水量と天気概要の列だけを残してDropboxにCSV形式で保存すると



文字化けが無くなりました。
恐らく気象庁のデータはSJISなのですが、Numbersで読み込んで保存するとUnicodeに変換してくれるのでしょう。

PythonのPandasではShift JISも扱えるので、Unicode変換は必要無いはずですけど。

JunoでPandasを使って解析



ファイルをアップロードしてPandasで表示してみました。

import pandas as pd
import re

df = pd.read_csv("data2.csv")

sumd ={}
for row in df.iterrows():
    ymd = row[1]["年月日"]
    kousui = row[1]["降水量の合計"]
    md = re.sub(r'\d{4}\/', '', ymd)
    if not (md in sumd): sumd[md] = 0
    sumd[md] += kousui
result = sorted(sumd.items(), key=lambda n: n[1])
top30 = result[0:30]
pd.DataFrame(top30, columns=['日付', '降水量'])

日付ごとの降水量を集計するプログラムがこちら。プログラムの説明は「ゼロからはじめるPython」にも記載されています。

但し、現状のJunoでは日本語入力が出来ずコピペしました。

App Storeのレビューにもありますが、近いうちに対応版がリリースされるとのこと。日本語入力未対応が現状のJunoの最大の欠点かも。

解析結果


実行結果がこちらです。Python自体は日本語対応しているので、実行には支障がありません。


因みに、僕ら夫婦はGWを避けて来週2連休を取り、5/15東京発のサンライズ瀬戸で高松に行って、16、17、18と高松、小豆島を自転車旅行するのですが、

  • 16日 :29位
  • 17日 :16位
  • 18日 :6位

という結果で有り、うーん、統計的にはあまり良くないですね…
後は神に祈ります…

但し、今週末でも

  • 9日:9位
  • 10日:27位
  • 11日:24位

なので、これよりましか…

翌週なら

  • 23日:30位
  • 24日:28位
  • 25日:15位

これは最悪。梅雨が近いですからね。

結局、5月なら天気的にはGWが良いという結論ですか。
でも、GW中の宿は高いし激混みだし、サンライズなんて取れないしな。


以上、iPadとJunoを使った簡単なデータ解析のご紹介でした。