我正在尝试将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程序将提供相同的值。
答案 0 :(得分:1)
首先,你需要区分你正在阅读netCDF-3或netCDF-4文件。 scipy.io.netcdf模块只能读取netCDF-3,所以如果它是netCDF-4文件,那么你就不走运了。不同之处在于netCDF-4文件使用HDF-5作为文件存储。也就是说,它看起来像是从你的文件中读入某些东西,所以很可能你有一个netCDF-3文件。
如果是这种情况,您需要在温度变量上查找“scale”和“offset”属性,并在使用scipy.io.netcdf时直接应用这些属性。 netCDF-4-python模块自动查找这些属性并为您“幕后”应用它们,这就是为什么您的数据在通过该模块时看起来不错。
干杯,
肖恩