Solution to practical1.
2. To use grib_dump to inspect the contents of file1.grib1:
|
% grib_dump file1.grib1
By using grib_dump on its own and with the various options, (-O, -a, etc), you should find:
|
• the
- the message is encoded using GRIB edition 1 (editionNumber=1);
|
• it - it contains the 2 metre temperature field (shortName=2t, marsParam=167.128, paramId=167);
|
• the 2011022512 - 00 and the forecast step=12;
|
• the a - an octahedral reduced Gaussian grid (typeOfGrid=reduced_gg) with N=
|
128 256);Alternatively, with grib_dump inspect some templates in the “GRIB_SAMPLES_PATH” directory. 3. For Similarly for the file file2.grib2
|
% grib_dump file1.grib2
By using grib_dump on its own and with various options, (-O, -a etc), you should find:
|
• the
- the message is encoded using GRIB edition 2 -
|
grib_edition• it - it contains the temperature field on a specified height of 2 m above ground (shortName=2t, paramId = 167, discipline = 0, parameterCategory = 0, parameterNumber = 0, typeOfFirstFixedSurface = 103);
|
• the 2011022512 - 00 and the forecast step=12;
|
• the a - an octahedral reduced Gaussian grid (typeOfGrid=reduced_gg) with N=
|
128 256);4. To quickly find the maximum, minimum and average values of the field, look for the computed keys max, min, and average.
For both files you should find:
• maximum = 314.204 • minimum = 222.44 • average = 285.261
|
Solution to practical1.
Expand |
---|
|
To list the GRIB messages in msl.grib1, use: % grib_ls msl.grib1
edition centre typeOfLevel level dataDate stepRange dataType shortName packingType gridType
1 ecmf surface 0
|
20110225 20190201 0 cf msl grid_simple regular_gg
1 ecmf surface 0
|
20110225 20190201 6 cf msl grid_simple regular_gg
1 ecmf surface 0
|
20110225 20190201 12 cf msl grid_simple regular_gg
1 ecmf surface 0
|
20110225 20190201 18 cf msl grid_simple regular_gg
1 ecmf surface 0
|
20110225 20190201 24 cf msl grid_simple regular_gg
5 of 5 grib messages in msl.grib1
The file contains mean sea-level pressure (shortName=msl) from the ECMWF |
EPS ENS control forecast (dataType=cf) for 6-hourly steps from 0 to 24 hours for dataDate= |
2011022520190201. The messages are encoded in GRIB edition 1.
|
2. To list the GRIB messages in msl.grib2
% grib_ls msl.grib2
edition centre date dataType gridType stepRange typeOfLevel level shortName packingType
2 ecmf
|
20110225 20190201 cf regular_gg 0 meanSea 0 msl grid_simple
2 ecmf
|
20110225 20190201 cf regular_gg 6 meanSea 0 msl grid_simple
2 ecmf
|
20110225 20190201 cf regular_gg 12 meanSea 0 msl grid_simple
2 ecmf
|
20110225 20190201 cf regular_gg 18 meanSea 0 msl grid_simple
2 ecmf
|
20110225 20190201 cf regular_gg 24 meanSea 0 msl grid_simple
5 of 5 grib messages in msl.grib2
The file also contains mean sea-level pressure (shortName=msl) from the ECMWF
|
EPS ENS control forecast (dataType=cf) for 6-hourly steps from 0 to 24 hours for dataDate= |
2011022520190201. In this file the messages are encoded in GRIB edition 2.
The lists show the default keys printed by grib_ls for GRIB 1 and GRIB 2. |
3. To print the mars keys, use grib_ls -m:% grib_ls -m msl.grib1
msl.grib1
domain levtype date time step param class type stream expver _leg_number
g sfc 20110225 0000 0 151.128 od cf enfo 0001 1
g sfc 20110225 0000 6 151.128 od cf enfo 0001 1
g sfc 20110225 0000 12 151.128 od cf enfo 0001 1
g sfc 20110225 0000 18 151.128 od cf enfo 0001 1
g sfc 20110225 0000 24 151.128 od cf enfo 0001 1
5 of 5 messages in msl.grib1
5 of 5 total messages in 1 files% grib_ls -m msl.grib2
msl.grib2
domain date time expver class type stream _leg_number step levtype param
g 20110225 0000 0001 od cf enfo 1 0 sfc 151
g 20110225 0000 0001 od cf enfo 1 6 sfc 151
g 20110225 0000 0001 od cf enfo 1 12 sfc 151
g 20110225 0000 0001 od cf enfo 1 18 sfc 151
g 20110225 0000 0001 od cf enfo 1 24 sfc 151
5 of 5 messages in msl.grib25 of 5 total messages in 1 files4. Output can be printed in descending step order using grib_ls with the -B option. Note it is necessary to use “step:i
” here as step has a default type of ‘string’. % grib_ls -B "step:i desc" msl.grib1
edition centre typeOfLevel level dataDate stepRange dataType shortName packingType gridType
1 ecmf surface 0 20110225 24 cf msl grid_simple regular_gg
1 ecmf surface 0 20110225 18 cf msl grid_simple regular_gg
1 ecmf surface 0 20110225 12 cf msl grid_simple regular_gg
1 ecmf surface 0 20110225 6 cf msl grid_simple regular_gg
1 ecmf surface 0 20110225 0 cf msl grid_simple regular_gg
% grib_ls -B "step:i desc" msl.grib2
edition centre date dataType gridType stepRange typeOfLevel level shortName packingType
2 ecmf 20110225 cf regular_gg 24 meanSea 0 msl grid_simple
2 ecmf 20110225 cf regular_gg 18 meanSea 0 msl grid_simple
2 ecmf 20110225 cf regular_gg 12 meanSea 0 msl grid_simple
2 ecmf 20110225 cf regular_gg 6 meanSea 0 msl grid_simple
2 ecmf 20110225 cf regular_gg 0 meanSea 0 msl grid_simple
5. To specify a set of keys to print, use the -p option: % grib_ls -p centre,dataDate,stepRange,typeOfLevel,shortName msl.grib1
centre dataDate stepRange typeOfLevel shortName
ecmf 20110225 0 surface msl
ecmf 20110225 6 surface msl
ecmf 20110225 12 surface msl
ecmf 20110225 18 surface msl
ecmf 20110225 24 surface msl
5 of 5 grib messages in msl.grib1
The same keys are listed but the order in which they appear differs between GRIB edition 1 and GRIB edition 2.
Using the "key:i " for centre and levelType prints these keys as their integer values rather than strings: |
% grib_ls -p centre:i,dataDate,stepRange,levelType:i,shortName,paramId msl.grib1
centre dataDate stepRange levelType shortName paramId
98
|
20110225 20110225 20110225 20110225 20110225 20190201 24 1 msl 151
5 of 5 grib messages in msl.grib1
Similarly for msl.grib2:
|
% grib_ls -p centre:i,dataDate,stepRange,levelType:i,shortName,paramId msl.grib2
centre dataDate stepRange levelType shortName paramId
98
|
20110225 20110225 20110225 20190201 12 101 msl 151
98
|
20110225 20190201 18 101 msl 151
98
|
20110225 20190201 24 101 msl 151
5 of 5 grib messages in msl.grib2
|
Solution to grib_ls -l practical1.
Expand |
---|
|
To list the nearest points to ECMWF (Lat 51.42 N, Lon 0.95 W) use
% grib_ls -l 51.42,-0.95 msl.grib1
…
5 of 5 total grib messages in 1 files
Input Point: latitude=51.42 longitude=-0.95
Grid Point chosen #3 index=17199 latitude=51.62 longitude=359.10 distance=22.57 (Km)
Other grid Points
- 1 - index=17599 latitude=50.72 longitude=359.10 distance=77.54 (Km)
- 2 - index=17598 latitude=50.72 longitude=358.20 distance=97.59 (Km)
- 3 - index=17199 latitude=51.62 longitude=359.10 distance=22.57 (Km)
- 4 - index=17198 latitude=51.62 longitude=358.20 distance=62.87 (Km)
|
Note we specify the longitude of 0.95 W with -0.95 ! |
The nearest grid point is at latitude=51.62 longitude=359.10 (=0.9 W) and is 22.57 km from ECMWF.
|
2.
To output only the forecast step and MSLP value at the nearest grid point use:
% grib_ls -l 51.42,-0.95,1 -p stepRange msl.grib1
stepRange value
0 102527
6 102365
12 102456
18 102289
24 101862
5 of 5 grib messages in msl.grib1
Input Point: latitude=51.42 longitude=-0.95
Grid Point chosen #3 index=17199 latitude=51.62 longitude=359.10 distance=22.57 (Km)
Other grid Points
- 1 - index=17599 latitude=50.72 longitude=359.10 distance=77.54 (Km)
- 2 - index=17598 latitude=50.72 longitude=358.20 distance=97.59 (Km)
- 3 - index=17199 latitude=51.62 longitude=359.10 distance=22.57 (Km)
- 4 - index=17198 latitude=51.62 longitude=358.20 distance=62.87 (Km) Note it is necessary to specify MODE=1 in order to print the value of the nearest grid point only.
To output the values at the four grid points nearest to ECMWF, use MODE=4 which is the default:
% grib_ls -l 51.42,-0.95 -p stepRange msl.grib1
stepRange value1 value2 value3 value4
0 102674 102663 102527 102501
6 102532 102516 102365 102333
12 102633 102585 102456 102426
18 102444 102390 102289 102259
24 102057 101959 101862 101760
5 of 5 grib messages in msl.grib1
Input Point: latitude=51.42 longitude=-0.95
Grid Point chosen #3 index=17199 latitude=51.62 longitude=359.10 distance=22.57 (Km)
Other grid Points
- 1 - index=17599 latitude=50.72 longitude=359.10 distance=77.54 (Km)
- 2 - index=17598 latitude=50.72 longitude=358.20 distance=97.59 (Km)
- 3 - index=17199 latitude=51.62 longitude=359.10 distance=22.57 (Km)
- 4 - index=17198 latitude=51.62 longitude=358.20 distance=62.87 (Km)
|
3. To specify the land-sea mask, use:
% grib_ls -l 51.42,-0.95,1,lsm.grib1 -p stepRange msl.grib1
stepRange value
0 102527
6 102365
12 102456
18 102289
24 101862
5 of 5 grib messages in msl.grib1
Input Point: latitude=51.42 longitude=-0.95
Grid Point chosen #3 index=17199 latitude=51.62 longitude=359.10 distance=22.57 (Km)
Mask values:
- 1 - index=17599 latitude=50.72 longitude=359.10 distance=77.54 (Km) value=0.00
- 2 - index=17598 latitude=50.72 longitude=358.20 distance=97.59 (Km) value=1.00
- 3 - index=17199 latitude=51.62 longitude=359.10 distance=22.57 (Km) value=1.00
- 4 - index=17198 latitude=51.62 longitude=358.20 distance=62.87 (Km) value=1.00
Here the mask value at the end of the line showing the four nearest grid points indicates which are land points: Land points have mask ≥ 0.5; sea points have mask<0.5. |