LoginSignup
3
2

WSL2 の Ubuntu20.04上に WRF の環境を構築 その3 WRFの実行

Last updated at Posted at 2022-02-23

更新

2024.1.4現在の情報を別記事に書きました。本記事と合わせて参照ください。

はじめに

本日は先日から記載しているWRF環境構築手順の「その3(たぶん最終回)」で、いよいよWRFの実行になります
過去記事(その1): WSL2 の Ubuntu20.04上に WRF(Weather Research and Forecasting Model) の環境を構築
過去記事(その2): WSL2 の Ubuntu20.04上に WRF の環境を構築 その2 気象データ(FNLデータ)ダウンロード

【2022.8.4 更新】記事その1で利用した新しいバージョンの一括インストールスクリプトによりディレクトリ名が変更になったため、関連する箇所を修正しました(内容的には変更ありません)

目次

1.環境と構築のポイント       (過去記事その1参照)
2.WSL2とUbuntu20.04インストール  (過去記事その1参照)
3.GUI環境(RDP)設定        (過去記事その1参照)
4.WRFプログラムインストール    (過去記事その1参照)
5.気象データダウンロード       (過去記事その2参照)
6.WRF実行              ★本日の記載内容

6. WRF実行

WRFの実行・表示は以下の手順で行います

実行コマンド 入力ファイル 出力ファイル 実行方法
geogrid.exe namelist.wps, 地形データ geo_*.nc 手動または WRFDomainWizard
ungrib.exe namelist.wps, 気象データ FILE:20xx-xx-xx_xx 手動または WRFDomainWizard
metgrid.exe namelist.wps, geo_*.nc, FILE:20xx-xx-xx_xx met_*.nc 手動または WRFDomainWizard
real.exe namelist.input, met_*.nc wrfinput_* , wrfbdy_*, namelist.output 手動
wrf.exe namelist.input, wrfinput_* , wrfbdy_* wrfout_*_20xx-xx-xx_xx:xx:xx 手動
ARWpost.exe namelist.ARWpost, wrfout_* test.dat, test.ctl 手動
grads test.dat, test.ctl (画面に結果を表示) 手動

WRFDomainWizard についての補足

  • WPSプログラム(geogrid.exe, ungrib.exe, metgrid.exe) を画面インタフェースで操作できる WRFDomainWizard をここでは使います
  • WRFDomainWizard は https://esrl.noaa.gov/gsd/wrfportal/DomainWizard.html から提供されていて、今回活用させていただいた一括インストールシェルプログラムにてダウンロード&インストールしています
  • ただし、このサイトを見てみると 2013年から更新されていないようです。とはいえ現時点(2022.2)の最新WPSでも実行できました(自分が実行した範囲で)
  • また、このサイトを見ると WRF Portal というものもあるようで、WRF も画面インタフェースで操作するツールがあるようです。これも 2013年から更新されていません。まだ使ったことがないのでここでは使わずに、WRFについては手動で実行します。

WRFDomainWizard実行 (WPSプログラム:geogrid.exe, ungrib.exe, metgrid.exe の実行)

  • まず、実行に際して必要になった、Domainsディレクトリの作成、greenfracディレクトリのシンボリックリンク作成を行いました(greenfracを作成しないと実行時にエラーが出たため)
  • Domainsディレクトリの作成場所の記載が誤っていたため、 cd .. を追記しました(2022.11.23)
cd ~/WRF/WPS_GEOG
ln -s greenfrac_fpar_modis/ greenfrac
cd ..
mkdir Domains
  • Ubuntu上の Terminal Emulator で WRFDomainWizard を実行します
