GRIB encoder
An encoder is used to generate data in a suitable format that can be written/added to a target. Encoders are typically used implicitly via to_target() but we can also instantiate an object and work with it directly.
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
| 0 |
ecmf |
2t |
surface |
0 |
20200513 |
1200 |
0 |
an |
0 |
regular_ll |
<earthkit.data.encoders.grib.GribEncoder at 0x1076ed7b0>
The method to call is GribEncoder.encode(). The template argument can be a GRIB field. In the example below GribEncoder.encode() will simply create a copy (clone) of the underlying GRIB handle in the field.
<earthkit.data.encoders.grib.GribEncodedData at 0x107875de0>
The resulting object can be used in various ways.
b'GRIB\x00\x02\x0e\x01\x00\x00'
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
| 0 |
ecmf |
2t |
surface |
0 |
20200513 |
1200 |
0 |
an |
0 |
regular_ll |
Specifying new values
To replace the values in the resulting fields we need to use the values keyword argument.
(315.4599609375, 316.4599609375)
Specifying a field
When a field is specified as the data it is used as a template.
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
| 0 |
ecmf |
msl |
surface |
0 |
20210514 |
1200 |
0 |
an |
0 |
regular_ll |
When both data and template are specified, the values from the field in data will be copied into the GRIB message created from the template.
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
| 0 |
ecmf |
2t |
surface |
0 |
20210514 |
1200 |
0 |
an |
0 |
regular_ll |
We cannot use data, values and template together.
Cannot provide data, values and template together
Encoding without a template
It is possible to encode GRIB data without providing a template using only values and metadata. This is an experimental feature and only works for certain metadata keys and the grid has to be either global lat-lon or reduced Gaussian grid. The geography is inferred from the shape of the specified values.
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
| 0 |
ecmf |
2t |
heightAboveGround |
2 |
20250108 |
1200 |
24 |
af |
None |
regular_ll |
(4.697071658422638, 4.696983814239502)
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
| 0 |
ecmf |
t |
isobaricInhPa |
700 |
20250108 |
1200 |
24 |
af |
None |
regular_ll |
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
isOctahedral |
N |
| 0 |
ecmf |
2t |
heightAboveGround |
2 |
20250108 |
1200 |
24 |
af |
None |
reduced_gg |
1 |
96 |
Using preset options
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
| 0 |
ecmf |
2t |
surface |
0 |
20250108 |
1200 |
12 |
fc |
0 |
regular_ll |
|
centre |
shortName |
typeOfLevel |
level |
dataDate |
dataTime |
stepRange |
dataType |
number |
gridType |
| 0 |
ecmf |
2t |
surface |
0 |
20250108 |
1200 |
24 |
fc |
0 |
regular_ll |
Working with fieldlists
shortName step
0 2t 18
shortName step
0 msl 18