【发布时间】:2013-07-23 15:59:15
【问题描述】:
我正在尝试从 netCDF 文件中获取一个变量并打印它。这是我的代码
import netCDF4
import netCDF4_utils
from netCDF4 import Dataset
from numpy.random import uniform
import csv
B = []
rootgrp = Dataset('test.cdf', 'r', format = 'NETCDF4')
f = open('testoutput.csv','wb')
b = (rootgrp.variables['grid_optical_depth'][:])
for x in b:
B.append(x)
f.write(str(B))
rootgrp.close()
f.close()
当我运行它时,我得到了一组似乎在重复的非常大的数据,但我看不到我的 for 循环是如何做到的,它不应该只运行一次数据集吗?
也有人能谈谈为什么数据以每行四组的形式打印出来吗?如果我运行print rootgrp.variables['grid_optical_depth'] 我会得到
<type 'netCDF4.Variable'>
float32 grid_optical_depth(grid_time, range)
long_name: Grid_Aerosol_Optical_Depth_Profile
units: (n/a)
temporal_average: 20.0
unlimited dimensions:
current shape = (1440, 399)
这是否意味着其中两个数字对应于 grid_time 和 rage 值?我认为情况并非如此,因为所有数字都比 1 小得多(大约为 10^-3 和 -4)。
感谢任何帮助
【问题讨论】:
-
从 [stackoverflow.com/questions/16641437/… 添加编辑
b = (rootgrp.variables['grid_optical_depth'][:,:])得到了与之前相同的答案 -
能否将 a 和 b 重命名为您期望的名称?
-
我已经删除了 A,B 应该只是气溶胶光学部门的值列表。我将这些附加到 B 因为我不能将
(rootgrp.variables['grid_optical_depth'][:])直接写入文件 -
他的观点是,调试读起来像英语的代码要容易得多,而不是使用单字母变量和大写来表示某种含义的代码。
标签: python file-io multiple-columns python-2.x netcdf