cd ~/WRF/WRFDomainWizard
./run_DomainWizard
  • それぞれ PATH を設定します。それぞれの入力値の右の ... をクリックして設定します

  • WPS Programs : /home/wrfuser/WRF/WPS-4.4

  • Geography : /home/wrfuser/WRF/WPS_GEOG

  • Domains : /home/wrfuser/WRF/Domains
    DomainWizard01a1.gif

  • New Domain を選択したまま Next をクリック
    DomainWizard02a.gif

  • 新しいドメイン名(ここでは JapanAll01 とした)と説明を入れて Next をクリック
    DomainWizard03a.gif

  • 地図が表れてくるので、まず日本の範囲を選択します。欧米中心の地図は久しぶりに見ました。日本はずっと右のほうですね。まさに極東(Far East)です
    DomainWizard04a.gif

  • マウスポインタを操作して、日本が入るように範囲を選択します
    DomainWizard05.gif

  • 地図の type として Lambert Conformal を選択して、Update Map をクリック。これで日本地図が拡大されます。
    DomainWizard05a.gif

  • Geographic data resolution を 30s にして、Next をクリックします。 10mのままにするとこの後の作業でデータがないというエラーになるためです。
    DomainWizard06a.gif

  • namelist.wps, namelist.input の各種パラメータを設定します。ここでは、2022.1.6 12:00 と 18:00 のデータ分析を行う設定をします。東京が大雪だった日です。run_hours = 6 (時間), start_year ~ end_second を設定しました
    DomainWizard07.gif

  • e_vert, num_metgrid_levels も変更しました。初期値のままだと WRF の実行時にエラーになったためです。num_metgrid_levels は ncdump -c met_em_・・・.nc | grep num_metgrid_levels で見ることができました。これは一度 geogrid.exe, ungrib.exe, metgrid.exe まで実行してできたファイルを見たものです。(https://qiita.com/7of9/items/f70a9114ccae31040c79) を参考にさせていただきました。e_vert はよくわからないのですが、他で動いていた値にしてみました。
    DomainWizard09.gif

  • ここで、Validate をクリックして確認してみたところ、time_step が大きすぎると出ましたので、100に減らしたところエラーは出なくなりました。そして Next をクリックします。
    DomainWizard21a.gif
    DomainWizard22a.gif

  • GRIBデータ(FNLデータ) のディレクトリを設定します(~/WRF/FNL_DATA)

DomainWizard10a.gif
DomainWizard11a.gif

  • FNLデータを選択します。2022.1.6 12:00 と 18:00 のファイルを選択して Add にて追加しました
    DomainWizard12a.gif

  • 時刻を設定
    DomainWizard13a1.gif

  • これで各プログラムを実行する準備が整いました。まず geogrid をクリックして実行します
    DomainWizard15a.gif

  • 次に ungrib を実行します
    DomainWizard16a.gif

  • そして metgrid を実行します
    DomainWizard17a.gif

  • Next をクリックすると Visualize NetCDF に移りますが、すみませんがこのページはよくわかりません。Exit をクリックして WRFDomainWizard での作業を終えます
    DomainWizard18.gif

  • metgrid の結果と namelist.input が、~/WRF/Domains/JapanAll01 配下にできています

WRF (real.exe, wrf.exe) の実行

  • ここからはコマンドラインで実行していきます。実行は各種ファイル等が存在する ~/WRF/WRF-4.4-ARW/run/ にて実行します。まず、上記で作成した namelist.input, met*.nc をこのディレクトリにシンボリックリンクして、real.exe, wrf.exe の順に実行します。終了すると、この場合は wrfout_d01_2022-01-06_12:00:00 などのファイルが作成されます
cd ~/WRF/WRF-4.4-ARW/run
mv namelist.input namelist.input.bak
ln -s ~/WRF/Domains/JapanAll01/namelist.input .
ln -s ~/WRF/Domains/JapanAll01/met_*.nc .
./real.exe
./wrf.exe

ARWpost による変換

  • wrf.exe の結果ファイルを GrADS ツールで表示できるように ARWpost で変換します。実行は ARWpost.exe が存在する ~/WRF/ARWpost/ にて実行します。wrf.exe で作成した wrfout・・・00:00 ファイルをシンボリックリンクし、namelist.ARWpost のバックアップを取って、編集します
cd ~/WRF/ARWpost
ln -s ~/WRF/WRF-4.4-ARW/run/wrfout_d01_2022-01-06_12\:00\:00 .
cp -p namelist.ARWpost namelist.ARWpost.bak
gedit namelist.ARWpost
  • namelist.ARWpost は、 start_date, end_date, interval_seconds, input_root_name を編集します

DomainWizard23a.gif

  • ARWpost.exe を実行することで test.ctl, test.dat が作成されます。 test という名称はnamelist.ARWpost の output_root_name にて指定しています
cd ~/WRF/ARWpost
./ARWpost.exe

・・・
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  Successful completion of ARWpost  !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  などと出力されて終了です

GrADS ツールにて結果を表示します

  • いよいよ結果の表示です。GrADS を用います。~/WRF/ARWpost ディレクトリで、grads を実行します。 Landscape(横長) mode か portrait(縦長) mode か聞かれるので、横長でよければそのまま Enterキーを押下すると、GrADSのWindowが開きます。Terminal画面とGrADS両方の画面が見えるように配置して、Terminal画面にて gradsのコマンドを打つことでいろいろな画面を表示できます。
cd ~/WRF/ARWpost
grads
・・・
Landscape mode? ('n' for portrait):  ← y かそのまま Enterキーで横長モード
・・・
ga->  ← GrADSのWindowが開いて、GrADS のコマンド入力待ちになります

DomainWizard24a.gif

  • GrADS のコマンドの主なものを紹介します
 ga-> open test  ← test.dat, test.ctl のデータを開く
 ga-> q file 1 ←表示できるキー値などを見ることができる
 ga-> d tc      ←キー値 tc を指定して摂氏温度の図がGrADS画面に表示される
 ga-> set t 2   ←2番目の時刻のデータに変更
 ga-> c         ←GrADS画面をクリア
 ga-> d tc      ←2番目の時刻の摂氏温度の図が表示される
 ga-> quit      ←GrADSを終了します
  • 一連の流れをスクリプトファイルとして作成して実行することもできます。下記は test データを開き、一つ目の時刻のデータを指定、画面をクリア、摂氏温度の図を表示、1秒間スリープして、画面をクリア、二つ目の時刻のデータを指定、摂氏温度の図を表示、という流れのスクリプトです。GrADSのコマンド入力のところで、 run test.gs とすることで実行できます。
cd ~/WRF/ARWpost
gedit test.gs
test.gs
'open test'
'set t 1'
'c'
'd tc'
'!sleep 1.0'
'c'
'set t 2'
'd tc'
 ga-> run test.gs

DomainWizard27a.gif

  • 上記スクリプトにて、2022.1.6 12:00 の摂氏温度分布から 18:00 の摂氏温度分布に切り替わります。少し動きが見えて面白いですが、これで何が分析できるのかは私にはわかっておりません・・・(汗

  • 以上、3回に分けて WRFおよび必要なファイルのインストールから実行方法を紹介しました

  • 私は気象については素人なのでごく簡単なデータでのWRF実行と一部の画面表示しかしておりませんが、なんらかもっと高度な分析・表示のための参考になりましたら幸いです。また間違い等ありましたらコメントをお願いいたします。

3
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2