続・Python による気象解析入門 (補遺)

気象庁アメダスの観測データ (日別値) を地図表示する


[アメダス時別値の風、気温、降水量、日照時間の地図上表示] では、2010-2019年の気象庁「気象観測月報」CD-ROM から、あらかじめ増田がCSV形式に変換しておいた アメダス時別値のファイルを読んで作図した。

2020年以後の気象庁アメダスや気象官署等の観測値は、 気象庁ウェブサイトからCSV形式でダウンロードすることができるが、 その形式は、やや複雑である。 ここでは、ダウンロードしたファイルを加工せずに作図するプログラム例を紹介する。 ただし、これは技巧的なところがある。 気象学的解析あるいは応用の目的には、まず解析者が使いやすいデータ形式に変形してから 統計処理や作図の作業をするほうがよいかもしれない。

【実は、アメダス観測点では、2021年3月から、 湿度の観測が (観測点ごとに開始日付がちがうが) はじまることに関連して、 日照時間は、大部分の地点で、現地観測から、衛星観測による推算にきりかえられている。 したがって残念ながら、今回しめす2024年の日照時間の分布は、 ほぼ、衛星観測からわかった値の分布をわざとあらくして見ているにすぎない。 しかし、2021年2月以前の日照時間の分布をみるのに応用すれば有効だと思う。】


観測データ (csv ファイル) のダウンロード

2024年8月22日から23日のあいだに、 気象庁ウェブサイトの「各種データ・資料」の 「過去の気象データ・ダウンロード」のページで、つぎのように指定して、csv ファイルをダウンロードした。 (今回は関東甲信越の都県についておこなった。)

このようにして得られた (いまのところ 46 都府県それぞれの) csvファイルを、 niigata では /home/masudako/ex/amedas2024data/ の下に置いた。一例をここにつける。

都道府県名をふくめたので、そうしないばあいにくらべて見出し行が1行ふえて、 最初の日時の観測値は 8行め (Python 流のかぞえかたでは第7行) にある。

各地点ごと、各気象要素ごとに、「品質情報」と「均質番号」の列がある。 また、気象官署等の降水量と日照時間には、「現象なし情報」の列もある。 したがって、1地点あたり、気象官署等のばあいは 17列、一般のアメダス地点のばあいは 15列をつかっている。


観測地点表

アメダスの観測点の情報は、気象庁ウェブサイトのつぎのページにある。

2023年 7月31日に、そのページにあった 「最新ファイル(適用日:2023年3月23日)」のうちの 「地域気象観測所一覧 [ZIP圧縮形式]」をダウンロードした。ファイル名は ame_master.zip であり、 展開すると ame_master_20230323.csv がある。日本語文字をふくんでおり、文字コードは Shift_JIS である。 これを「マスターファイル」とよぶ。

マスターファイルを LibreOffice Calc や Microsoft Excel で開いて観察し、 試行錯誤でつくった Python プログラムで変換して、つぎの地点表ファイルをつくった。 niigata では /home/masudako/ex/mapamedas2024 に置いた。

この表の各列の意味はつぎのとおり。

おぼえがき


プログラム例の実行のしかた

niiata では、つぎのようにして例文を自分のホームディレクトリの下にコピーする。 (空白とそのあとのピリオドに注意。)

cp -r /home/masudako/ex/mapamedas2024 .

そして「cd mapamedas2024」のあと、つぎのプログラムをそれぞれ実行できる。

地点表は mapamedas ディレクトリにふくめてある。 観測データの csv ファイルは、/home/masudako/ex/amedas2024data/ に置かれたものを読む。 (niigata 以外の計算機で実行するときには、観測データのファイルもコピーする必要がある。)


観測地点での観測値を地図上に表示する

「気象官署等」について [アメダス時別値の風、気温、降水量、日照時間の地図上表示]の a4a_map_tmp.py でやったのと同様に、 地点の位置に + 印をかき、その上側に数字で観測値を表示するプログラムを作成した。 (品質情報が 2~7 のばあいは数字を赤字にする。0~1 のばあいは赤字で「NA」と表示する。) 現状では、8月1日から21日までの毎日の日照時間を 1日ごとに地図上に作図し、png ファイルで書きだすようになっている。

利用の際に変更すること

気象要素を変えるには jvar にあたえる値を変えればよい。 (0:日平均気温、1:日最高気温、2:日最低気温、3:日降水量、4:日照時間)。

