台風経路データ (RSMC Best Track Data) を利用する
これは予定したものの途中までの暫定版です。
プログラムはまだこのウェブページに置いていません。
(プログラムの役わり分担を変更する可能性があります。
とくに、extract_tracks.py と lonlat_to_csv.py の作業を
一気にやったほうがよいと思っていますが、変更は仕様をかためてからにします。)
データ
1951年以来の台風の経路や中心気圧などの情報は、
気象庁ウェブサイトの「各種データ・資料」の下の「過去の台風情報」のページにまとめられている。
そのうちの「台風位置表」は、それぞれの台風について、
6時間または3時間ごとの緯度・経度・中心気圧などを示した表だが、
PDFファイルになっていて、目で読むのにはよいが計算機処理にはむかない。
ほぼ同じ情報が、
そのウェブページの「台風のベストトラックデータ」の項目からリンクされた
つぎのサイトにある。
これは日本の気象庁が WMO (世界気象機関) からひきうけている
「Regional Specialized Meteorological Center (RSMC) Tokyo - Typhoon Center」
という職務で提供しているものである。
全期間のデータが 1つの zip ファイルにまとめられている。
そのファイルの内容の書式は「Format of RSMC Best Track Data」のテキストファイルに書かれている。
なお「History of Revision」はそのファイルの改訂履歴である。
2025年6月6日に、
以上のファイルをダウンロードして、niigata および hamana の /raid/tctrack/from_jma/ に置いた。
zipファイルを展開すると、1つの大きなテキストファイル bst_all.txt がある。
これを暫定的に /raid/tctrack/data/ に置いた。
bst_all.txt には、 1つの台風について1行の要約情報と、
6時間または3時間ごとの1時刻ごとの情報の行がある。
/raid/tctrack/py/make_inventory.py のプログラムで、
要約情報の行だけをとりだし、フィールドくぎりをコンマにかえて
(しかし、各フィールドの内容は変形しないで) ぬきだした。
その結果が /raid/tctrack/py/inventory.csv である。
/raid/tctrack/py/extract_tracks.py のプログラムで、
それぞれの台風についての記録をとりだし、コンマくぎりにかえて、
/raid/tctrack/track/ の下に、たとえば 9922.csv のようなファイル名で置いた。
この例で 99 は西暦年の下2けたで、51-99 のばあいは 1900 を、
その他のばあいは 2000 をおぎなえばよい。
この例で 22 はその年のうちの台風の通し番号である。
(くわしくは、RSMC Typhoon Center がつけた
Tropical Storm 級以上の熱帯低気圧 (便宜上「台風」としておく) の
通し番号である。ちかごろは日本の気象庁の台風番号と一致しているが、
過去には一致していないこともある。1950年代にはあきらかに一致していない。)
日時は世界時 (UTC) で記録されている。
熱帯低気圧は風速によって階級わけされているが、
温帯低気圧化したばあいはひとまとめにされている。
bst_all.txt ではこれが数字でコード化されている。
プログラム /raid/track/py/check_a_track.py は、そのコードを、
TD, TS, STS, Ty, L という文字におきかえて示すものである。
緯度・経度は 0.1度 単位でしめされている。
風速は「ノット」(knot) 単位でしめされている。
その数値に 0.514 をかければ m/s 単位の数値になる。
ひとつの台風について、/raid/tcrack/track にある経路のcsvファイルを読み、
時刻ごとの地図上の中心位置に〇をかき、
日時、台風番号、中心気圧、最大風速を表示するプログラム
/raid/track/py/map_track_1.py を試作した。
台風経路データの利用の試み
bst_all.txt には、
風速が「50ノット以上」と「30ノット以上」
(それぞれ 25 m/s 以上、15 m/s 以上とみてよい) のところのひろがり
(円で近似したときの半径と、どちらの方向にいちばんひろがっているか) の情報もある。
台風の被害は中心付近だけでおこるものではないので、これも見るべきだが、
ここではまたつかう用意ができていない。
この節でしめすプログラムは、
niigata の /home/masudako/ex/tctrack/ に置いている。
利用者が「cp -r /home/masudako/ex/tctrack .」でコピーして
tctrack ディレクトリで作業することを想定している。
ただし、まだ仕様がおちついておらず、たびたび変更するだろう。
- [map_track_1_v20251118.py]
- /raid/tctrack/track/ の下にある 1つの csvファイルを読み、
1つの台風の経路情報 (各時刻の中心位置、気圧、風速) を地図上に作図する。
/raid/tctrack/py/map_track_1.py と同じで、図の大きさや文字の大きさなどを調整しただけ。
- [lonlat_to_csv_v20251119.py]
- 1つの台風の経路情報を、気象庁が日本語で発表している形に近づける。
日時を日本標準時 (JST) に、風速を m/s に換算するなど。
結果は同じディレクトリにできる。
結果の例として [201919track.csv],
[200206track.csv] を置いてある。
【この処理は extract_tracks の処理にくみこんで
全部の台風についてやってしまったほうがよいかもしれない。
そのばあいは強風域半径の海里から km への換算もふくめたい。】
- [time_interp_v20251119.py]
- lonlat_to_csv のプログラムの出力の経路情報を読み、
緯度・経度を時間について線形内挿して、1時間間隔の中心位置情報を得る。
(内挿の計算は、Numpy の interp 関数によった。)
ついでに、中心位置の緯度経度にあたる、気象庁解析雨量 (2006年以後の仕様) の
東西方向 (西から) の画像番号 ix、南北方向 (北から) の画素番号 iy をもとめている。
(いまのところ) 中心位置以外の情報 (強さ階級など) は、時間内挿していないので、
出力していない。
結果の例として [201919track1h.csv],
[201919track1h.csv] を置いてある。
- [ku_map_with_tctrack_center_v20251124.py]
- time_interp のプログラムの出力の経路情報を読み、
解析雨量を表示した地図上の台風の中心位置に × 印をかく。
【(これまでわたしがつくってきた解析雨量作図プログラムでは
等間隔の時間ステップで作業していたが、今回のプログラムの理屈はそうではなく)
入力ファイルにある日時を読み、それが
datetimejststart から datetimejstend で指定した期間にふくまれるばあいに
作業するようにした。
時間内挿まえの中心位置情報ファイルを入力とすることは、
現状のプログラムのままではできないが、修正はむずかしくない。】
- [ku_map_with_tctrack_rect_v20251124.py]
- time_interp のプログラムの出力の経路情報を読み、
解析雨量を表示した地図上で、台風の中心位置を中心とする長方形を表示する。
(解析雨量の値を現実とちがう値に変えてから contourf で表示している。)
長方形の範囲は、東西方向 ± idx (現在のバージョンでは 90) 画素、
南北方向 ± jdy (現在のバージョンでは 100) 画素 である。
(1画素は、経度 1/80度、緯度 1/120度で、約 1 km である。)
【長方形が解析雨量があたえられた範囲外にはみだすばあいへの対処は、まだできていない。】
- 【このプログラムの目的には、解析雨量の値を表示したまま
長方形のわくをかさねるほうがよいので、
そのようなプログラムをつくったらそれで置きかえる予定。】
- [ku_extract_moving_box_v20251207.py]
- time_interp のプログラムの出力の1時間間隔の経路情報を読み、
解析雨量のデータを読んで、
各時刻の台風の中心位置を中心とした長方形の範囲の値を、
バイナリ (64ビット浮動小数点数、増田の符丁で 'r8l' [最後の字は小文字のエル]) で書き出す。
長方形の範囲は、東西方向 ± idx (現在のバージョンでは 90) 画素、
南北方向 ± jdy (現在のバージョンでは 100) 画素 である。
(1画素は、経度 1/80度、緯度 1/120度で、約 1 km である。)
【長方形が解析雨量があたえられた範囲外にはみだすばあいへの対処は、まだできていない。】
- 1時刻あたりの画素数は (2*jdy+1)*(2*idx+1)、
1時刻あたりのデータ量 (バイト数) はその 8倍、
出力ファイルのデータ量はそれに出力対象時刻の数をかけたものである。
- 出力対象の開始・終了時刻は、台風経路データのある範囲で、
それとは独立にあたえらえるようにした。
- 出力ファイル名には、実際の出力内容の最初の時刻をいれるようにした。
- [ku_composite_v20251207.py]
- ku_extract_moving_box のプログラムの出力
(台風の中心に相対的な位置になっている) を、時間平均する。
- 入力データの時間ステップは 1時間であることを想定している。
- 入力データの開始から何時間後 (0でもよい) から何時間後までを
時間平均対象とするかを指定できる。
- idx, jdy は ku_extract_moving_box での指定にあわせる必要がある。
- 出力データの画素数は (2*jdy+1)*(2*idx+1)、
1時刻あたりのデータ量 (バイト数) はその 8倍である。
- 解析雨量の格子は緯度経度格子なので、距離で見た東西方向の格子間隔は緯度によっていくらかちがうが、
ここでは経度差の同じところを同じ位置とみなして平均している。
- [ku_map_composite_v20251211.py]
- ku_composite の出力 (1時間あたり降水量) を地図のような形で表示する。
実際の地理的場所には関係しなくなるので、Cartopy の地図投影機能をつかっていないが、
枠の表示は、中心からの緯度差・経度差の形にしてみた。
入力ファイル名は ku_composite の出力ファイル名にあわせてあり、
時間平均対象の最初の時刻の情報はあるが、最後の時刻の情報はない。
2025-11-25 .. 2025-12-11
増田 耕一 (MASUDA Kooiti)