J-OFURO データ (学内むけメモ、暫定)

J-OFURO は、 「Japanese Ocean Flux Data Sets with Use of Remote Sensing Observations」の略だそうだ。 世界の「海面フラックス」 (海洋と大気とのあいだの熱交換量や 風の応力など) の値を、 人工衛星観測を活用して推定したもので、 日本の研究者がつくっている。

かつては、東海大学の 久保田 雅久 さん や 轡田 [くつわだ] 邦夫 さんが中心になっていたが、 いまは北海道大学の 富田 裕之 さんが中心になっていて、 ウェブサイトは富田さんの異動まえの所属だった名古屋大学にある。

現在のバージョンは、J-OFURO3 の Version 1.1 であり、 1988年から2017年までの 30年間のデータがつくられている。 どのような変数のデータがあるかは、 ウェブサイトの「J-OFURO3 変数リスト」のページに列挙されている。

海面フラックスは人工衛星から直接観測される量ではないので、 それを推定するためのてつづきはかなり複雑である。 このデータを使って何かを主張したいのならば、 ウェブサイトの「ドキュメント」のところにある「J-OFURO3データセット詳細ドキュメント」 の概要の部分や、 「リファレンス論文」として紹介されている Tomita et al. (2019) の論文などを読んで、 データがどのようにしてつくられたかを知っておく必要がある。

データ自体は、DIAS ( https://diasjp.net ) というサイトから取得することができる。 増田は、2022年 6月に、DIASから、J-OFURO3 Version 1.1 の 公開されているすべての変数の月平均値と、 月ごとの気候値 (1988-2017の30年ぶんの平均値をこのように呼んでいる) を取得した。 (日ごとのデータもあるが、大量になるのでダウンロードしないことにした。)

データファイルは netCDF という形式になっている。 netCDF のファイルは、変数の値だけでなく、 変数名、単位、日時、空間的位置 (格子点データならばどんな格子か) などの 情報も、同じファイルの中にもつことができる。 Python では、パッケージを追加すれば netCDF を直接読むことができる。

しかし、[2022年 8月現在] 増田はまだその方法を習得していなかったので、 暫定的に、(JRA-55 の GRIB version 1 形式のファイルについてやったのと同じように) GrADS で netCDF を読んで 単純バイナリ形式のファイルを書きだしておき、 Python では単純バイナリ形式のファイルを読むことにした。 (単純バイナリ形式のファイルは、変数名や単位や日時の情報をファイル内にもっていない。 ファイル名で識別することにしたが、あやういところがある。)

【[2023-03-30 補足] xarray というパッケージを追加することによって、 netCDF を直接読むことができることがわかった。 例を [気象庁のMSM解析値 (京大生存研のNetCDF版) を Python xarray で 読む] にしめした。 J-OFURO3 についてはまだためしていないが、今後はこの方法でやってみたい。】

格子は、全球、緯度・経度 0.25度間隔で、 きりのよい値の線でかこまれた ます目ごとに値がある。 ます目の数は、南北 720、東西 1440 である。 ます目の中心の位置でいうと、南北は 南緯 89.875度、東西は 東経 0.125 度からはじまる。 陸にあたる格子点の値は欠損になっている。 (わたしの単純バイナリファイルでは、GrADS のつごうで、 欠損が -9.99 × 108 であらわされている。) 海氷におおわれる海域でも欠損が生じていることがある。

ひとまず、つぎの2つの変数について、バイナリファイルを、 zip でまとめて、[臨時のウェブサイト]に置いた。

このうち lhf を Python で読んで Cartopy をつかって地図上に表示する プログラム例をつくった。 shf についても、プログラム中の「lhf」を「shf」に、「Latent heat flux」を 「Sensible heat flux」に変えれば、そのままつかえるだろう。 datapath は 自分の計算機上でデータファイルを置いた場所にあわせて変更してほしい。


[卒論生・3年生セミナーのページへ]
2022-08-01, 2023-03-30
増田 耕一 (MASUDA Kooiti)