0

我正在尝试从 netCDF4 转换为 scipy.io netcdf,因为程序要进入的网页没有 netCDF4 模块。

该程序在 netCDF4 从文件中检索温度值(以 degK 为单位)时运行良好,为我提供了以下值:

[[ 258.77999878  258.77999878  258.77999878 ...,  258.77999878
258.77999878  258.77999878]
 [ 259.29998779  259.54998779  259.82000732 ...,  258.3500061
258.70001221  258.97000122]
 [ 264.1000061   264.47000122  264.82000732 ...,  262.40002441
263.04998779  263.6000061 ]].

但是,当使用 scipy.io netcdf 和 netCDF4 中使用的相同文件时。程序运行它应该再次以 degK 给出温度值,但值如下:

[[-25403 -25403 -25403 ..., -25403 -25403 -25403]
 [-25351 -25326 -25299 ..., -25446 -25411 -25384]
 [-24871 -24834 -24799 ..., -25041 -24976 -24921]].

我只是想知道是否有人以前遇到过这个问题以及如何解决它,以便 scipy.io netcdf 程序给出相同的值。

4

1 回答 1

2

首先,您需要区分您正在阅读的是 netCDF-3 还是 netCDF-4 文件。scipy.io.netcdf 模块只能读取 netCDF-3,所以如果它是 netCDF-4 文件,那么你就不走运了。不同之处在于 netCDF-4 文件使用 HDF-5 作为文件存储。也就是说,它看起来像是从您的文件中读取了某些内容,因此您很可能有一个 netCDF-3 文件。

如果是这种情况,您将需要在温度变量上查找“比例”和“偏移”属性,并在使用 scipy.io.netcdf 时直接应用这些属性。netCDF-4-python 模块自动查找这些属性并为您“在幕后”应用它们,这就是您的数据在通过该模块时看起来不错的原因。

干杯,

肖恩

于 2013-08-09T13:45:40.350 回答