GRIB API学习笔记03——key

目录

参考PPT:2A2-grib_api_keys

GRIB API:Keys

每个key都有一个原始类型(real,integer,sgring),并可以转换成其它种类。
key集合依赖于文件内容,不同文件有不同的key。
修改某个key可能使某些key消失,某些key可用。
key的值不一定在GRIB消息中编码,它可能是其他key组合的结果,或者是临时的。
CODED keys               编码到GRIB消息中
COMPUTED keys        临时或从其他key中计算

1.1.  Namespace

一组key集合的名字
可以使用namespace作为key的前缀,或直接使用key
time.step == step
parameter.paramId == paramId
分为几类,例如:
l  parameter
l  time
l  geography
l  vertical
l  mars
GRIB API的参考:
GRIB1
<//www.ecmwf.int/publications/manuals/d/gribapi/fm92/grib1/>
GRIB2
<//www.ecmwf.int/publications/manuals/d/gribapi/fm92/grib2/>
Edition independent
<//www.ecmwf.int/publications/manuals/d/gribapi/keys/>
查看grib文件的最简单方式是使用命令行工具:
grib_ls 摘要
grib_dump 详细信息
grib_filter 自定义输出格式

count            消息序号
coutTotal      文件集的消息序号
offset            消息起始在文件中的偏移字节数

1.3.  数值 data values

values
所有数据和缺失值的数组
numberOfCodedValues
数据段的数据个数,不包括缺失值
-number of values in the data sections (missing values excluded)
numberOfPoints
格点总数=values数组的大小
numberOfMissing
缺失点的个数
max, min, average
最大值、最小值、平均值

1.4.  地理 geography

distinctLatitudes, distinctLongitudes
经纬度特征值的数组
latitudes, longitudes
每个网格点的经纬度数组
latLonValues
每个网格点的经度/纬度/值的数组,格式如下:
(lat1,lon1,value1,lat2,lon2,value2,…,latN,lonN,valueN)

1.5.  时间 time

预报开始时间
dataDate YYYYMMDD (20070212)
dataTime (0000, 0600, 1200,…)
预报步长
stepType (instant, accum, avg, max, min, diff, rms, sd, cov, …)
stepUnits (s, m, h, 3h, 6h, 12h, D, M, Y, 10Y, 30Y, C)
startStep
endStep
stepRange ( “startStep-endStep” “endStep” )
step
预报时效
validityDate
validityTime

1.6.  网格 Grid(gridType)

两个版本都有的
-regular_ll
-reduced_ll
-mercator
-lambert
-polar_stereographic
-UTM
-simple_polyconic
-albers
-miller
-rotated_ll
-stretched_ll
-stretched_rotated_ll
-regular_gg
-rotated_gg
-stretched_gg
-stretched_rotated_gg
只有V2版有的:
-triangular_grid
-equatorial_azimuthal_equidistant
-azimuth_range
-cross_section
-Hovmoller
-time_section

1.7.  地理续 geography

点数目:
-Ni (Nx) 平行或x轴
-Nj (Ny) 经线或y轴
所有经纬度参数提供InDegrees版本:

-longitudeOfFirstGridPoint -> longitudeOfFirstGridPointInDegrees

-latitudeOfFirstGridPoint -> latitudeOfFirstGridPointInDegrees

-longitudeOfLastGridPoint -> longitudeOfLastGridPointInDegrees

-latitudeOfFirstGridPoint -> latitudeOfLastGridPointInDegrees

-iDirectionIncrement -> iDirectionIncrementInDegrees

-jDirectionIncrement -> jDirectionIncrementInDegrees

扫描模式(scanning mode)不应该直接访问,使用下面的key:
iScansNegatively
jScansPositively
jPointsAreConsecutive
修改上述值不会改变数据存储顺序。改变数据顺序和扫描标识,使用下面的key
swapScanningX
swapScanningY
swapScanningLon (same as swapScanningX)
swapScanningLat (same as swapScanningY)
参见<//tigge.ecmwf.int/grid.html>
对于下面的网格类型,经纬度点列表可以通过grib_get_data(tools, Fortran90)或grib_iterator©获得:
-regular_ll (regular lat lon)
-reduced_ll (reduced lat lon)
-regular_gg (regular gaussian)
-reduced_gg (reduced gaussian)
-lambert (lambert conformal)
同样可以获得带有bitmap的经纬度列表

1.8.  垂直 vertical

typeOfLevel:
surface, cloudBase, cloudTop, isothermZero, adiabaticCondensation, maxWind, tropopause, nominalTop, seaBottom, isothermal, isobaricInhPa, isobaricInPa, isobaricLayer, meanSea, heightAboveSea, heightAboveSeaLayer, heightAboveGround, heightAboveGroundLayer, sigma, sigmaLayer, hybrid, hybridLayer, depthBelowLand, depthBelowLandLayer, theta, thetaLayer, pressureFromGround, pressureFromGroundLayer, potentialVorticity, eta, depthBelowSea, entireAtmosphere, entireOcean
level
topLevel
bottomLevel
pv

1.9.  层次:levels

typeOfFirstFixedSurface (type and units)
scaleFactorValueOfFirstFixedSurface
scaledValueOfFirstFixedSurface
typeOfSecondFixedSurface (type and units)
scaleFactorValueOfSecondFixedSurface
scaledValueOfSecondFixedSurface

1.10.     参数:parameter

两个版本定义不同
提供版本独立的标识符,如:
paramId
shortName
name
units
centre
GRIB 1的参数:
centre
table2Version
indicatorOfParameter
levelType
level

GRIB 2的参数
discipline
parameterCategory
parameterNumber
typeOfFirstFixedSurface
scaleFactorOfFirstFixedSurface
scaledValueOfFirstFixedSurface
typeOfSecondFixedSurface
scaleFactorOfSecondFixedSurface
scaledValueOfSecondFixedSurface
productDefinitionTemplateNumber

1.11.     打包方式:packingType

GRIB 1:
-grid_simple
-grid_simple_matrix
-grid_second_order
-spectral_complex
-spectral_simple
GRIB 2:
-grid_simple
-grid_simple_matrix
-grid_second_order
-spectral_simple
-spectral_complex
-grid_simple_log_preprocessing
-grid_jpeg
-grid_png
-grid_ieee

1.11.1.           简单打包 Simple packing

     values
     decimalPrecision
     changeDecimalPrecision
     packingError (read only)
仅当了解打包如何工作的情况下使用如下keys:
referenceValue (read only)
     bitsPerValue
     decimalScaleFactor
     binaryScaleFactor (read only)

1.12.     位图:bitmap

通用
-bitmapPresent =0 (bitmap not present)
-bitmapPresent =1 (bitmap present)
GRIB 2:
-bitMapIndicator = 0 (bitmap present)
-bitMapIndicator = 1 (bitmap predefined by the centre)
-bitMapIndicator = 254 (bitmap applies defined previously)
-bitMapIndicator = 255 (bitmap not present)

附注

GRIB API使用的参数数据库(查询grib编码利器)
<//old.ecmwf.int/publications/manuals/d/gribapi/param/>