我有一个netcdf文件,其中一个变量有nan。我想读取文件,然后用-9999替换nans。然后保存新netcdf文件的更改。到目前为止,我有这个:
import netCDF4 as nc
from netCDF4 import dataset
import numpy as np
f = Dataset('anen_12km_1yr_san_angelo_00Z_100m_38_small_2014.nc','r+')
f.variables['wspd_wrf_m'][:][f.variables['wspd_wrf_m'][:] == np.nan] = -9999.
f.close()
当我重新打开这个文件并打印出来时np.最大值或者np.min.最小值对于这个变量,我仍然得到nan而不是-9999。我需要做些什么来替换这个netcdf文件中的nan并用替换的nan的更改重写一个新的netcdf文件?在
不能使用
== np.nan
比较。考虑这个例子:这样可以得到:
检查NAN的正确方法是使用
^{pr2}$np.isnan
:返回:
您可以使用它来替换NAN,类似于您现在所做的:
作为在python中执行此操作的替代方法,您还可以使用CDO在命令行的一行中执行此操作:
这将把所有缺少的值更改为-9999,并将文件中的\u FillValue元数据设置为-9999输出.nc在
相关问题 更多 >
编程相关推荐