気象衛星 ひまわり 6・7号のデータ (千葉大による緯度経度格子データ) を読む


[気象衛星 ひまわり 8号のデータ (千葉大による緯度経度格子データ) を読む] で、気象衛星 ひまわり8号 のデータ (千葉大学 環境リモートセンシング研究センター (CEReS) で緯度経度格子に変換されたもの) を読んで作図することについて、説明した。

千葉大 CEReS では、過去の、ひまわり 1~7号や、 ひまわり 5号 (GMS-5) と 6号 (MTSAT-1R) の間の期間、 アメリカ合衆国から借りて運用されていた GOES 9号の画像データも アーカイブして提供している。

ひまわり 6号 (MTSAT-1R) と 7号 (MTSAT-2) のデータには、 上記の「静止気象衛星ひまわりアーカイブ・ダウンロード情報のページ」の 「静止気象衛星ひまわり6-7号(MTSAT)情報」 のところに説明がある。 そのドキュメントには、データが置かれている FTPサイトは ftp://mtsat.cr.chiba-u.ac.jp/MTSAT-1R/gridded_V2.0/ , ftp://mtsat.cr.chiba-u.ac.jp/MTSAT-2/gridded_V2.0/ と書かれている。

実際に anonymous FTP で ftp://mtsat.cr.chiba-u.ac.jp にアクセスしてみた。 (立正大学ネットワーク内からはとくに許可をうけたマシンからでないと FTP がつかえない。 わたしは自宅からアクセスした。) サーバーは ftp://gms.cr.chiba-u.ac.jp と同じものらしい。

ここでは、MTSAT-2 (ひまわり 7号) のデータを取得することにした。 「MTSAT-2/gridded_V2.0」の下に、 緯度経度格子に変換されたデータ (タイムスタンプは 2017年) がある。 「grid-MTSAT-2.0/MTSAT-2」の下にもあり、同じもののようである。 (Unix の symbolic link の機能をつかって、FTPサーバーのディレクトリに別名をつけているのだろう。)

gridded の下には、たとえば「201401」のように名まえが 年・月の数字でできているディレクトリがあり、 その中にあるファイルは、たとえば 「201401010032.vis.tar.bz2」 「201401010032.ir.tar.bz2」のように名まえがついている。 数字の部分は、年、月、日、時、分 (UTC) である。 1時間のうちに vis, ir それぞれ複数の時刻のファイルがあるが、 ファイルの大きさからみて、分のところが「32」であるものが全球画像、 そのほかは部分画像と思われる。


事例

卒業研究で新潟県の大雪をあつかっている学生が 2014年 1月 10-11日 に注目しているので、 201401100032 から 201401111532 まで、分が「32」であるファイルをダウンロードした。 日本時間でいうと 1月10日 09:32 から 1月12日 00:32 である。 ただし可視については、世界時の「時」が 0 から 8 と 22 から 23 のもの (日本標準時の「時」が 7 から 17 のもの) にかぎった。


アーカイブの展開とファイル一覧の作成

【この部分は、Linux で作業したので、その手順を書いてある。 追って、Windows での作業手順におきかえる予定。 Windows 10 のばあい、tar コマンドはあるが、bunzip2 コマンドを追加する必要がある。】

まず、ダウンロードしたファイルの名まえのリストをつくった。(ls -1 の出力を redirect した。)

「tar.bz2」の形式のアーカイブファイルは、tar と bunzip2 がインストールされていることを前提として、 「tar jxvf アーカイブファイル名」で展開することができる。 ダウンロードされたファイルのそれぞれについてこのコマンドを実行するシェルスクリプトを (awk をつかって) つくり、実行した。

irのほうのアーカイブからは、たとえば 「IMG_DK01IR?_201401100032.geoss」の「?」のところが 1, 2, 3, 4になった4つのバイナリデータファイルと、 「hdr_ir?_201401100032_@@@.txt」の「?」のところが 1, 2, 3, 4、 「@@@」のところが 000, 001, 010 になった、ヘッダ (header) 情報のテキストファイルが出てくる。 バイナリデータファイルの大きさは 18000000 バイトである。

visのほうのアーカイブからは、たとえば 「IMG_DK01VIS_20140110032.geoss」のような名まえのバイナリデータファイルと、 「hdr_vis_201401100032_@@@.txt」の 「@@@」のところが 000, 001, ... 010 になったヘッダ情報のテキストファイルが出てくる。 バイナリデータファイルの大きさは 288000000 バイトである。

ここでは、赤外チャネルのうちの IR1 と、可視チャネル VIS を読むことにした。

