如何在 Python 中过滤具有特定条件的 netCDF 变量?
How can I filter netCDF variables with specific conditions in Python?
我正在读取 netCDF 文件并希望根据过滤条件 (vwc < 5) 保留来自其他变量的数据,其中 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<5.
这适用于过滤掉我的数据。
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
我正在读取 netCDF 文件并希望根据过滤条件 (vwc < 5) 保留来自其他变量的数据,其中 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<5.
这适用于过滤掉我的数据。
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