GRIB

概述

GRIB是国际公用的二进制格式，用来有效的存储气象/海洋的物理量场和描述它们的元数据。GRIB数据文件典型的由记录的搜集组成，即多个GRIB记录可以串联在一起形成一个单一数据集。GRIB记录是自描述数据对象，每个记录都不只包含数据，而且包含描述空间网格、有效时间、垂直层次的元数据，故而把它们合并成数据文件的次序是任意的。每个GRIB记录典型的包含特定时间和垂直层次的一个2-D经纬度坐标的数据网格，4-D GRIB数据集一般展开为时间或垂直层次不同的一组2-D记录。GRIB2相比于GRIB，有着更加复杂的头部字段集合用于元数据，还提供了可以更加显著缩小文件大小的数据压缩；GRIB2记录还可以包含集合（ensemble）信息，适合于传输集合预报产品。

网格数据包装

在WMO的GRIB2指南文档中举实例说明GRIB2报文（message）格式，选用了假想的500 hPa的位势高度5 X 5网格，这25个高度值的范围是从极小值5340位势米（gpm）到极大值5460 gpm。演示了采用简单包装方案的编码过程。第一步：数值的单位位势米（gpm）是SI单位，不需要转换。第二步：采用计算“字”位长度的方法，要求精度值D为1，即精确到小数点后1位，把所有值都缩放10ᴰ并取整为整数，结果范围从53400到54600。第三步：取参照值R为53400，所有网格值都减去这个参照值，余值范围是从0至1200。第四步：确定要表示极大余值1200需要的二进制位数，这里是11位。第五步：所有的余值都包装入11位长的“字”中，25个值总共需要275位长，等价于34字节加上3位，再用0填充5位最终形成35字节。解码过程通过参照值R和精度值D把包装后的值恢复为最初的值。这种从浮点数转换成定点数的包装方法可以初步缩减数据大小，也可称为是一种数据压缩；GRIB2支持在此基础上的PNG和JPEG2000压缩。