具有填充值/缺失值的NetCDF变量

时间:2016-06-30 20:27:17

标签: python netcdf

我在NetCDF文件中有一个变量,如果变量为null,则该变量具有默认值。当变量缺少值时,如何删除此值或将其更改为0?

1 个答案:

答案 0 :(得分:3)

听起来问题是当变量填充到NetCDF文件中时,它被设置为为缺少的值插入一些默认值。现在,我假设您需要在写入文件之后删除这些默认值,并且您正在处理数据。

所以(取决于你如何访问变量)我会将变量从NetCDF文件中拉出来并将其分配给python变量。这是第一个想到的方法。

使用for循环逐步执行并将该默认值替换为0

variable=NetCDF_variable  #Assume default value is 1e10
cleaned_list=[]
for i in variable:
    if i == 1e10:
        cleaned_list.append(0)  #0 or whatever you want to fill here
    else: 
        cleaned_list.append(i)

如果默认值为浮点数,您可能需要查看numpy.isclose上述代码是否正常工作。您可能也会对masking您的数据感兴趣,以防您通过插入0来执行任何计算。

编辑:用户N1B4提供了一种更加清洁和有效的方式来完成与上面完全相同的操作。

variable[variable == 1e10] = 0