爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 981|回复: 12

NCL读取ERA5数据的时间解析

[复制链接]

新浪微博达人勋

发表于 2025-1-18 13:14:24 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 一大碗年糕 于 2025-1-18 13:33 编辑

NCL利用NCL读取ERA5数据时,无法对时间使用calendar_decode类的函数,报错显示:
  1. fatal:Argument type mismatch on argument (0) of (calendar_decode2) can not coerce
  2. fatal:["Execute.c":8637]:Execute: Error occurred at or near line 13 in file test.ncl
复制代码


原因在于,ERA5时间数据类型为int64,需要转为double才能被解析
https://mailman.ucar.edu/pipermail/ncl-talk/2024-August/019416.html
time_o = f1->valid_time
printVarSummary(time_o)
time_new = todouble(time_o)
copy_VarMeta(time_o,time_new)
printVarSummary(time_new)

重拾NCL中泪目...
截图 2025-01-18 13-11-27.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2025-1-25 18:09:55 | 显示全部楼层
fly100516 发表于 2025-1-25 10:30
我也遇到了这个问题,请问博主目前有没有好的解决方法,谢谢!

我目前也就是重新把时间time转化成float或double这种办法
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2025-1-26 04:26:36 | 显示全部楼层
我用的cd_calendar函数做时间解析,在调用函数之前,得转换成double型,然后还得给时间添加单位
time            = todouble(f4->valid_time)
time@units="seconds since 1970-01-01" ; 单位可以通过ncl_filedump命令查询
printVarSummary(time)
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2025-1-25 10:30:38 | 显示全部楼层
我也遇到了这个问题,请问博主目前有没有好的解决方法,谢谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2025-1-30 21:09:22 | 显示全部楼层
一大碗年糕 发表于 2025-1-25 18:09
我目前也就是重新把时间time转化成float或double这种办法

为什么转化完后还是一样的报错呀
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2025-2-9 00:08:13 | 显示全部楼层
一大碗年糕 发表于 2025-1-25 18:09
我目前也就是重新把时间time转化成float或double这种办法

好的,谢谢!我是用cdo转换,感觉era5更新了,更加麻烦了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2025-2-9 20:17:11 | 显示全部楼层
fly100516 发表于 2025-2-9 00:08
好的,谢谢!我是用cdo转换,感觉era5更新了,更加麻烦了

啊还有这种事情?前两个月用NCL处理ERA5数据还一切正常...
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2025-2-12 17:16:22 | 显示全部楼层
fly100516 发表于 2025-2-9 00:08
好的,谢谢!我是用cdo转换,感觉era5更新了,更加麻烦了

你好,想向您请教一下如何用cdo进行转换呀?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2025-2-12 18:21:32 | 显示全部楼层
再见惜别 发表于 2025-1-26 04:26
我用的cd_calendar函数做时间解析,在调用函数之前,得转换成double型,然后还得给时间添加单位
time      ...

那如果后续要处理某一个时间段的平均,是要把time重新写进去吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2025-2-12 18:36:43 | 显示全部楼层
jianglan 发表于 2025-2-12 18:21
那如果后续要处理某一个时间段的平均,是要把time重新写进去吗?

不需要把。后续的程序,你之前怎么处理就怎么处理
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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