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?

cfgribをgoogle colaboratoryで使う

Last updated at Posted at 2024-06-23

ecmwf-opendataをgoogle colaboratory(以下google colab)で使いたくて色々試していたが、gribデータをうまく読み込めず利用できなかった。また、なぜかこの手の記事を見つけられなかった(ので環境のせいかも)。

google colabでの環境

!python --version

Python 3.10.12

cfgrib.__version__

'0.9.12.0'

xarray.__version__

'2023.7.0'

エラーの状況

cfgribはgribフォーマットのデータをxarrayというPythonパッケージで読み込むための補助的な外部パッケージ。

よって、google colabで使う場合は以下のようにpipインストールをして利用する。

!pip install cfgrib
!pip install xarray

その後、xarrayopen_dataarrayメソッドにて、engine='cfgrib'とキーワード引数を設定しDataArrayとして読み込むのだが、以下のエラーを吐き出し利用できない。

import xarray as xr
da = xr.open_dataarray('data.grib2', engine='cfgrib')

ValueError: did not find a match in any of xarray's currently installed IO backends ['h5netcdf', 'scipy', store']

解決

このエラーは例えばcfgribをインストールせずに利用すると出るエラーで、一般的なもの。故にエラー文を検索すると「先にcfgribをインストールせよ」という解決しか出てこない。してるんだってば!

色々試した1結果、pipインストールの場合は事前にecCodesのライブラリをインストールしている必要があるらしい(旧バージョンのcfgribドキュメント)。

これを踏まえ、apt-get(degian系Linuxのパッケージマネージャ)でecCodesのライブラリをインストールする一文を加えると、データの読み込みに成功した。

!apt-get install libeccodes-dev  # これが大事
!pip install cfgrib
!pip install xarray

実行サンプル

以下にgoogle colabにて実際にgribデータをecmwf-opendataでダウンロードし読み込むサンプルを示す。

!apt-get install libeccodes-dev
!pip install cfgrib
!pip install xarray
!pip install ecmwf-opendata

from ecmwf.opendata import Client

client = Client(source="ecmwf")

# 最新のアンサンブル予報の解析値(予報の元となるデータ)より300 hPa気圧面のジオポテンシャル高度分布データをdata.grib2として取得
client.retrieve(
    time=0,
    type="cf",
    step=0,
    param=["gh"],
    levelist=[300],
    target="data.grib2",
)

import xarray as xr
da = xr.open_dataarray('data.grib2', engine='cfgrib')
da.plot()

image.png

なお、ecmwf-opendataからデータをダウンロードすることで、ライセンス利用規約:Attribution 4.0 International (CC BY 4.0) に同意したことになります(公式)。

おわりに

解決してよかった。apt-get使えるのはたまげた。pipcondaと異なりライブラリまで管理してくれないことを学んだ。試してないがcondacolabというパッケージがあるらしい。とはいえ、いちいちcondaをインストールするのは面倒ね。

  1. インポートの順番の組み合わせ、xarray[complete]の利用、pip自体のアップデート、!pip install eccodes、いずれも失敗に終わった。

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?