GRIB是气象领域的常用数据格式,有grib-1和grib-2两个版本。通常一个数据文件的数据格式是唯一的,不过ECMWF作为气象领域的大佬还是比较任性的,弄出个grib-1和grib-2混合文件来,这就比较难为通用的grib数据处理软件了。NCL的email list里有相关的提问,答复只能先用wgrib等工具将数据文件分割为两个分别只包含grib-1和grib-2数据的文件,然后再用NCL读取、绘图。

Date: Fri Jun 20 2014 - 11:15:55 MDT

Hi Balazs,

This is a known issue with NCL's GRIB reader. It currently cannot handle

these mixed GRIB 1 and 2 files. We have a ticket in place for this and we

do hope to solve it. If you want NCL to read the data in these files now

you will need to separately extract the GRIB1 and GRIB2 records into

separate files. I believe that you could do this either using the ECMWF

grib_api tool, or you could use the NCEP tools wgrib and wgrib2. wgrib.

Using wgrib and wgrib2 is pretty simple:

wgrib2 EL13040712 -grib grib2.grb

wgrib EL13040712 -grib -d all -o grib1.grb

produced files grib1.grb and grib2.grb that work fine with NCL.

ECMWF has something called grib_copy (

http://old.ecmwf.int/publications/manuals/grib_api/grib_copy.html) that is

also supposed to be easy to use.

Hope this helps.

-dave

MeteoInfo Java版对于grib数据的解码用的是Unidata开发的Netcdf Java库,关于如果读取混合文件的问题得到的答复如下:

Greetings Yaqiang,

netCDF-Java cannot handle this situation. I'm not sure what advantage

there is to ECMWF mixing grib records in a single file, but it would be

interesting to understand.

The only solution is to split the mixed grib file such that all of the

grib1 messages are in one file, and all of the grib2 messages are in

a second file.

I think you can do this using the grib_filter command line tool from

ecCodes (formally grib-api). You can write a rules file with the single

line:

write "./split/all_grib_[editionNumber]_records.grib[editionNumber]";

and then run:

grib_filter rules_files data/mixed.grb

where mixed.grb is the file containing the grib 1 and 2 messages. The result

will be that all of the grib1 messages will be output to:

split/all_grib_1_records.grib1

and all of the grib2 messages will be output to:

split/all_grib_2_records.grib2

For more info, check out:

Cheers,

Sean

同样需要先对混合文件进行分割。仔细看了看Netcdf Java库中相关代码,在读取grib数据时会根据第一个Message判断是grib-1还是grib-2。因此考虑事先给定grib-1或者grib-2格式,对数据文件按照两种格式读取两次,以便读取grib-1和grib-2中的所有变量。对MeteoInfo相关代码进行了修改实现了这样的功能,但是却发现读出来的变量还是偏少,看来这种方式并不能解决问题,目前还是需要先对混合文件进行分隔。

转载本文请联系原作者获取授权,同时请注明本文来自王亚强科学网博客。

链接地址:http://blog.sciencenet.cn/blog-611158-1052058.html

上一篇:Little endian HYSPLIT concentration data reading

下一篇:发布MeteoInfo 1.4.3

写入grib2++java_科学网—Mixed grib-1 and grib-2 data file - 王亚强的博文相关推荐

  1. linux apache24 使用,科学网—linux_centos第24_2次课Apache的安装 - 郭会强的博文

    第24次课Apache的安装 下载apache的网址 [root@ghq~]# cd /usr/local/src [root@ghqsrc]# ls mysql-5.1.40-linux-i686- ...

  2. php参考文献博客,科学网—博客文章可否作为参考文献引用? - 王德华的博文

    博客文章可否作为参考文献引用? 个人博客的发展(尤其是科学博客),估计会对科技传播等产生一定的影响.不知道是否有专家对此进行相关研究和预测. 前几天在喝咖啡的时候,随意翻阅散放在休息区域的杂志的时候, ...

  3. 安装mrt时怎么安装java_科学网—MODIS Reprojection Tool (MRT)安装及使用说明(转载) - 孙晓芳的博文...

    硕士论文就是利用MODIS数据做的,结果近3年过去了,现在又需要使用可是竟然忘了,汗一个,网上查了一下,多是如何安装的,但对具体使用中遇到的问题却没有解决,这里简单介绍一下. 首先是MRT下载问题,这 ...

  4. 随机投点法计算定积分java_科学网—0026:蒙特卡洛求定积分三种方法的理解 - 何成文的博文...

    蒙特卡洛主要思想就是采用粒子(大多是均匀分布生成的随机数,称为粒子)将积分符号转化为求和,从而实现快速求解目的.定积分求解主要有三种方法:随机投点法.平均值法.重要抽样法: 问题描述:如何求exp(x ...

  5. android 相片裁剪空间,科学网—根据需要的空间范围对目标图层进行空间裁剪 - 孙露的博文...

    在生态学及其相关领域研究中,经常需要绘制环境图层,有时是全球的(这样就不需要进行裁剪了),但是需要用到区域的时候,就需要裁剪一下.目前在arcgis软件中,完成这一步是比较繁琐,并且需要熟悉arcgi ...

  6. mk突变点检测_科学网—从网上找的M-K突变检验的程序 - 张乐乐的博文

    %从matlab论坛上找的MK突变检验的程序,这个程序运行的结果跟我自己编写程序运行出来的结果一样,但是跟魏凤英老师书上的例子出图结果不一样 A=xlsread('test-mk.xlsx'); x= ...

  7. 孪生素数 java代码_科学网—孪生素数猜想——利用 Java + 正则表达式 输出孪生素数对 - 马廷灿的博文...

    查了一下资料,发现正则表达式竟然可以用来检查素数(http://coolshell.cn/articles/2704.html)!(由于工作需要,几年前开始接触.利用正则表达式,给工作带了很大方便,也 ...

  8. python3.8.5是python3吗_科学网-Ubuntu16.04安装Python3.8.5问题及解决方法-陈超的博文

    Ubuntu16.04安装Python3.8.5: 安装编译之后出现apt-get错误You might want to run 'apt-get -f install' to correct the ...

  9. markdown 流程图js_科学网—让Markdown支持ASCII流程图和JavaScript流程图 - 李继存的博文...

    2014-12-25 12:08:34 计算机领域中一直存在两种不同的理念并彼此竞争, 可视化与可控化, 或称为所见即所得与所愿即所得. 前者是Windows的典型做法, 而后者是Linux的典型理念 ...

最新文章

  1. 使用C/C++发展Web系统开源
  2. excel导入数据时报错,显示Extracted SQL state class ‘22‘ from value ‘22001‘
  3. php 常用字符串函数
  4. 【地理信息系统GIS】教案(七章全)第二章:地理信息系统数据结构及数据获取
  5. org.apache.ibatis.reflection.ReflectionException: Error instantiating class with invalid types
  6. LeetCode 6062. 设计一个 ATM 机器
  7. 信息学奥赛一本通 1035:等差数列末项计算 | OpenJudge NOI 1.3 18
  8. 数据结构 3-0 栈与队列总结
  9. jsweet下载编译
  10. Gcode G4及M603定义
  11. MAX485芯片介绍(MAX485ESA+T,半双工RS422和RS485串口收发传输芯片,2.5Mbps传输速率。5V逻辑电平)
  12. 常见的加密方式之python实现
  13. R 运行中文文件使乱码的解决方案(案例示例)
  14. Android-自定义UI模板
  15. 关于LVM快速扩展Linux根目录/,缩减重挂载/home目录
  16. logstash日志收集走过的坑
  17. 二维高斯核函数(python)
  18. C++中地递增递减运算符和指针
  19. OpenGL(QT平台)学习与实战(一)
  20. 你和孩子是好朋友吗?

热门文章

  1. 2020年高压电工模拟考试软件及高压电工理论考试
  2. 云数据库·ApsaraDB产品月刊 11月刊
  3. iphone5s的产品设计在预料之外却又在情理之中
  4. 如何将PDF文件转换为Excel表格?这两个方法方便实用!
  5. AliOS Things 技术架构
  6. 软件测试专业英文词汇,软件测试专业词汇中英文对照
  7. 逻辑思维是运用计算机科学的基础概念,简析计算思维中的思维方式及思维本质...
  8. 全局搜索利用键盘上下键切换选中内容
  9. 华为的主流的服务器,华为高密度服务器:FusionCube超融合基础设施
  10. 考了初级会计职称到底能干什么?