【问题标题】:How can I filter netCDF variables with specific conditions in Python?如何在 Python 中过滤具有特定条件的 netCDF 变量?
【发布时间】:2020-08-23 12:42:24
【问题描述】:

我正在读取 netCDF 文件,并希望根据过滤条件 (vwc

我的错误包括 AttributeError: NetCDF: Attribute not found 和 AttributeError: 'numpy.ndarray' object has no attribute 'where' 因为我尝试使用 where 函数但我可能使用了不正确的语法。

# read in netCDF file
f = nc4.Dataset(fn[0], 'r')

# read in group from file
sm_am = f.groups['Retrieval_Data_AM']

# extract variables
vwc = np.asarray(sm_am.variables['water_content'][:,:])
any_variable = np.asarray(sm_am.variables['generic_variables'][:,:])

那我只想在vwc

【问题讨论】:

标签: python filter boolean conditional-statements netcdf


【解决方案1】:

这适用于过滤掉我的数据。

x = vwc > 5.0 # Boolean condition
new_var = old_var.copy() # copying old data as new variable
new_var[x] = np.nan # replace elements that meet the condition with NaN

【讨论】:

  • 很高兴听到您找到了解决方案。一个小评论:new_var = old_var 实际上并没有复制数据;如果您更改new_varold_var 也将被更改(参见pastebin.com/MCAzTJK4 的小示例)。如果您想要硬拷贝,请使用new_var = old_var.copy()
  • 我注意到old_var 也发生了变化。谢谢!!我现在会在答案中修复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 2019-04-18
  • 1970-01-01
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多