3

.grd 形式の 6 時間間隔 (1 日あたり 4 ファイル) の大気データを含むファイルがあります。関連する記述子ファイル (yyyymmddhh.ctl) もあります。GrADS を使用してデータをプロットできます。しかし、これらのファイルをNetCDF形式 (.nc) に変換して、 ferrertを使用して視覚化する必要があります。誰もそれを行う方法を知っていますか?

4

3 に答える 3

6

次のようなことを行うには、 Climate Data Operators (CDO)を使用する必要があります。

cdo -f nc import_binary in.ctl out.nc 

処理するファイルが多数ある場合は、それらを処理するスクリプトを作成することができます。

たとえば、COAMPS モデルからの一連の GrADS ファイルを含む tar ファイルがあり、解凍すると 121 組の.datand.cdlファイルが生成され、次のような名前が付けられました。

COTC.18L.2012102512.000.ctl
COTC.18L.2012102512.000.dat
COTC.18L.2012102512.001.ctl
COTC.18L.2012102512.001.dat
COTC.18L.2012102512.002.ctl
COTC.18L.2012102512.002.dat
...

だから私は小さなbashスクリプトを書いた:

#!/bin/bash
for file in *.ctl
do
   fname=${file%.ctl}
   cdo -f nc import_binary ${fname}.ctl ${fname}.nc
   echo ${fname}.nc
done

それらをすべて netcdf に変換します。

注 #1 : CDO はビルドが難しい場合がありますが、Linux または Mac を使用している場合は、Conda を使用してインストールできます。

Condaがない場合は、Miniconda (無料)をインストールします。方法は次のとおりです。

ステップ1。があることを確認してください。~.condarc次のようになります。

$ more ~/.condarc
channels:
  - conda-forge
  - defaults

ステップ 2。CDO を実行するためのカスタム CDO 環境を作成します。

$ conda create --yes -n CDO python=3.6 cdo
$ source activate CDO

ステップ 3ncoコマンドを実行してください!

注 #2 : またNcML、thredds データ サーバーでこれらのデータを仮想的に集約するためのファイルも作成しました。そのファイルは次のようになります。

<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2">
    <aggregation dimName="time" type="joinExisting">
        <scan location="." regExp=".*COTC\.18L\.[0-9]{10}\.[0-9]{3}\.nc$"/>
    </aggregation>
</netcdf>

これを処理するための THREDDS データ サーバーの設定の詳細については、 https: //gis.stackexchange.com/questions/70919/setting-up-thredds-catalogs-for-ocean-model-data を参照してください。

于 2017-03-23T18:57:45.953 に答える