気象庁 MSM 解析値の概略は、、 [気象庁のMSM解析値 (京大生存研のNetCDF版) を GrADS で 読む] のページに書いた。
気象庁から発信されている形式は GRIB だが、 ここでは、京大生存研で netCDF形式に変換されたものをつかう。 Python には netCDF を読み書きするパッケージがあるので、 それをつかうのがよさそうだ。 しかし、わたしは、まだそのつかいかたを修得していない。
ここでは、 GrADS で netCDF を読んで単純バイナリ形式で書きだし、 Python で単純バイナリ形式ののデータを読んで作図する手順をしめす。
この手順には、つぎのような欠点がある。
したがって、この方法は MSM解析値のうち水平2次元の量をふくむサブセット「MSM-S」にかぎってつかうことにする。 気圧座標の3次元の量をふくむ「MSM-P」については、 Python で netCDF を読む方法を修得してからあつかうことにしたい。
2022年 8月21日 から 9月17日までを対象とする。 (8月24-25日の観測実習の期間をふくむように設定し、その後に延長した。)
京大生存研の http://database.rish.kyoto-u.ac.jp/arch/jmadata/data/gpv/netcdf/MSM-S/ の下の 2022 のディレクトリにある各日のファイルをダウンロードした。 ファイルは 1日ごと (UTCの0時から23時まで) になっており、 8月21日ならば「0821.nc」のような名まえになっている。
この netCDF ファイルは、GrADS で「sdfopen 0821.nc」のようにすれば 開くことができる。 しかし、時系列としてつながるファイルをつづけて読むのにはこの方法では 不便なので、つぎのような ctl ファイルをつくり、 GrADS で「xdfopen msm_s_hourly202208.ctl」の形で開くことにする。 (この ctl ファイルは xdfopen 用であり、open 用でないことに注意。)
つぎの変数をあつかうことができる。
[注]
上にあげた 6つの変数の値を、それぞれ単純バイナリ形式で書きだす。 ただし、毎時ではなく 3時間おき (UTCの 0, 3, 6, 9, 12, 15, 18, 21時) の値を 書きだすことにした。 これが解析値 (観測値をとりこんだ値) で、他の時刻の値は予報値だからである。 上の ctl ファイルがあることを前提として、 つぎのスクリプトを GrADS の中で実行すればよい。 (結果のファイルが置かれるディレクトリなどの準備が必要だが、質問があれば説明する。)
東アジア (日本付近) の 北緯 20~50度、東経 120~150度 の範囲の地図を Cartopy をつかって描き、 対象期間の3時間きざみの各時刻 の 海面気圧の等値線を contour でひいてみた。 プログラムはつぎのものである。
[格子点型の気象データ (JRA-55 海面気圧) の地図上表示 (セミナー教材 2022-07-05)]とは、 材料としたデータがちがうだけである。 そこでつかった JRA-55 は緯度経度 1.25度格子、 MSM-S は 緯度 0.05度、経度 0.0625度 (約 5 km) の格子なので、 等圧線の空間的くわしさがかなりちがう。
例として、2022年8月24日 06 UTC (15 JST) の MSM-S による等圧線図をしめす。
関東地方とその周辺 (仮称 the Greater Kanto なので gkanto) の 北緯 35~38度、東経 137.5~141.5度 の範囲の地図を Cartopy をつかって描き、 対象期間の3時間きざみの各時刻 の 地上風 の風速ベクトルの大きさによって contourf でぬりわけ、 風速ベクトルを quiver で矢印表示してみた。 矢印の寸法や形、ぬりわけの色の選択などが、うまくないが、ひとまずできたものをしめしておく。 プログラムはつぎのものである。
例として、2022年8月24日 06 UTC (15 JST) の MSM-S による地上風の図をしめす。
海上のほうが陸上よりも風が強い。実際にそうなのだろうが、モデルでは誇張されているかもしれない。 海上で矢印が明確に見えるようにすると陸上では風向がよくわからず、 陸上の風向がわかるようにすると海上で矢印がぶつかりあってしまう。 どちらを見たいかによって、矢印の寸法のきめかたをつかいわけるしかなさそうだ。