バイナリデータファイルのカウント値から物理量への換算は、 毎回変わっている可能性があるが、おそらく変わっていないと判断して、 赤外バンド IR1 については、hdr_ir1_201401100032_001.txt から該当箇所をぬきだし、 「:=」を空白でおきかえて、「tbbtable.txt」をつくった。 可視については、hdr_vis_201401100032_001.txt の該当箇所の情報を、 下でのべる切り出しプログラムに組みこんだ。

つぎにのべる Python スクリプトを置くディレクトリに tbbtable.txt が置かれ、 その横ならび (同じ親ディレクトリの下) の 「expand_ir」というディレクトリに赤外 IR1、「expand_vis」というディレクトリに可視の 展開された「*..geoss」の形の名まえのファイルが置かれているようにする。


緯度経度範囲を指定した切り出しと、物理量への変換 (Python による)

千葉大 CEReS で緯度経度格子に変換されたデータの空間範囲はつぎのとおりである。

【「静止気象衛星ひまわりアーカイブ・ダウンロード情報のページ」に、 MTSAT-2の画像を MTSAT-1R と同じ範囲でつくりなおす予定と書いてあるので、 わたしは (2022-12-17 には) 同じ範囲になっていると思って処理してしまったが、 画像内容をみると、85度 ~ 205度 のままにちがいない。 ここでは (2023-01-21 に) 85度 ~ 205度として処理しなおした結果をしめす。】

画素間隔は、赤外チャネルでは緯度・経度 0.04度 (約 4 km)、 可視チャネルでは緯度・経度 0.01度 (約 1 km) である。

ここでは日本とその付近の総観規模の天気を見たいので、 北緯 20~50度、東経 120~150度の範囲を切り出すことにした。 画素数は、赤外では 750×750、可視では 3000×3000 となる。

MTSATのデータは、各画素 2バイトの 0から 65535 の間の整数値で収録されているが、 それは、赤外のばあいは輝度温度 (単位 K)、可視のばあいは反射 (無次元だがこのデータセットでは % 表示) [注] を仮にあらわすものであり、 本来の物理量に変換するための情報はヘッダ中にある。

ここでは、つぎの Python スクリプトによって、切り出しと物理量への変換を つづけておこなう。 できたファイルは、作業ディレクトリの横ならびの、 赤外は「tbb_japan」、可視は「refl_japan」のディレクトリに置かれる。

ひまわり 6号 (MTSAT-1R) のデータをあつかうばあいは、 プログラム中の lob を変更する。 切り出し範囲の左端を東経 120度とするばあいについての値を示す。

衛星ひまわり 6号 (MTSAT-1R)ひまわり 7号 (MTSAT-2)
赤外 の lob1000875
可視 の lob40003500

結果は、各画素が 4バイトの浮動小数点数のバイナリデータとして、 たとえば (2014年 12月 10日 00:32 UTC のばあい) つぎのようなファイルで保存される。


物理量に変換されたデータの作図 (Python による)

Python で、物理量に変換されたデータを読み、地図上に表示するプログラムをつくった。

緯度・経度の範囲は、つぎのものをこころみた。

Python スクリプトはつぎのものを試作した。 プログラム内で、「日」のループ、「時」のループをまわし、 「時」のはじめは最初の日とそれ以外、「時」のおわりは最後の日とそれ以外で変えられるようにして、 つづけて処理するようにした。 1時刻の図ができるごとに画像ファイル (PNG) を書きだすことにした。 画像ファイル名とそれが置かれるディレクトリ名は、スクリプトを見てほしい。

物理量の階級分けと色は、まったく暫定的なもので、もっとくふうしたほうがよいだろう。

輝度温度については、 ひとまず、ひまわり 8号 や GOES 9号 についてやったのと同様に、 およそ中央になる 250-260 K を薄い黄色、 そこから輝度温度が高いほうを赤系統、低いほうを青系統の段彩にしてみた。

ここでは、赤は地表面 (陸面・海面) または背の低い雲、 青は背の高い雲に、だいたい対応する。青が濃いほど雲頂が高い。 (赤外画像のふつうの白黒表示では明るいほど雲頂が高いが、ここではそうでないことに注意。)

可視についても、ひとまず同様に、反射の値の およそ中央になる 25~30 % を薄い黄色、 そこから反射が大きいほうを赤系統、小さいほうを青系統の段彩にしてみた。


作図結果の例 (いずれも sjapan領域)


IR1 輝度温度 [K] 2014年 1月 10日 06:32 UTC (15:32 JST)

tbb2014011006_contourf_sjapan.png


VIS 反射 [%] 2014年 1月 10日 06:32 UTC (15:32 JST)

refl2014011006_contourf_sjapan.png


(2022-12-18) 2023-01-21
増田 耕一 (MASUDA Kooiti)
[計算機を利用した気象分野の実習の教材]