気象観測データ時系列のグラフ (Python による試作)
[気象庁の観測データを使う (1)](板倉用教材)、
[気象観測データのグラフ作成と基本的な統計処理 (Python による試作)]に
つづいて、ひとつの観測点の気象データの時系列を、時間を横軸にとってグラフにする。
そのようなことは、
[気象観測データ (多地点) の空間分布と時系列の作図 (Python による試作)]
(以下「多地点の教材」とよぶ) でもしている。
しかし、そこでの例文は、つぎのような難点があった。
- 多地点の空間分布を作図するついでに時系列グラフもつくることにしたので、
時系列グラフが目的ならば必要のない手順がふくまれている。
- 期間がひとつの月におさまる期間だったので、時間の変数として年月日の日をつかった。
期間が月にまたがるばあいへの応用がむずかしい。
ここでは、1地点だけのデータをつかうことにし、
また、日付を Python の datetime パッケージの date 型であつかうことによって
任意の期間をあつかえるようにする。
データ
気象庁の「過去の気象データ ダウンロード」のサイトから (2022-06-01 に)
CSV 形式のデータを取得した。
- data_daily_snow_fujiwara.csv (日本語文字コード Shift_JIS)
- 地点は、群馬県の藤原である。(この地点に注目した事情は「多地点の教材」に書いた。)
- 期間は、2012年6月1日から 2022年5月31日までとした。
- 気象要素は、日別値のうち、つぎのものである。
- 「最深積雪 (cm)」 (わたしは「日最大積雪深」とよぶ)
- 「降雪量合計 (cm)」 (わたしは「日降雪深」とよぶ)
- 「降水量の日合計 (mm)」 (わたしは「日降水量」とよぶ)
- 日付の表現は「日付リテラル」とする。(「多地点の教材」では「年、月、日にわけて格納」にしたが、ここでは変えた。)
作図プログラム例
- grapy_daily_snow_v20220602.py (文字コード UTF-8)
- 2012年12月~2013年3月から、2021年12月~2022年4月まで、
各年の冬 4か月間の、日降雪深を縦棒で、日最大積雪深を〇印で、
1つの画面を上下に分割して表示する。
(降水量はいまのところつかっていない。)
- プログラムの終わりの部分の「plt.show()」をいかすと画面表示になる。
1画面表示するごとに止まる。人が画面消去の操作をするとつぎの画面にうつる。
- 「# 画像ファイルに保存」につづく 3つの文をいかすと、図は画像ファイルに記録される。
ファイル名には地点名をローマ字小文字でふくめることにした。
(OSによって日本語文字が化けたり、大文字と小文字の区別があったりなかったりすることによる
問題がおきうるので。)
- 観測値の「品質情報」が 8 でないときは欠測あつかいとし、
便宜上、負の値をあたえて、グラフでは横軸の下に短い棒がのびたり〇印が置かれたりするようにした。
【実際には「品質情報」が 4 や 5 のときは、不完全ながら観測値がある。
「多地点の教材」では、縦棒と〇印の一方だけをかくことで表現した。
ここでもそうしたほうがよいかもしれないが、そのための変更は追って考えたい。】
- 他の地点についても、データファイルと地点名をかえれば同様に作図できるはずだ。
ただし、観測地点が「気象官署等」だと、「現象なし情報」の列がくわわって、
CSVの第何列の内容が何であるかの対応をつけなおす必要があることがある。
(read_csv の names=( ... ) のなかの列名の列挙をなおせばよい。
たとえば、積雪深の列 'sdepth' のつぎに
積雪深の現象なし情報の列 'x_sdepth' を追加する。)
結果の例
[2013]
[2014]
[2015]
[2016]
[2017]
[2018]
[2019]
[2020]
[2021]
[2022]
2022-06-02
増田 耕一 (MASUDA Kooiti)