爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 244|回复: 3

[经验总结] NCL对_FillValue值为nan时报错

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 一大碗年糕 于 2025-4-16 01:21 编辑

问题:好久没用ncl,下午在用ncl的esacr函数计算python输出的nc文件时,发现输出结果都为nan
原因:NCL 中 nan 类型的 _FillValue 会触发 esacr 对全序列的排斥(即使你数据里没有 nan),因为 esacr 在内部使用 .eq. _FillValue 来检查,而 nan == nan 是 false,所以判断会出错,导致所有滞后结果为 nan。(来自GPT)
解决办法:删除掉delete(var@_FillValue)避免出错
记录一下~

                               
登录/注册后可看大图


                               
登录/注册后可看大图

密码修改失败请联系微信:mofangbao
发表于 3 天前 | 显示全部楼层
if (any(isnan_ieee(div_trend))) then
    value = 1e20
    replace_ieeenan (div_trend, value, 0)
    div_trend@_FillValue = value
end if
也可以试试这种替换的方式
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

发表于 3 天前 | 显示全部楼层
{:5_213:}{:5_213:}
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 3 天前 | 显示全部楼层
光电工程 发表于 2025-4-15 19:52
if (any(isnan_ieee(div_trend))) then
    value = 1e20
    replace_ieeenan (div_trend, value, 0)

可以的哈哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表