1

NetCDF4 ファイルの操作に問題があります。誰でも私を助けてください。それを読むとうまくいくようです。

import netCDF4
f = netCDF4.Dataset('mydata.nc', 'r')

ファイルの中身を調べようとすると (>>> print f)、いくつかの情報が得られます:

<type 'netCDF4.Dataset'>
root group (NETCDF4 file format):
dimensions: soundings, levels
variables: 
groups: Retrieval, Sounding

...

print f.dimensions 

私に与えます:

OrderedDict([(u'soundings', <netCDF4.Dimension object at 0x2bd24b0>), 
(u'levels', <netCDF4.Dimension object at 0x2bd2500>)])

チュートリアルで読んだことから、入力してさまざまな寸法の長さを確認できるはずです

print len(soundings) 

しかし、「name 'soundings' is not defined」というエラー メッセージが表示されます。誰かが私が間違っているかもしれないことを知っていますか? ありがとう。

4

1 に答える 1

2

という名前の変数を定義していないため、エラーが発生していますsoundings。この変数を次のように定義すると、

soundings = f.dimensions[u'soundings']

soundings次に、を使用しての長さを見つけることができるはずですprint len(soundings)

または、次を使用して、'soundings' 次元の長さに直接アクセスできます。

print len(f.dimensions[u'soundings'])

正直なところ、私は netCDF4 を使用したことがないので、netCDF4 のドキュメントを簡単に読みました。「NetCDF ファイルの次元」セクションには、netCDF4 データセットの次元を表示する次の例が含まれています。

>>> print rootgrp.dimensions
OrderedDict([('level', <netCDF4.Dimension object at 0x1b48030>),
             ('time', <netCDF4.Dimension object at 0x1b481c0>),
             ('lat', <netCDF4.Dimension object at 0x1b480f8>),
             ('lon', <netCDF4.Dimension object at 0x1b48a08>)])

(簡潔にするために、どこrootgrpから来たのかについての詳細は省略しました。) 次のコード フラグメントの次のコード行は次のとおりです。

>>> print len(lon)

見逃しているかもしれないのは、変数lonがさらに上で宣言されていることです。

>>> lon = rootgrp.createDimension('lon', 144)

チュートリアルの上記のセクションでは、netCDF ファイルから既存の次元を読み取る一方で、netCDF ファイルに新しい次元を作成する方法を扱います。したがって、NetCDF ファイルから次元を取得する必要があります。

于 2013-10-22T21:14:34.523 に答える