【问题标题】:Converting from netCDF4 to scipy.io netcdf从 netCDF4 转换为 scipy.io netcdf
【发布时间】:2013-08-10 00:35:06
【问题描述】:

我正在尝试从 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 程序给出相同的值。

【问题讨论】:

    标签: python scipy netcdf


    【解决方案1】:

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

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

    干杯,

    肖恩

    【讨论】:

    • OP 在本地工作时可能也可以使用netCDF.Dataset('file.nc', 'w', format='NETCDF3_CLASSIC'),然后该文件将被 scipy.io 正确读取。
    猜你喜欢
    • 2021-03-04
    • 2015-10-30
    • 2013-03-04
    • 2014-05-20
    • 1970-01-01
    • 2020-04-10
    • 2021-10-26
    • 2016-03-25
    • 2019-02-02
    相关资源
    最近更新 更多