🌏

GenCastをWSL2+VS Codeで動かしてみる

に公開

こんにちは、
Djangoの勉強を始めたつもりが
だいぶ脱線してしまいました。
ワニかず@40歳 出戻りエンジニアです。

何か作りたいものがないと
技術は身につかないという実感があるので、
何かを作ろうかと考えて、
天気に関することをやってみようと思い、
Googleが提供するGenCastをいじってみることにしました。

GenCastは、Google DeepMindが開発した気象予測のためのAIモデルで、
実験的な研究プロジェクトとして位置付けられており、
公式の気象機関による承認や保証はありませんが、
気象予測の研究や実験に活用できます。

ということで、今回は、
GenCastをWSL2+VS Codeで動かしてみる
という手順を少し細かめに解説いたします。

事前の設定

WSL2をインストールする

こちらの記事をご覧ください。
https://zenn.dev/40_comeback_eng/articles/820952bc22e151

VSCodeとWSL2の連携

VS Codeに拡張機能「WSL」をインストールします。
VS Codeの拡張機能の画面で「Remote WSL」と入力、
表示された画面の「インストール」をクリックします。

↑私の画面はすでにインストール済みのため、
「アンインストール」が表示されています。

連携をすることで、
WSLのターミナルから「code .」で
VSCodeを起動できます

GraphCastとGenCastのモデルファイルをダウンロード

こちら
の「gsutil のインストール」を行った後、

wslのターミナルで、

gsutil -m cp -r \
  "gs://dm_graphcast/LICENSE" \
  "gs://dm_graphcast/dataset" \
  "gs://dm_graphcast/gencast" \
  "gs://dm_graphcast/graphcast" \
  "gs://dm_graphcast/params" \
  "gs://dm_graphcast/stats" \
  .

を実行してモデルファイルをダウンロードします。
注意点としては、

140GBくらいありますので、
時間がかかります。

私の環境(1GBの光回線)
の場合でも2時間くらいかかりましたので
時間と心に余裕のある時に行うようにしましょう。

ちなみに私は、
寝ようと思っていた
1時間前にやり始めてしまい大変後悔しました(笑)

imagemagickをインストールする

wslのターミナルで

sudo apt install imagemagick

を実行して、imagemagickをインストールします。

私は、いろいろうまくいかずに、

sudo apt install python3-pip git imagemagick

と実行していますが、
もしかすると、上記のコマンドも
影響しているかもしれませんので、
うごかない場合はこちらもお試しください。

GenCast動作確認までの手順

  1. PowerShellを起動する
  2. PowerShellでwslと入力
  3. 「mkdir test3」で作業用のフォルダを作成する(test3の部分は何でもいいです)
  4. 「cd test3/」で作業用フォルダに移動
  5. git clone https://github.com/google-deepmind/graphcast.git
      で、リポジトリをローカル環境に複製する。
  6. 「cd graphcast/」で複製したリポジトリのフォルダに移動。
  7. 「python3 -m venv myvenv3」で、仮想環境を作成する。今回は仮想環境を「myvenv3」として作っていますが、これは好きな名前でOKです。

ここまでの流れは以下の図です。

  1. 「source myvenv3/bin/activate」で、先ほど作った仮想環境を有効にする。
  2. 「pip install -e .」で動作に必要なパッケージをインストールする。
    「pip install -e .」は終了までに、数分かかります。
    私の環境では5分近くかかっていました。

インストールの設定は、先ほど、5.で複製したデータの中に、
「setup.py」が入っており、
このファイルの設定に従って設定がされているようです。

7.で行った、仮想環境を有効にしていない場合、
この処理は失敗すると思います。

そのため、仮想環境の作成と有効化は必要な作業となります。

  1. 「code .」でVS Codeを起動する。
    起動すると、VS Codeで以下のように

「このフォルダー内のファイルの作成者を信頼しますか?」
と表示されますが、「はい、作成者を信頼します」
で先に進みます。

  1. クローンで作成した「gencast_demo_cloud_vm.ipynb」が私の環境だと正常に動きませんでした。代わりに、「gencast_demo_cloud_vm.py」を作成し、こちらでご紹介されているソースをコピー貼り付けします。
    https://qiita.com/syun88/items/d3e352b2a87d82416f21#code

モデルとデータのパスは
「事前の設定」
で実行した
「GraphCastとGenCastのモデルファイルをダウンロード」
の実行パスによって異なると思いますので、
ソースコードの以下の部分は修正する必要があります。

私の環境では、以下のようになっています。

# モデルとデータのパス
MODEL_PATH = "../../gencast/params/GenCast 1p0deg Mini <2019.npz"
DATA_PATH = "../../gencast/dataset/source-era5_date-2019-03-29_res-1.0_levels-13_steps-04.nc"
STATS_DIR = "../../gencast/stats/"
  1. VS Codeで「Ctrl+Shift+P」でコマンドパレットを開き、7.で作成した「myvenv3」のインタプリターを有効にします。

仮想環境やインタプリターについて、
初心者の方が理解を深めたい場合は、
私が以前書いた、こちらの記事をご覧ください。
https://zenn.dev/40_comeback_eng/articles/4f09e6334c2e1e

  1. VS Codeでターミナルを起動し、「python3 gencast_demo_cloud_vm.py」を実行

  2. しばらくすると、「example_animation.gif」が作成されると思います。

Discussion