{ "cells": [ { "cell_type": "markdown", "id": "b74f6a93-148e-4668-a401-6104f54838e1", "metadata": {}, "source": [ "## Xarray engine: mono variable" ] }, { "cell_type": "markdown", "id": "8b3010be-7895-4fd2-8ad6-a57db7845396", "metadata": {}, "source": [ "This notebook demonstrates how to generate an Xarray with a single dataarray containing all the parameters from a GRIB fieldlist. This data structure is often needed for machine learning." ] }, { "cell_type": "markdown", "id": "190cab07-5f50-410c-9c56-604a95a64ef0", "metadata": {}, "source": [ "First, we get 2m temperature and dewpoint data for a whole year on a low resolution regular latitude-longitude grid. It contains 2 fields per day (at 0 and 12 UTC) per parameter. " ] }, { "cell_type": "code", "execution_count": 1, "id": "613fc34e-0a19-49cb-9e12-129a9b50f08c", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "30e0db26f4d74fcdaa6088a2a2fbc6e9", "version_major": 2, "version_minor": 0 }, "text/plain": [ "t2_td2_1_year.grib: 0%| | 0.00/515k [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "1464" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import earthkit.data as ekd\n", "ds_fl = ekd.from_source(\"sample\", \"t2_td2_1_year.grib\")\n", "len(ds_fl)" ] }, { "cell_type": "raw", "id": "20e27e09-02fb-4f80-9224-03c3c54ecbf8", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "Next, we convert the GRIB Fieldlist to Xarray with :py:meth:`~data.readers.grib.index.GribFieldList.to_xarray`. There will be a single variable in the dataset called \"data\"." ] }, { "cell_type": "code", "execution_count": 2, "id": "9ec900dd-2670-41f6-be0c-cdcee6205ee1", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset> Size: 111kB\n",
"Dimensions: (valid_time: 732, param: 2, values: 9)\n",
"Coordinates:\n",
" * valid_time (valid_time) datetime64[ns] 6kB 2020-01-01 ... 2020-12-31T12:...\n",
" * param (param) <U2 16B '2d' '2t'\n",
" latitude (values) float64 72B dask.array<chunksize=(9,), meta=np.ndarray>\n",
" longitude (values) float64 72B dask.array<chunksize=(9,), meta=np.ndarray>\n",
"Dimensions without coordinates: values\n",
"Data variables:\n",
" data (valid_time, param, values) float64 105kB dask.array<chunksize=(1, 2, 9), meta=np.ndarray>\n",
"Attributes:\n",
" paramId: 168\n",
" class: d1\n",
" stream: clte\n",
" levtype: sfc\n",
" type: fc\n",
" expver: 0001\n",
" date: 20200101\n",
" time: 0\n",
" domain: g\n",
" Conventions: CF-1.8\n",
" institution: ECMWF<xarray.DataArray 'data' (valid_time: 732, param: 2, values: 9)> Size: 105kB\n",
"dask.array<open_dataset-data, shape=(732, 2, 9), dtype=float64, chunksize=(1, 2, 9), chunktype=numpy.ndarray>\n",
"Coordinates:\n",
" * valid_time (valid_time) datetime64[ns] 6kB 2020-01-01 ... 2020-12-31T12:...\n",
" * param (param) <U2 16B '2d' '2t'\n",
" latitude (values) float64 72B dask.array<chunksize=(9,), meta=np.ndarray>\n",
" longitude (values) float64 72B dask.array<chunksize=(9,), meta=np.ndarray>\n",
"Dimensions without coordinates: values\n",
"Attributes:\n",
" standard_name: unknown\n",
" long_name: 2 metre dewpoint temperature\n",
" units: K<xarray.Dataset> Size: 111kB\n",
"Dimensions: (valid_time: 732, param: 2, number: 1, values: 9)\n",
"Coordinates:\n",
" * valid_time (valid_time) datetime64[ns] 6kB 2020-01-01 ... 2020-12-31T12:...\n",
" * param (param) <U2 16B '2d' '2t'\n",
" * number (number) int64 8B 0\n",
" latitude (values) float64 72B dask.array<chunksize=(9,), meta=np.ndarray>\n",
" longitude (values) float64 72B dask.array<chunksize=(9,), meta=np.ndarray>\n",
"Dimensions without coordinates: values\n",
"Data variables:\n",
" data (valid_time, param, number, values) float64 105kB dask.array<chunksize=(1, 2, 1, 9), meta=np.ndarray>\n",
"Attributes:\n",
" paramId: 168\n",
" class: d1\n",
" stream: clte\n",
" levtype: sfc\n",
" type: fc\n",
" expver: 0001\n",
" date: 20200101\n",
" time: 0\n",
" domain: g\n",
" Conventions: CF-1.8\n",
" institution: ECMWF