diff --git a/docs/source/how-tos/xr_engine/index.rst b/docs/source/how-tos/xr_engine/index.rst index 169f4f77..6a5311bd 100644 --- a/docs/source/how-tos/xr_engine/index.rst +++ b/docs/source/how-tos/xr_engine/index.rst @@ -23,6 +23,7 @@ Xarray engine xarray_engine_dims_as_attrs.ipynb xarray_engine_extra_dims.ipynb xarray_engine_remapping.ipynb + xarray_engine_aux_coords.ipynb xarray_engine_holes.ipynb xarray_engine_chunks.ipynb xarray_engine_chunks_on_dask_cluster.ipynb diff --git a/docs/source/how-tos/xr_engine/xarray_engine_aux_coords.ipynb b/docs/source/how-tos/xr_engine/xarray_engine_aux_coords.ipynb new file mode 100644 index 00000000..8165ac2f --- /dev/null +++ b/docs/source/how-tos/xr_engine/xarray_engine_aux_coords.ipynb @@ -0,0 +1,1902 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c2feafcc-430b-4718-983f-554e55dcd54a", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Xarray engine: auxiliary coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1a6e355d-3fbf-4d92-b32f-a9d7e770f9db", + "metadata": { + "editable": true, + "scrolled": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import earthkit.data as ekd" + ] + }, + { + "cell_type": "markdown", + "id": "f3117255-6cc1-4cf2-ba91-dc3134973b91", + "metadata": {}, + "source": [ + "### Basic example" + ] + }, + { + "cell_type": "markdown", + "id": "e96e8da8-8219-4a79-92ad-515606816919", + "metadata": {}, + "source": [ + "First, we get some GRIB data containing control and perturbed forecasts." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a8f1d8b7-4a3b-4186-a827-17dbb16eaa2b", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " " + ] + }, + { + "data": { + "text/html": [ + "
| \n", + " | parameter.variable | \n", + "time.valid_datetime | \n", + "time.base_datetime | \n", + "time.step | \n", + "vertical.level | \n", + "vertical.level_type | \n", + "ensemble.member | \n", + "geography.grid_type | \n", + "metadata.dataType | \n", + "
|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "t | \n", + "2024-06-03 00:00:00 | \n", + "2024-06-03 | \n", + "0 days 00:00:00 | \n", + "500 | \n", + "pressure | \n", + "0 | \n", + "regular_ll | \n", + "cf | \n", + "
| 1 | \n", + "t | \n", + "2024-06-03 06:00:00 | \n", + "2024-06-03 | \n", + "0 days 06:00:00 | \n", + "500 | \n", + "pressure | \n", + "0 | \n", + "regular_ll | \n", + "cf | \n", + "
| 2 | \n", + "t | \n", + "2024-06-03 00:00:00 | \n", + "2024-06-03 | \n", + "0 days 00:00:00 | \n", + "500 | \n", + "pressure | \n", + "1 | \n", + "regular_ll | \n", + "pf | \n", + "
| 3 | \n", + "t | \n", + "2024-06-03 00:00:00 | \n", + "2024-06-03 | \n", + "0 days 00:00:00 | \n", + "500 | \n", + "pressure | \n", + "2 | \n", + "regular_ll | \n", + "pf | \n", + "
| 4 | \n", + "t | \n", + "2024-06-03 06:00:00 | \n", + "2024-06-03 | \n", + "0 days 06:00:00 | \n", + "500 | \n", + "pressure | \n", + "1 | \n", + "regular_ll | \n", + "pf | \n", + "
| 5 | \n", + "t | \n", + "2024-06-03 06:00:00 | \n", + "2024-06-03 | \n", + "0 days 06:00:00 | \n", + "500 | \n", + "pressure | \n", + "2 | \n", + "regular_ll | \n", + "pf | \n", + "
<xarray.Dataset> Size: 33kB\n", + "Dimensions: (member: 3, step: 2, latitude: 19, longitude: 36)\n", + "Coordinates:\n", + " * member (member) <U1 12B '0' '1' '2'\n", + " forecast_type (member) <U2 24B 'cf' 'pf' 'pf'\n", + " * step (step) timedelta64[ns] 16B 00:00:00 06:00:00\n", + " * latitude (latitude) float64 152B 90.0 80.0 70.0 ... -70.0 -80.0 -90.0\n", + " * longitude (longitude) float64 288B 0.0 10.0 20.0 ... 330.0 340.0 350.0\n", + "Data variables:\n", + " t (member, step, latitude, longitude) float64 33kB 250.2 ......\n", + "Attributes:\n", + " Conventions: CF-1.8\n", + " institution: ECMWF
| \n", + " | metadata.shortName | \n", + "metadata.dataDate | \n", + "metadata.dataTime | \n", + "metadata.stepRange | \n", + "metadata.dataType | \n", + "metadata.quantile | \n", + "metadata.number | \n", + "metadata.numberOfForecastsInEnsemble | \n", + "
|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "1:3 | \n", + "1 | \n", + "3 | \n", + "
| 1 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "1:5 | \n", + "1 | \n", + "5 | \n", + "
| 2 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "1:10 | \n", + "1 | \n", + "10 | \n", + "
| 3 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "2:3 | \n", + "2 | \n", + "3 | \n", + "
| 4 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "2:5 | \n", + "2 | \n", + "5 | \n", + "
| 5 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "2:10 | \n", + "2 | \n", + "10 | \n", + "
| 6 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "3:3 | \n", + "3 | \n", + "3 | \n", + "
| 7 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "3:5 | \n", + "3 | \n", + "5 | \n", + "
| 8 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "3:10 | \n", + "3 | \n", + "10 | \n", + "
| 9 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "4:5 | \n", + "4 | \n", + "5 | \n", + "
| 10 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "4:10 | \n", + "4 | \n", + "10 | \n", + "
| 11 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "5:5 | \n", + "5 | \n", + "5 | \n", + "
| 12 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "5:10 | \n", + "5 | \n", + "10 | \n", + "
| 13 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "6:10 | \n", + "6 | \n", + "10 | \n", + "
| 14 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "7:10 | \n", + "7 | \n", + "10 | \n", + "
| 15 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "8:10 | \n", + "8 | \n", + "10 | \n", + "
| 16 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "9:10 | \n", + "9 | \n", + "10 | \n", + "
| 17 | \n", + "2tp | \n", + "20251209 | \n", + "0 | \n", + "0-168 | \n", + "pd | \n", + "10:10 | \n", + "10 | \n", + "10 | \n", + "
<xarray.Dataset> Size: 13kB\n", + "Dimensions: (quantile: 18, latitude: 7, longitude: 12)\n", + "Coordinates:\n", + " * quantile (quantile) <U5 360B '10:10' '1:10' '1:3' ... '8:10' '9:10'\n", + " quantile_rank (quantile) <U2 144B '10' '1' '1' '1' '2' ... '6' '7' '8' '9'\n", + " nquantiles (quantile) int64 144B 10 10 3 5 10 3 5 ... 5 10 5 10 10 10 10\n", + " * latitude (latitude) float64 56B 90.0 60.0 30.0 0.0 -30.0 -60.0 -90.0\n", + " * longitude (longitude) float64 96B 0.0 30.0 60.0 ... 270.0 300.0 330.0\n", + "Data variables:\n", + " 2tp (quantile, latitude, longitude) float64 12kB 13.37 ... 0.0\n", + "Attributes:\n", + " Conventions: CF-1.8\n", + " institution: ECMWF