在python中用netcdf中的0替换inf值

时间:2017-09-17 00:26:26

标签: python netcdf python-xarray

我可以使用xarray替换NetCDF中的nan值,如下所示:

hndl_nc = hndl_nc.fillna(0.0)

有没有办法用0替换inf值?

2 个答案:

答案 0 :(得分:2)

Numpy的isfinite同时捕获np.infnp.nan

hndl_nc.where(hndl_nc.apply(np.isfinite)).fillna(0.0)

请注意,下一版xarray(0.10)将允许您直接在where method中指定填充值。

答案 1 :(得分:0)

尝试类似:

def replace_inf_with_zero(dataset):
    for varname in dataset.data_vars.keys():
        array = hndl_nc[varname]
        array[array == np.inf] = 0.