为什么netCDF4会根据数据的读取方式给出不同的结果?

时间:2014-08-28 01:48:16

标签: python numpy netcdf

我在python中编码,并尝试使用netCDF4读取一些浮点netCDF数据。 Mt原始代码看起来像

from netCDF4 import Dataset
import numpy as np

infile='blahblahblah'

ds = Dataset(infile)
start_pt = 5   # or whatever
x = ds.variables['thedata'][start_pt:start_pt+2,:,:,:]

现在,由于其他各种各样的东西,我现在必须阅读“数据”。一次一片:

x = np.zeros([2,I,J,K])   # I,J,K match size of input array
for n in range(2):
    x[n,:,:,:] = ds.variables['thedata'][start_pt+n,:,:,:]

问题是两种阅读方法的结果略有不同。没什么大不了的,比如10到5的一部分,但还是......

所以有人能告诉我为什么会这样,以及如何保证这两种方法的结果相同?我的想法是第一种方法可能会自动将x设置为与输入数据相同的类型,而第二种方法将x设置为numpy数组的默认类型。但是,输入数据是64位,我认为numpy数组的默认值也是64位。所以这并没有解释它。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

第一个示例将数据拉入NetCDF4 Variable对象,而第二个示例将数据拉入numpy数组。 Variable对象是否可能只是以不同的精度显示数据?