- 积分
- 17087
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-4-23
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如题,如果下载的nc文件的缺测值是nan,那么很有可能在使用esccr等不允许有缺测值的函数时会出现“都是等值线”的错误,如何处理?
一句话:如果变量名叫v,那么直接v@_FillValue = -32767 (什么-9999,9999都行,0也行,但是会报warning),不用其他花哨的东西!!
花哨的东西包括但不限于:
v = where( ismissing(v), 0, v )
v = where(isnan_ieee(v), 0, v )
v = where( v.eq.v@_FillValue, 0, v )
v = mask( v, v.eq.v@_FillValue, False )
f = addfile("v.nc","w")
v = f->v
if (any(isnan_ieee(v))) then
value = 1.e20
replace_ieeenan (v, value, 0)
v@_FillValue = value
end if
负责任的讲,上述花哨的语句一句也不能解决v的缺测值是nan从而导致函数计算错误的问题,直接v@_FillValue = -32767简单粗暴有效!!
题外话,解决本来是vibeta本来就是三层但总是报错“数据要三层”并显示错误是-999的,对vibeta中的几个多维变量进行v = where( ismissing(v), 0, v ),就能解决问题!!
|
|