気候予測データの解析環境を構築する 番外編― ”wxbcgribx.py”を動かす
はじめに
「気象ビジネス推進コンソーシアム(略称:WXBC)」により、 気象庁のGPVデータを処理し活用する方法を学ぶため、気象庁GPVデータ分析チャレンジ!入門(2023年10月26日)が開催されています。(現在受講中)
事前準備として、” WXBCオリジナルPythonライブラリwxbcgribX”の実行環境を作っておく必要があるとのこと。
試行錯誤してWSL2-Docker下で動くようにしましたので、紹介します。
wgrib2のコマンドパスの設定
wxbcgribx.pyの36行目に次のパスを設定します
wgrib2 = "docker exec -w /mnt/c/Users/hoge/{作業ディレクトリ} wgrib2_dock wgrib2" #wgrib2 = Path("C:/wgrib2/wgrib2.exe") # wgrib2のインストール場所 Windowsの場合 #wgrib2 = Path("/usr/local/bin/wgrib2.exe") # wgrib2のインストール場所 Linuxの場合 #wgrib2 = Path("~/work/grib2/wgrib2/wgrib2") # wgrib2のインストール場所 Macの場合
一時フォルダの設定
私の環境では、tempfile.TemporaryDirectory()が動かないので、作業ディレクトリに”tmp"フォルダを作成して、そこを使うように設定します。
def from_grb(grbpath,matchopt,verbose): """ gpvデータをGRIB2ファイルから取得する関数 matchopt: データを選別するオプション文字列 """ #指定した気象要素のデータを取り出して一時ファイルに格納 with tempfile.TemporaryDirectory() as td: Path("./tmp").mkdir(exist_ok = True) #作業フォルダの作成 #dumppath = Path(td)/"extracting.nc" #作業ファイルの指定をコメントアウト dumppath = "./tmp/extracting.nc" #作業ファイルの指定を修正 opt = f'{matchopt} -netcdf {dumppath}' rc = wg2(grbpath, opt) if verbose: print(rc.stdout)#.splitlines()) #一時ファイルからデータセットをロード with xr.open_dataset(dumppath) as ds: ds.load() #dumppath.unlink(missing_ok=True) #後片付けをコメントアウト return ds
事前テストのスクリプトが動きました。
これまで構築した、「気候予測データの解析環境」で”wxbcgribx.py”を動かす方法を紹介しました。試してみてくださいね~。
追記:GoogleColabでwgrib2を使うには
講義で出ていたこの質問、
質問です。どうしても、社内では供与PCへのインストールが出来ない環境にあります。GoogleColabでwgrib2を使うにはどうすればよいでしょうか?
調べてみたらこんな記事がありました。
↑この場合、wxbcgribx.pyにおけるwgrib2のコマンドパスは
wgrib2 = "wgrib2"
でOKだと思います。
ご参考に~
追記2: 「気象庁GPVデータ分析チャレンジ!基礎編」の”wxbcgribx.py”を動かす
本日(2023.11.30)開催の「気象庁GPVデータ分析チャレンジ!基礎編」で配布された”wxbcgribx.py”は、バージョンアップされているようでうまく動かず・・・
73行目からの"wg2"で実行されているエラーチェックをコメントアウトすると動きました。
def wg2(src,opt=''): # wgrib2を実行する関数 #if not wgrib2.exists(): # print("wgrib2 をインストールしてください。") # sys.exit() check_path(src) rc = subprocess.run(f'{wgrib2} {opt} {src}', shell=True, text=True, capture_output=True) # print(rc.returncode) # print(rc.stdout) # print(rc.stderr) return rc