0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

M1 Mac (Apple Silicon) にnctoolkitをインストールする

Last updated at Posted at 2022-06-20

はじめに

nctoolkitはnetCDFの中身を簡単に解析・描画することのできるPythonパッケージです。

Intel Macの場合、公式ドキュメントにあるようにconda install -c conda-forge nctoolkitでインストールできますが、Apple Silicon (M1 Mac) の場合はこのコマンドだけではインストールできませんでした。そこでインストールの手順についてメモしておきます。

実行環境

  • MacBook Air (M1, 2020)
  • macOS Monterey バージョン 12.4
  • Homebrew 3.5.2
  • Python 3.9.13 (Mambaforgeで環境構築)

インストール方法

手順まとめ

$ brew install cdo
$ brew install nco
$ mamba install -c conda-forge xarray netCDF4 hvplot panel pandas dill python-dateutil plotnine numpy scipy pandas cfgrib metpy matplotlib cartopy geoviews jupyter
$ pip install nctoolkit

以下では実際に試行錯誤した手順について、うまくいかなかった方法も含めて記しておきます。

(失敗1) mambaでnctoolkitをインストール

mamba(conda)コマンドを用いてインストールしようとすると、conda-forgeリポジトリでApple Silicon (osx-arm64)用のCDOやNCOが提供されていないため、エラーになりインストールできません。

$ mamba install -c conda-forge nctoolkit
# (中略)
Encountered problems while solving:
  - nothing provides cdo needed by nctoolkit-0.2.1-pyh32f6830_1

HomebrewでNCOとCDOのインストール

System dependenciesにあるCDOとNCOをHomebrewでインストールします。

$ brew install cdo
$ brew install nco

仮想環境の作成 (任意)

nctoolkitはmambaではインストールできないため、pipを用いてインストールすることにします。必須ではないですが、不具合が生じた場合にやり直しがしやすいため、ここでは新しくweatherという名前の仮想環境を作成しました。

$ mamba create -n weather python=3.9
$ mamba activate weather

(失敗2) pipでnctoolkitとその依存するパッケージを全てインストール

次の方針としては、pipでnctoolkitをインストールすることです。しかし、最初からpip install nctoolkitとして全てのパッケージをインストールすると、netCDF4ライブラリで共有ライブラリの読み込みに失敗しました。

>>> import nctoolkit as nc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/ytakano/mambaforge/envs/nctk/lib/python3.9/site-packages/nctoolkit/__init__.py", line 1, in <module>
    from nctoolkit.api import (
  File "/Users/ytakano/mambaforge/envs/nctk/lib/python3.9/site-packages/nctoolkit/api.py", line 16, in <module>
    from netCDF4 import Dataset
  File "/Users/ytakano/mambaforge/envs/nctk/lib/python3.9/site-packages/netCDF4/__init__.py", line 3, in <module>
    from ._netCDF4 import *
ImportError: dlopen(/Users/ytakano/mambaforge/envs/nctk/lib/python3.9/site-packages/netCDF4/_netCDF4.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_H5get_libversion'

これを回避するため、依存するPythonパッケージはなるべくmambaを使ってインストールすることにします。

手順2: 依存するパッケージをmambaでインストール

ドキュメントのPython Dependenciesに書かれているパッケージをmambaを使ってインストールします。
requirements.txtに書かれている以下のパッケージのうち、ncplot以外はmambaでインストールできそうです。

requirements.txt
xarray
netCDF4
hvplot
panel
pandas
ncplot>=0.0.5
dill
python-dateutil
plotnine

よって後で描画に必要なパッケージや気象のデータ解析によく使うパッケージも含めて、以下をmambaでインストールします。

$ mamba install -c conda-forge xarray netCDF4 hvplot panel pandas dill python-dateutil plotnine numpy scipy pandas cfgrib metpy matplotlib cartopy geoviews jupyter

pipでnctoolkitをインストール

最後にpipでnctoolkitをインストールします。先ほどmambaでインストールできなかったncplotもここでインストールされます。

$ pip install nctoolkit
# (中略)
Installing collected packages: ncplot, nctoolkit
Successfully installed ncplot-0.2.2 nctoolkit-0.5.0

動作確認

今回作成したweather仮想環境に接続したノートブックカーネルを作成し、Jupyter Notebookを使って動作確認をしていきます。

$ python -m ipykernel install --user --name weather --display-name weather
$ jupyter notebook

ドキュメントのIntroductionに従い、適当なnetCDFファイルを開いて描画してみます。インポートを含めると3行です。

import nctoolkit as nc
ds = nc.open_data("oa_sst.nc")
ds.plot()

スクリーンショット 2022-06-20 14.52.24.png

xarray.DataArray.plot.pcolormeshとは異なり、空間2次元、時間1次元のデータもそのままプロットできます。表示時刻は右に表示されているスライダーで変更することができます。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?