気象データ解析のためのPython環境構築(For Linux)
(2024/9/14追記)2024年3月にAnacondaのライセンスが改訂され、大学であっても一部例外を除き有償ライセンスを必要する旨が追加されました。無償で利用する場合はMiniforgeなど別のフリーの手段を用いましょう。
というわけでLinux版のみですがMiniforgeで同様のPython環境を構築するためのページを作りました。移動する
*ライセンスについて詳しくはこちら(anacondaのライセンスページ)やこちら(Qiitaにあった日本語記事)を参照。
このページでは2022年度のVL講習会向けに,Anacondaを使ってPython環境構築する場合の一例をまとめています。
ここではUbuntu 20.04LTSの場合を紹介します。Ubuntu 16.04LTS以上,CentOS 7以上ならこのページの方法でインストールできるはずです。
*全部インストールすると10 GB近くになります。インストール前にHDD(SSD)の容量確認することをおすすめします。
- Anacondaをインストールする
- 解析用の仮想環境を構築する
- 構築した仮想環境への移動
- 研究に必要なツールのインストトール
- netCDF4 (ERA5などで使われているデータ形式であるnetCDFを扱うためのライブラリ) 公式ドキュメント
- cfgrib (JRA-55などのデータ形式であるGRIBを扱うためのライブラリ) 公式ドキュメント(GitHub)
- jupyterlab (Pythonの開発・実行環境) 公式ドキュメント
- metpy (気象データの解析に特化したライブラリ) 公式ドキュメント
- ライブラリがインストールできたかどうか確認する
- conda-forgeからのインストールを最優先させる
- その他(以下の設定は任意)
- Py-ART: 気象レーダデータ解析・可視化ライブラリ公式ドキュメント
- PyBufrKit: PythonでBUFRフォーマットのデータ(気象庁ウィンドプロファイラ等)をデコードする 公式ドキュメント
- Satpy: 衛星データの処理・可視化ライブラリ 公式ドキュメント
ここからMiniforgeのインストーラをダウンロードする。
UbuntuやCentOSであれば"64-Bit (x86) Installer"を選択
ダウンロード後,ターミナル上でインストーラを実行する。
sh Anaconda3-2021.11-Linux-x86-64.sh #長いライセンスの話(エンター押しっぱなしで飛ばせる) Last updated April 5, 2021 Do you accept the license terms? [yes|no] [no] >>>
"Do you accept ~?"が出たらyes"と入力してライセンスに同意する(さもないと永遠にインストールできない)
Anaconda3 will now be installed into this location: /home/user/anaconda3 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below [/home/user/anaconda3] >>>
anaconda3のインストール先を確認される。デフォルト(/home/user(ユーザー名)/anaconda3)で良ければ何も打たずにエンターを押す。
その他の場所にインストールしたい場合はそのパスを指定する(多くの場合デフォルトで問題ないはず)。
PREFIX=/home/user/anaconda3 Unpacking payload ... Collecting package metadata (current_repodata.json): done Solving environment: done ## Package Plan ## environment location: /home/user/anaconda3 #この間,色んなものがインストールされるのでたくさん出力がある。 Preparing transaction: done Executing transaction: done installation finished. Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no] [no] >>>
一番最後にAnaconda3の初期化について聞かれる。よく分からないなら"yes"と答えるのが無難(デフォルトではnoになっている)。"yes"にすると~/.bashrcにanaconda起動に関する設定が保存され,次回ターミナル起動時に自動的にbase環境も起動するようになる。
インストール後にターミナルを再起動し,先頭に(base)と表示されていればインストール成功している。表示されていない場合,
source /home/user/anaconda3/bin/activate # (path to conda)/bin/activate conda init
とすればyesとした場合と同様の状態になる。ならなければインストール失敗しているので最初からやり直すのがベター。
仮想環境を構築し,必要なライブラリのみをインストールすることでバージョン管理などが容易になる。仮想環境の構築は以下のように実施する。
conda create -n vl_lab -c conda-forge python=3.9
途中"Proceed ([y]/n)?"ときかれる。yを入力してからエンターを押すと仮想環境構築が始まる。
この場合"vl_lab"という名前の環境が作られ,環境構築時にpython3.9がインストールされる(vl-labは任意の名前に変えても良い)。 -nは環境名を指定するオプション,-cはライブラリのインストール元を指定すオプションである(今回はconda-forgeを使う)。
以降,"vl_lab"という仮想環境を作ったものとする。conda activateを実行することで仮想環境に切り替わる。
(base) conda activate vl_lab (vl_lab) #Activateした仮想環境に切り替わる
気象データの解析に必要なライブラリをvl_lab環境にインストールする。numpyやmatplotlibなど主要なものは以下のものをインストールする際に依存関係(あるライブラリが動作するために必要なライブラリ)で一緒にインストールされる。
仮想環境がvl_labであることを確認した後(ターミナルの先頭が(vl_lab)であれば良い),以下のコマンドを順番に実行する。-c conda-forgeはconda-forgeからインストールすることを示し,-yはインストールの確認をスキップするオプションである。
conda install -y -c conda-forge netCDF4
conda install -y -c conda-forge cfgrib
conda install -y -c conda-forge jupyterlab
conda install -y -c conda-forge metpy
ここではpython3のインタラクティブモードでライブラリをインポートすることにより確認する。 *#はコメント(入力しなくて良い)
(vl_lab) python3 #Python 3.9.10 | packaged by conda-forge | (main, Feb 1 2022, 21:24:11) #[GCC 9.4.0] on linux #Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> import matplotlib >>> import pandas >>> import xarray >>> import cfgrib >>> import metpy >>> import netCDF4 >>> exit() #インタラクティブモードを終了する。
エラーメッセージ等が表示されなければインストールが成功している。
"ModuleNotFoundError: No module named ライブラリ名" とエラーが出てきた場合,そのライブラリを再度conda installによりインストールしてからもう一度確認してみる。
先ほどはcオプション(-c conda-forge)により全てのライブラリをconda-forgeからインストールするよう指定していた。cオプションで指定しなかった場合,初期設定ではDefaultsチャンネルからインストールするようになっている。Defaultsチャネルとconda-forgeチャネルのライブラリは互換性はあるが100%ではないため,混ぜると不具合が生じることがある。
したがって,ここではデフォルトで全てのライブラリをconda-forgeからインストールするための設定をおこなう。
conda config --add channels conda-forge #conda-forgeをインストール時に最優先で参照するチャネルとして追加 conda config --set channel_priority strict #conda-forgeから全てのライブラリや依存関係をインストールする conda config --get channels #現在のチャンネル設定の表示 #--add channels 'defaults' # lowest priority #--add channels 'conda-forge' # highest priority
以上により,conda-forgeが最優先で参照するチャネルとなった。これ以降,-c conda-forgeを入力しなくてもconda-forgeからインストールされるようになる。
・ターミナル起動時にbase環境ではなく解析環境を起動させる
デフォルトではターミナルを開いた際に(base)環境が起動するようになっている。最初から解析環境を起動させたい場合は~/.bashrcの最後に以下の行を追加する。
conda activate vl_lab #vl_labは任意の仮想環境名
これによりターミナル起動時に"conda acitvate vl_lab"が実行されるようになる。ターミナルを再起動すると最初からvl_lab環境になっているはず。
・ターミナル起動時にanacondaを起動しないようにする
デフォルトではターミナルを開いた際に自動でanacondaが起動する。自動で起動させないようにするためには以下のコマンドを実行する。
conda config --set auto_activate_base false
これで次回ターミナル起動時から自動でanacondaが起動しなくなる。起動する場合
conda activate (base) #anaconda起動
とすることでanacondaが起動する。逆に自動起動を有効にしたい場合は
conda config --set auto_activate_base True
とすると,次回以降自動でanacondaが起動するようになる。
・その他気象データ解析に使いそうなライブラリのインストール
以下は必要に応じてインストールしてください
*日本のレーダデータを処理するにはCF-Radial形式等に変換をする必要がある。
conda install -y -c conda-fogre arm_pyart
anacondaにないのでpipからインストールする
pip install pybufrkit
conda install -y -c conda-forge satpy