【问题标题】:How can I read values of a variable in a netcdf file in python?如何在 python 的 netcdf 文件中读取变量的值?
【发布时间】:2020-09-22 19:14:54
【问题描述】:

我有一个名为 air.sig995.2012.nc 的 NetCDF 文件。它有四个变量: ('lat','lon','time','air').

我正在尝试读取任何变量的值,假设变量air 使用下面的行:

import scipy.io.netcdf as S
fileobj=S.netcdf_file('air.sig995.2012.nc','r')
data=fileobj.variables['air'].getValue()

但它给了我以下错误:

ValueError: 只能将大小为 1 的数组转换为 Python 标量

我对 python 还很陌生。谁能帮我解决这个问题。

【问题讨论】:

  • 您有什么理由使用scipy.io.netcdf 而不是NetCDF4xarray?我认为 Scipy 的 NetCDF 东西已经很老了……
  • 使用 xarray 作为@bart 提到的。

标签: python variables netcdf


【解决方案1】:

如果不是 xarray,你可以使用 netcdf4-python 库,使用相同的切片语法:

from netCDF4 import Dataset

nc = Dataset('air.sig995.2012.nc')
my_array = nc.variables['air'][:]

【讨论】:

    【解决方案2】:

    您期望的输出非常模糊,但两种方法都应该根据您的具体目标起作用。

    `import xarray as xr `
    ### open netcdf file ###
    df = xr.open_dataset('path/file.nc')
    
    ### extract values of variable 'air' ####
    air = df['air'][:]
    air_flat = df['air'].values.flatten() # 1-d data
    

    【讨论】:

    • 如果您解释了您提供的代码如何回答问题,这将是一个更好的答案。
    猜你喜欢
    • 2016-03-13
    • 2015-02-03
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多