Build fieldlist from dicts in a loop¶
Distinct latitudes/longitudes¶
In this example each field is defined by a dict using generic metadata keys. The latitudes and longitudes specified as disctinct values, the 2D field geometry will be automatically built from them.
[1]:
prototype = {
"geography": {"latitudes": [10.0, 0.0, -10.0], "longitudes": [20, 40.0]},
"values": [1, 2, 3, 4, 5, 6],
"time": {"valid_datetime": "2018-08-01T09:00:00Z"},
}
d = [
{"parameter": {"variable": "t"}, "vertical": {"level": 500}, **prototype},
{"parameter": {"variable": "t"}, "vertical": {"level": 850}, **prototype},
{"parameter": {"variable": "u"}, "vertical": {"level": 500}, **prototype},
{"parameter": {"variable": "u"}, "vertical": {"level": 850}, **prototype},
{"parameter": {"variable": "d"}, "vertical": {"level": 850}, **prototype},
{"parameter": {"variable": "d"}, "vertical": {"level": 600}, **prototype},
]
Create a fieldlist from the data above in a loop.
[2]:
from earthkit.data import Field, create_fieldlist
ds = create_fieldlist([Field.from_dict(f) for f in d])
[3]:
ds.ls()
[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 09:00:00+00:00 | 2018-08-01 09:00:00+00:00 | 0 days | 500 | unknown | None | _distinct_ll |
| 1 | t | 2018-08-01 09:00:00+00:00 | 2018-08-01 09:00:00+00:00 | 0 days | 850 | unknown | None | _distinct_ll |
| 2 | u | 2018-08-01 09:00:00+00:00 | 2018-08-01 09:00:00+00:00 | 0 days | 500 | unknown | None | _distinct_ll |
| 3 | u | 2018-08-01 09:00:00+00:00 | 2018-08-01 09:00:00+00:00 | 0 days | 850 | unknown | None | _distinct_ll |
| 4 | d | 2018-08-01 09:00:00+00:00 | 2018-08-01 09:00:00+00:00 | 0 days | 850 | unknown | None | _distinct_ll |
| 5 | d | 2018-08-01 09:00:00+00:00 | 2018-08-01 09:00:00+00:00 | 0 days | 600 | unknown | None | _distinct_ll |
[4]:
ds[0]
[4]:
Field
| number_of_values | 6 |
| array_type | ndarray |
| array_dtype | int64 |
| variable | t |
| units | dimensionless |
| valid_datetime | 2018-08-01 09:00:00+00:00 |
| base_datetime | 2018-08-01 09:00:00+00:00 |
| step | 0:00:00 |
| level | 500 |
| layer | None |
| level_type | unknown |
| member | None |
| grid_spec | None |
| grid_type | _distinct_ll |
| shape | (3, 2) |
| area | (10.0, 20.0, -10.0, 40.0) |