GRIB: listing contents

We will work with a GRIB file containing 6 messages, which we get as a sample (see from_source()).

[1]:
import earthkit.data as ekd

fl = ekd.from_source("sample", "test6.grib").to_fieldlist()

ls()

ls() lists all the fields:

[2]:
fl.ls()
[2]:
parameter.variable time.valid_datetime time.base_datetime time.step vertical.level vertical.level_type ensemble.member geography.grid_type
0 t 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll
1 u 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll
2 v 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll
3 t 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 850 pressure 0 regular_ll
4 u 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 850 pressure 0 regular_ll
5 v 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 850 pressure 0 regular_ll

The number of fields can be passed as an argument:

[3]:
fl.ls(2)
[3]:
parameter.variable time.valid_datetime time.base_datetime time.step vertical.level vertical.level_type ensemble.member geography.grid_type
0 t 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll
1 u 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll
[4]:
fl.ls(n=2)
[4]:
parameter.variable time.valid_datetime time.base_datetime time.step vertical.level vertical.level_type ensemble.member geography.grid_type
0 t 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll
1 u 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll

Keys and extra keys

We can use our own list of keys instead of the default ones.

[5]:
fl.ls(keys="time.base_datetime")
[5]:
time.base_datetime
0 2018-08-01 12:00:00
1 2018-08-01 12:00:00
2 2018-08-01 12:00:00
3 2018-08-01 12:00:00
4 2018-08-01 12:00:00
5 2018-08-01 12:00:00
[6]:
fl.ls(keys=["time.base_datetime", "vertical.level"])
[6]:
time.base_datetime vertical.level
0 2018-08-01 12:00:00 1000
1 2018-08-01 12:00:00 1000
2 2018-08-01 12:00:00 1000
3 2018-08-01 12:00:00 850
4 2018-08-01 12:00:00 850
5 2018-08-01 12:00:00 850

The default list of keys can be extended with extra_keys:

[7]:
fl.ls(extra_keys="parameter.units")
[7]:
parameter.variable time.valid_datetime time.base_datetime time.step vertical.level vertical.level_type ensemble.member geography.grid_type parameter.units
0 t 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll kelvin
1 u 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll meter / second
2 v 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll meter / second
3 t 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 850 pressure 0 regular_ll kelvin
4 u 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 850 pressure 0 regular_ll meter / second
5 v 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 850 pressure 0 regular_ll meter / second

head()

head() works in the same way as ls() but it lists fields from the start of the fieldlist.

[8]:
fl.head(2)
[8]:
parameter.variable time.valid_datetime time.base_datetime time.step vertical.level vertical.level_type ensemble.member geography.grid_type
0 t 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll
1 u 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 1000 pressure 0 regular_ll

tail()

tail() works in the same way as ls() but it lists fields from the end of the fieldlist.

[9]:
fl.tail(2)
[9]:
parameter.variable time.valid_datetime time.base_datetime time.step vertical.level vertical.level_type ensemble.member geography.grid_type
0 u 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 850 pressure 0 regular_ll
1 v 2018-08-01 12:00:00 2018-08-01 12:00:00 0 days 850 pressure 0 regular_ll

The simplest ways to inspect a field contents is to use the automatic display.

[10]:
fl[0]
[10]:
Field
number_of_values84
array_typendarray
array_dtypefloat64
variablet
unitskelvin
valid_datetime2018-08-01 12:00:00
base_datetime2018-08-01 12:00:00
step0:00:00
level1000
layerNone
level_typepressure
member0
grid_spec{'grid': [30, 30]}
grid_typeregular_ll
shape(7, 12)
area(90.0, 0.0, -90.0, 330.0)
[ ]: