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) 

但我收到错误消息“名称'soundings'未定义”。有人知道我可能做错什么吗?谢谢。

4

1 回答 1

2

您收到错误是因为您尚未定义名为soundings. 如果您通过以下方式定义此变量

soundings = f.dimensions[u'soundings']

那么你应该能够找到soundingsusing的长度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 回答