対象となる日付を変えるには、krecstart, krecend にあたえる値を変えればよい。 (ここにあたえる値は、2024年 8月 1日を 0 とした とおしの日付である。 calendar か datetime をつかえばもっとわかりやすくできるが、ためしにつくったままになっている。)

表示する地図の範囲を変えるには、 lonmin, lonmax, latmin, latmax にあたえる値を変える。 それとともに、対象となる地点がふくまれる都道府県も変わるので、 regionlist の内容も変える (コメント行で列挙されているものからえらぶ)。

luce, hamana 以外の計算機で実行するばあいは、 datapath (csvファイルが置かれたところ), imagefilepath (結果の画像ファイルが置かれるところ), shapefilepath (県境の地理データが置かれたところ) を、それぞれの計算機の事情にあわせて修正する。 地点リストファイル amedas_stn_m20230804.csv が Python プログラムとは別のディレクトリに置かれている ばあいは、それを読む pd.read_csv( ) の中のそのファイル名にパス指定を追加する。

おぼえがき

複数の CSV ファイルをつないで処理する手順は、 旧ドキュメント [観測点ごとの気象データを図示する] に書かれたものと同じである [整理しなおす予定]。 ただし、CSVファイルの見出し行を1行でなく2行読み、都道府県名をチェックする。 また、気象官署等と一般のアメダス地点とで列の数がちがうことに対処する。

「気象官署等」のばあいにくらべて、地図の同じ範囲に表示される地点の数がふえるので、 文字の大きさは変えず、figure で設定する画面を大きくした。


観測地点での観測値と、それを空間内挿してつくった等値線を地図上に表示する

「気象官署等」の海面気圧について [観測点ごとの気象データを図示する]の a4c_map_tmp_contour.py で やったのと同様に、 アメダスの観測値 (の日照時間) を、そのまま数字で表示するのとかさねて、 scipy.interpolate によって緯度経度の格子点に線形内挿し、 matplotlib の contour によって等値線をひくプログラムをつくった。

利用の際に変更すること

気象要素の指定は map_amedas_daily.py と同様である。 ただし、等値線レベルをあたえる配列 levels0 と levels1 の内容は、 日照時間のためのものだけ用意しており、他の気象要素については追加する必要がある。

表示する地図の範囲の指定も map_amedas_daily.py と同様だが、 さらに、(地図の範囲とは別に) 格子点データを作成する範囲 lonming, lonmaxg, latming, latmaxg も変える必要がある。

おぼえがき

格子点間隔は、「気象官署等」のプログラム例では、緯度・経度 0.25度としたが、 今回は、緯度・経度 0.1度とした。 これは観測点の平均間隔よりはだいぶこまかく、 いわば情報の水増しになっているが、等値線を等値線らしく表示するにはこのくらいあったほうがよいと思う。

観測点でかこまれていない領域について機械的にひかせた等値線は不適切である可能性が高いが、 ここでは scipy.interpolate が計算した格子点値をそのままつかって機械的に等値線をひいていることに 注意してほしい。


1地点の観測値の時系列をグラフにする

[アメダス時別値の風、気温、降水量、日照時間の地図上表示]の a1b_graph_tmp.py などと同様に、 アメダスの 1地点の日別値の時系列をグラフにするプログラムをつくった。 上段に気温 (最高・平均・最低)、中段に日照時間、下段に降水量をしめす。 ただし、品質情報のチェックがまだできていない。(それで version 1 としてある。)

期間については、まず syrmo にあたえる文字列 (現状では '202408') を、 データファイルにあわせて変更する。 横軸の尺度は、データファイルの内容にあるはじめの日から31日間のデータを表示できるように設定している。

地点名は、stnamesel にあたえる文字列として、ローマ字 (最初の文字だけ大文字) で指定する。 それにあわせて、region に、都府県名 (北海道は振興局名にする予定) をローマ字 (全部小文字) で指定する。

このプログラム例では、降水量だけを観測している地点では、 気温と日照時間のグラフは内容が空白になり、画面がもったいない。 その対策には、figure で指定する寸法を小さくする、1画面に複数地点を入れるなどの プログラム変更がありうる。


(2023-08-05, 2023-08-11, 2023-08-14, 2023-11-10)
増田 耕一 (MASUDA Kooiti)
増田の [B, F, G 合同セミナーのページ] [立正大学用教材目次] [計算機を利用した気象分野の実習教材目次] [教材目次]