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

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


[気象庁アメダスの観測データ (日別値) を地図表示する] と同様に、時別値 (1時間ごとの値) を作図してみる。


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

2023年8月6日のあいだに、 気象庁ウェブサイトの「各種データ・資料」の 「過去の気象データ・ダウンロード」のページで、つぎのように指定して、csv ファイルをダウンロードした。 (青森県から南、福井・岐阜・三重県から東の全都県についておこなった。 西日本と北海道についてやるかどうかは未定。)

このようにして得られた (いまのところ 23 都県それぞれの) csvファイルを、luce および hamana では /home/masuda/amedashourly/ の下に置いた。一例をここにつける。

見出し行の数が、なぜか日別値のばあいとちがい、 最初の日時の観測値は 7行め (Python 流のかぞえかたでは第6行) にある。

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


観測地点表

日別値のためにつくったものをそのままつかう。説明は[日別値のページ]を見てほしい。


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

luce と hamana では、アメダスの日別値のプログラム例と同じディレクトリに追加した。 したがって、つぎの準備てつづきは、日別値のばあいと同様である。

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

cp -r /home/masuda/mapamedas .

hamana ではつぎのようにする。

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

そして「cd mapamedas」のあと、「python3 map_amedas_hourly.py」と 「python3 map_contour_amedas_hourly.py」をそれぞれ実行できる。

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


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

現状では、6月 1日 1時 から 6月 4日 0時 までの気温を 1時間ごとに地図上に作図し、png ファイルで書きだすようになっている。

利用の際に変更すること

気象要素を変えるには jvar にあたえる値を変えればよい。 (0:気温、1:降水量)。

対象となる日時を変えるには、krecstart, krecend にあたえる値を変えればよい。 (ここにあたえる値は、2023年 6月 1日 1時 (JST) を 0 とした とおしの時間数で、 (いまあるデータファイルでは) 可能な値の最大は 71 である。 datetime をつかえばもっとわかりやすくできるが、ためしにつくったままになっている。)

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

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

おぼえがき

複数の csv ファイルをつないで処理する手順は、日別値のばあいと同じである。

気象庁の csv ファイルの「日付リテラル」は、 たとえば「2023/6/1 1:00:00」のような形になっている。 Python で想定している標準的な形は「2023-06-01 01:00:00」のような形である。 Python の datetime パッケージの strptime 関数で、 年月日は、変換書式 '%Y/%m/%d' を指定すると、そのまま読みとれる。 ところが、時分秒は、'%H:%M:%S' を指定すればよさそうなのだが、「時」が 1けただと、エラーになってしまう。 この例ならば「1:」のまえに「0」をおぎなってから strptime にあたえる必要がある。


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

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

利用の際に変更すること

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

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

おぼえがき

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

(これは空間データ処理技術ではなく対象に関することであり、時別値だけでなく日別値でもおこることだが、) 地上気温は地表面の標高に大きくよる。 山地があるばあい、まばらに分布する観測点の気温から空間内挿した気温の等値線は、 気温の水平分布を代表したものとはいいがたい。 たとえば、現在のプログラム例をそのまま実行した結果をみると、 富士山を中心とする低温域があるように見えるが、そのひろがりはかならずしも現実的ではない。 対策としては、標高が たとえば 1000 m 以上の地点を空間内挿からはずすことが考えられる。 それには、xp.append(), yp.append(), zp.append() を実行する条件が 「if qval[kstnobs] >= 5:」となっているのを 「if (qval[kstnobs] >= 5) and (dfstn.height[kstnlist] < 1000):」 と変えればよい。


1地点の観測値の時系列をグラフにする [2023-08-14 追加]

「気象官署等」のデータについて [観測点ごとの風のデータを図示する (2023-07-11)] の 「[32b] ひとつの地点の (ベクトルでない) 気象要素の観測値の時系列をグラフにする」のところでやったのと同様に、 アメダスの 1地点の 気温と降水量の日別値の時系列をグラフにするプログラムをつくった。 上に気温、下に降水量をしめす。 ただし、品質情報のチェックがまだできていないので、version 1 としておく。

期間については、まず syrmo にあたえる文字列 (現状では '20230601_03') を、 データファイルにあわせて変更する。 図の横軸を説明する ax.set_xtitle にあたえる文字列もあわせて変更する。 横軸の尺度はデータファイルにふくまれる期間がおさまるように設定される。

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

【[注] 2023年8月4日に用意したアメダス地点表 amedas_stn_m20230804.csv をつかって 地点名 'Kumagaya' を指定してこのプログラムをうごかすと、ただしく動作しない。 原因は、地点表データのまちがいだった。(Kuma であるべき地点名も Kumagaya となっていた。 わたしがローマ字を手入力で追加した際に予測入力を修正しそこなったのだった。) 2023年8月13/14日の深夜にさしかえたので、それ以前にこの地点表ファイルをつかった人は、 luce では、自分の mapamedas ディレクトリに cd して 「/home/masuda/mapamedas/amedas_stn_m20230804.csv .」をやりなおしてほしい。 ウェブページにある地点表ファイルをつかった人は、ダウンロードしなおしてほしい。】


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