新品互換用パソコン バッテリー、ACアダプタ、ご安心購入!
ノートpcバッテリーの専門店



人気の検索: ADP-18TB | TPC-BA50| FR463

容量 電圧 製品一覧

スペシャル

ゼロからはじめてみる日本語プログラミング「なでしこ」 第53回 過去10年東京で30度超えの日は増えている?

今年の夏休みはどこに行かないで家で静かにしていようという方も多いそうです。とは言え、家に居ても暑さ対策が必要です。地球温暖化と言われていますが、本当に暑くなっているのでしょうか。実際に過去10年の最高気温の情報を調べて、30度超の日数が増えているのか集計してみようと思います。

なでしこで15パズルを作ろう

○過去の気象情報はダウンロードできる

当然ですが、私が個人的に過去10年間の気温を記録していた訳もありません。過去の気象情報は、気象庁のWebサイトからダウンロードすることができます。気象庁のこの取り組みは素晴らしいものです。過去何十年もの気象情報(天気、最高気温、最低気温、平均気温、降水量、日射時間など)を選んでダウンロードすることができます。

気象庁 > 各種データ・資料 > 過去の気象データ・ダウンロード
[URL] https://www.data.jma.go.jp/gmd/risk/obsdl/index.php

今回は、過去10年の最高気温を調べます。ここでは、地点を「東京」、項目でデータの種類を「日別値」必要項目を「日平均気温・日最高気温」、期間を「2010年1月1日から2020年1月1日」に設定して、CSVファイルの形式でダウンロードしました。
○ダウンロードしたデータを加工しよう

そして、ExcelでCSVファイルを開いてみました。すると、指定項目について品質情報など付加的な情報も一緒についていました。

今回は、最高気温を集計するのが目的ですから、Excel上でちょっとデータを加工して、「日付,平均気温,最高気温」と3列だけに加工してみます。ここでは、以下のように加工してみました。

上記の10年分の最高気温日別CSVデータをこちらのGistにアップしました。Gistのページにあるデータは、なでしこ3の簡易エディタでダウンロードして扱うことができます。GitHubのアカウントがあれば、自分で作ったデータも配置できます。
○CSVデータを取り込もう

それでは、なでしこにGistからデータを取り込んでみましょう。Webブラウザで『なでしこの簡易エディタ』を開いて、以下のプログラムを実行してみましょう。

ブラウザの保存領域(ローカルストレージ)に「data.csv」という名前で気象データを保存します。

「CSVファイルを取得します」と表示。
URL=『https://gist.githubusercontent.com/kujirahand/aa130b7edf3c6d150b5399d37cd65654/raw/b0265f7fd44b529b29b66ed05ef30fdee5f1b705/data.csv』
逐次実行
先に、URLをHTTP取得。
次に、「取得しました!」を表示。
次に、対象を「data.csv」に保存。
ここまで。

上記プログラムを実行すると、非同期通信(Ajax)でデータを取得してブラウザ内に保存します。

○集計してみよう

次に、簡単にプログラムを作って集計してみましょう。10年間で30度超えの日が何日あったのか数えるだけのプログラムです。以下のようになります。(上記のプログラムを実行して、data.csvをローカルに保存してあることを前提にしています。)

日数=0
「data.csv」を開く。# --- (*1)
CSV取得して反復
F日付=それ[0]。
F平均=それ[1]。
F最高=それ[2] #---(*2)
もし、F最高≧30ならば # --- (*3)
日数=日数+1。
F日付を表示。
ここまで。
ここまで。
「10年で30度越の日は{日数}日ありました」と表示。

プログラムを実行すると、最高気温が30度超えの日を表示し、最後に合計日数を表示します。実行すると、結構な日数あることが分かります。

プログラムを確認してみましょう。プログラムの(*1)の部分で先ほどダウンロードした「data.csv」を読み込みます。そして、CSVをなでしこの配列形式にしたら「反復」構文を使って、繰り返し処理を行います。

(*2)の部分で、最高気温を取り出して、(*3)の部分でその値が30以上かどうかを判定します。そして、30度以上であれば、日付を表示して、日数をカウントアップします。
○年々増えているのか判定しよう

さて、基本的な処理ができたので、目的のプログラムを作ってみたいと思います。果たして最高気温が30度超えの日は年々増えているのでしょうか。西暦年を使ってカウントしてみましょう。