手順
ILSを用いた結合実験において必要な内挿テーブルは、使われるコンポーネントによって変わってきますが、デフォルトの設定で用いられるモデルであるMATSIROとCaMa-Flood (CMF)、及びIO(入出力)の3つのコンポーネントを用いる場合は以下の6種類が必要になるかと思います。
(1) IO_bnd --> MATSIRO
(2) IO_met --> MATSIRO
(3) MATSIRO --> CMF
(4) MATSIRO --> IO_row
(5) MATSIRO --> IO_rect
(6) CMF --> IO__row
IOはコンポーネントとしては1つなのですが、データの種類によって必要なテーブルが変わります。
MATSIROの境界条件データは流域形状格子として定義されたMATSIROと同一の格子系ですが、気象外力データは0.5度の緯度経度格子などで、境界条件データとは異なる格子系を持ちます。
デフォルトで用いられる格子系の種類は以下のとおりです。
MATSIRO: 流域形状格子
CMF: 流域形状格子(MATSIROと同形、ただし番号の割り振り方が異なる)
IO_bnd: 流域形状格子 (MATSIROと同形、ただし番号の割り振り方が異なる)
IO_met: 気象データの格子系
IO_row: 出力格子系。MATSIROと同じ流域形状格子
IO_rect: 出力格子系。緯度経度格子系
IO_rowとIO_rectの使い分けですが、単純にモデル格子内の値を見たい場合はIO_rowで出力します。
IO_rectは緯度経度格子(矩形格子)に内挿したもので、他のモデルと同じ規格でフラックスを比較したい時などに用います。
河川流量などは内挿できないのでIO_rowで、地表面フラックスなどは目的に応じて、という形になります。
また、MATSIROは格子データがriverとnorivの二つに分かれているので、一部のテーブルはそれぞれについて作成した後統合する必要があります。
したがって作成の手順は以下の2つに段階に分かれます。
Step 1. 変換テーブルを作成する
Step 2. 統合が必要なテーブルを統合する
各テーブルの作成に必要な設定ファイルのサンプルを
${DIR_SPRING}/run/make_rt_for_ils/sample/set/01_regrid
${DIR_SPRING}/run/make_rt_for_ils/sample/set/02_merge_regridding_tables
に置きました。
ディレクトリ「sample」を同じディレクトリ内にコピーして使うのが良いかと思います。
Step 1. 内挿テーブルを作成する
(1) IO_bnd --> MATSIRO
サンプル:
01_regrid/io-bnd_to_mat-river.conf
01_regrid/io-bnd_to_mat-noriv.conf
MATSIROは流域形状格子(ラスター格子、grid_system_raster)ですが、送信側と同じ形なので、送信側・受信側ともに同解像度の緯度経度格子(grid_system_latlon)とみなしてテーブルを作成することができます。
なお、io-bnd_to_mat-noriv.confではIO_bndの格子系のブロック(ひとつめのブロック)でidx_bgnを指定しています。これは境界条件データがriverとnorivの2層からなっているためです。ここでは1層あたりの格子数が720x360=259200なので、2層目の格子番号の始まりは259201となります。
(2) IO_met --> MATSIRO
サンプル:
01_regrid/io-met_to_mat-river.conf
01_regrid/io-met_to_mat-noriv.conf
こちらではMATSIROをラスター格子として扱う必要があります。
(3) MATSIRO --> CMF
サンプル:
01_regrid/mat-river_to_cmf.conf
(1)と同様、同じ形のラスター格子なので両者を緯度経度格子とみなしてテーブルを作成します。
なおnorivつまり河道無し陸面ではCMFの格子がそもそも定義されないので、MATSIRO_noriv --> CMFのテーブルはありません。
(4) MATSIRO --> IO_row
サンプル:
01_regrid/mat-river_to_io-row.conf
01_regrid/mat-noriv_to_io-row.conf
こちらも同じ形のラスター格子なので緯度経度格子扱いです。
(5) MATSIRO --> IO_rect
サンプル:
01_regrid/mat-river_to_io-rect.conf
01_regrid/mat-noriv_to_io-rect.conf
こちらはIO_rectが緯度経度格子なのでMATSIROはラスター格子としてきちんと計算します。
(6) CMF --> IO_row
サンプル:
01_regrid/cmf_to_io-rect.conf
こちらは同じ形のラスター格子なので緯度経度格子扱いです。
実行ファイルはSPRING/bin/std/regrid/main.exeです。
次のように設定ファイルをコマンドライン引数として与えて実行します。
./bin/std/regrid/main.exe run/make_rt_for_ils/sample/01_regrid/io-bnd_to_mat-river.conf
Step 2. 統合が必要なテーブルを統合する
設定ファイルに内挿テーブルの長さ(length_rt)を書く必要があります。この値は内挿テーブルと一緒に出力されたレポートファイルに書かれているので、それを参照してください。
(1) IO_bnd --> MATSIRO
サンプル:
02_merge_regridding_tables/io-bnd_to_mat.conf
(2) IO_met --> MATSIRO
サンプル:
02_merge_regridding_tables/io-met_to_mat.conf
(3) MATSIRO --> CMF
riverしかないので結合は不要
(4) MATSIRO --> IO_row
サンプル:
02_merge_regridding_tables/mat_to_io-row.conf
(5) MATSIRO --> IO_rect
サンプル:
02_merge_regridding_tables/mat_to_io-rect.conf
(6) CMF --> IO_row
riverしかないので結合不要
実行ファイルはSPRING/bin/std/merge_regridding_tables/main.exeです。Step 1と同様、設定ファイルをコマンドライン引数で与えて実行してください。
以上の手順で作成されたテーブルのうち、
out/01_regrid/mat-river_to_cmf
out/01_regrid/cmf_to_io-row
out/02_merge_regridding_tables/io-bnd_to_mat
out/02_merge_regridding_tables/io-met_to_mat
out/02_merge_regridding_tables/mat_to_io-row
out/02_merge_regridding_tables/mat_to_io-rect
が最終的にILSを実行する際に使うテーブルになります。
もちろんこれは実験の条件によって変わり、例えばCMF --> MATSIRO方向の結合も行う場合はそれも作成する必要があります。