1995-2005年の解析雨量を読む
[2023-07-24] プログラムを改訂しました。
圧縮をといたデータファイルを、1日ごとでなく、1時間ごとにわけることにしました。
気象庁の解析雨量のうち、2005年までは、気象庁独自の形式で記録されています。
これを Python で読んで作図することができたので紹介します。
日時は、日本時間 (JST) で記録されています。
(2006年以後のGRIB2形式は、 世界時 (UTC) になりました。)
時間間隔は 1時間で、1日のデータは 1時から 24時までです。
(24時は、翌日の 0 時ですが、このページのプログラム例では24時としてあつかいました。
自分のプログラムどうしでもあつかいが一定していません。)
【2003年6月から、データの時間間隔が 30分になりました。
しかし、30分雨量ではなく、1時間雨量が記録されています。
わたしは、1日24回、毎正時のデータをつかうことにします。】
格子間隔は 2001年まで、約 5 km (緯度 0.05度、経度 0.0625 度)、
2002年からは、その半分の、約 2.5 km (緯度 0.025度、経度 0.03125度) です。
2001年までは、日本の大部分をふくむ「J」領域と、沖縄を中心とする「O」領域のファイルが
あります。ここでは「J」だけ処理しました。
雨量は、 0.1 mm/h を単位として記録されています。
わたしのバイナリデータでもそのままにし、作図のときに 10 でわることにしました。
なお、データ欠損は「-1」という値で表現されており、
わたしの作図プログラムでは -0.1 mm/h であるかのようにあつかっています。
気象庁のドキュメントのローカルコピー
気象庁のデータ形式から単純バイナリ (4バイト浮動小数点数) への変換
単純バイナリにしたものを Python (Carotopy) で 地図上に作図
1時間ずつずれた3時間ごとの積算値を作図する [2023-07-25 追加]
2006年以後のデータについての [解析雨量を Pythonで読み、作図する (試作版)] への 2023-06-30 補足と同様に、
2005年以前のデータについて、1時間ずつずれた3時間ごとの積算値をつくり地図上に表示するプログラムを作成した。
- あらかじめ、対象期間について、ku19952005_conv.py を実行ずみであることを前提とし、
それが出力した単純バイナリファイルを読んで、積算と作図をおこなう。
- 日時の指定を、Pandas の date_range で日付のリストを生成して、それをつかって for でループをまわす方法によることにした。
例文ではつぎのようになっている (2004年9月23日 日本時間 1時 からはじまる 26時間)。
- datetime_list = pd.date_range(start='2004-09-23 01:00:00', periods=26, freq='H')
- ユーザーは、start に与える値を実際に計算させたい期間の最初の時刻にすればよい。
period に与えた個数の1時間値を読み込み、それよりも2個すくない3時間積算値を作図する。
- ただし、(2006年以後のデータをあつかうプログラムでは、日時を世界時 (UTC) で指定するようになっているが、ここでは)
ここで指定する日時は 日本標準時 (JST) としてあつかわれる。
- また、ku19952005_conv.py の出力には「24時」のデータがあるが、
datetime_list にそれを指定する際には翌日の 0 時のデータとしてあつかう。
日付が月の切れめ、年の切れめにまたがるばあいも処理できるようにしたが、
2001/2002年の切れめは (格子のちがいに対応していないので) ただしく処理されない。
(2005/2006年の切れめは、2006年以後のデータ用のプログラムをつかえばよい。)
- プログラム内部では、読みこんだうちでいちばん新しい雨量の値を 2次元配列 rain に、
2ステップまえの値を rainbakbak、1ステップ前の値を rainbak に代入してもつようにしている。
(ひとつの3次元配列にまとめたほうがきれいなプログラムになると思うが、まだ成功していない。)
- 1995~2001年のデータに適用するには、
origlon, deltalon, origlat, deltalat, nlondata, nlatdata, lon, lat にあたえる値を
ku19952001_map_hourly.py にあわせて修正すればよい。
(2022-11-08, 2022-11-09) 2023-07-24, 2023-07-25
増田 耕一 (MASUDA Kooiti)
[3年生・卒論生セミナーのページ]