Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 日志 › 科研记录:ecCodes处理grib文件问题

科研记录:ecCodes处理grib文件问题

Eswlnk的头像
Eswlnk
2025-08-07 22:30:09
科研记录:ecCodes处理grib文件问题-Eswlnk Blog
智能摘要 AI
文章描述了使用`ecCodes`工具将ERA5再分析气象数据从GRIB格式转换为NetCDF4格式时遇到的问题。问题源于不同变量、层级或预报步长共享同一时间戳,导致合并时出现“非唯一字段”错误。具体表现为下载的数据包含额外的时间戳(如`1999-12-31T18:00:00Z`),与预期的`2000-01-01T00:00:00Z`冲突。 为解决此问题,作者建议先使用`grib_copy`工具简单地合并grib文件,避免时间戳冲突,然后通过`grib_to_netcdf`工具处理变量并转换为NetCDF4格式。最终命令为:`grib_copy 2000-2010_step_6.grib 2011-2020_step-6

0x00 事件还原

从Climate Data Store下载ERA5再分析气象数据,时间步长为6小时,Data format为GRIB,并用ecCodes中的grib_to_netcdf工具实现对grib文件合并转换为NetCDF4(官方工具方便处理变量),结果出现问题:

grib_to_netcdf: Version 2.42.0
grib_to_netcdf: Processing input file '2000-2010.grib'.
grib_to_netcdf: Processing input file '2011-2020.grib'.
ECCODES ERROR   :  Wrong number of fields
ECCODES ERROR   :  File contains 102284 GRIBs, 112504 left in internal description, 225008 in request
ECCODES ERROR   :  The fields are not considered distinct!

ECCODES ERROR   :  Hint: This may be due to several fields having the same validity time.
ECCODES ERROR   :  Try using the -T option (Do not use time of validity)

该问题在ECMWF官网有过记录,该问题原因如下:

  • 不同的变量/层级/预报步长共享同一个时间戳;
  • 两个文件之间时间重叠;
  • ECCODES 尝试将它们合并进 NetCDF,但识别为“非唯一字段”。

0x01 检查

从官网下载的数据为何会出现这样的问题?这里我使用Panoply查看了下grib文件的情况,结果如图:

科研记录:ecCodes处理grib文件问题-Eswlnk Blog

为何会有变量time和time1以及reftime1?详细如下:

double time1(time1=30684);
  :units = "Hour since 1999-12-31T18:00:00Z";
  :standard_name = "time";
  :long_name = "GRIB forecast or observation time";
  :calendar = "proleptic_gregorian";
  :bounds = "time1_bounds";
  
double reftime1(time1=30684);
  :standard_name = "forecast_reference_time";
  :long_name = "GRIB reference time";
  :calendar = "proleptic_gregorian";
  :units = "Hour since 1999-12-31T18:00:00Z";

结果显而易见,我这里是从2000-01-01T00:00:00Z下载数据,但是如果从官网下载grib数据格式,就会多出1999-12-31T18:00:00Z,这也就很好说明了,为什么会导致冲突。

0x02 解决问题

ecCodes工具中还有个grib_copy用来合并grib文件,简单拷贝/拼接,直接合并即可,例如以下指令

grib_copy 2000-2010_step_6.grib 2011-2020_step-6.grib 2000-2020.grib

然后再使用grib_to_netcdf来处理变量并转换为nc文件格式即可!

本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
ecCodesecmwf日志科研
1
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
本站上线邀请码免费兑换系统
上一篇
事件记录:国内网络故障情况
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 「日志」IG无缘S15总决赛
  • 来自谷歌27岁的生日涂鸦
  • 事件记录:国内网络故障情况
  • 本站上线邀请码免费兑换系统
  • 研究日志:ERA5-Land数据解析问题
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

「日志记录」关于宝塔Nginx防火墙代码记录
2024-01-29 2:35:50
「开发日志」在Vue3中如何为路由Query参数标注类型
2024-08-05 22:31:51
来自谷歌27岁的生日涂鸦
2025-09-27 22:50:12

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.386 秒   |  SQL查询 19 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