我在NetCDF文件中有一个变量,如果变量为null,则该变量具有默认值。当变量缺少值时,如何删除此值或将其更改为0?
答案 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