{ "cells": [ { "cell_type": "markdown", "id": "c2feafcc-430b-4718-983f-554e55dcd54a", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Xarray engine: sqeezing dimensions" ] }, { "cell_type": "markdown", "id": "f1b37637-7cce-4af5-8bad-1ddb6492d732", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "First, we get some GRIB forecast data on pressure levels and read it into a GRIB fieldlist." ] }, { "cell_type": "code", "execution_count": 1, "id": "1a6e355d-3fbf-4d92-b32f-a9d7e770f9db", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "fbbb4422431d4d75aad6e3a4bd7d20d4", "version_major": 2, "version_minor": 0 }, "text/plain": [ "pl.grib: 0%| | 0.00/48.8k [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import earthkit.data as ekd\n", "ds_fl = ekd.from_source(\"sample\", \"pl.grib\")" ] }, { "cell_type": "raw", "id": "e95006b8-9c6c-4733-95c2-e55d416ef0c3", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "By default, ``queeze=True`` in :py:meth:`~data.readers.grib.index.GribFieldList.to_xarray`. This means that if a dimension has only one value, it is removed from the dataset. E.g. in the following example the dimensions \"number\" and \"level_type\" are removed:" ] }, { "cell_type": "code", "execution_count": 2, "id": "34d1814b-c9f4-450f-b868-1edb5d7c6382", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset> Size: 176kB\n",
"Dimensions: (forecast_reference_time: 4, step: 2, level: 2,\n",
" latitude: 19, longitude: 36)\n",
"Coordinates:\n",
" * forecast_reference_time (forecast_reference_time) datetime64[ns] 32B 202...\n",
" * step (step) timedelta64[ns] 16B 00:00:00 06:00:00\n",
" * level (level) int64 16B 500 700\n",
" * latitude (latitude) float64 152B 90.0 80.0 ... -80.0 -90.0\n",
" * longitude (longitude) float64 288B 0.0 10.0 ... 340.0 350.0\n",
"Data variables:\n",
" r (forecast_reference_time, step, level, latitude, longitude) float64 88kB ...\n",
" t (forecast_reference_time, step, level, latitude, longitude) float64 88kB ...\n",
"Attributes:\n",
" class: od\n",
" stream: oper\n",
" levtype: pl\n",
" type: fc\n",
" expver: 0001\n",
" date: 20240603\n",
" time: 0\n",
" domain: g\n",
" number: 0\n",
" Conventions: CF-1.8\n",
" institution: ECMWF<xarray.Dataset> Size: 176kB\n",
"Dimensions: (number: 1, forecast_reference_time: 4, step: 2,\n",
" level: 2, level_type: 1, latitude: 19,\n",
" longitude: 36)\n",
"Coordinates:\n",
" * number (number) int64 8B 0\n",
" * forecast_reference_time (forecast_reference_time) datetime64[ns] 32B 202...\n",
" * step (step) timedelta64[ns] 16B 00:00:00 06:00:00\n",
" * level (level) int64 16B 500 700\n",
" * level_type (level_type) <U2 8B 'pl'\n",
" * latitude (latitude) float64 152B 90.0 80.0 ... -80.0 -90.0\n",
" * longitude (longitude) float64 288B 0.0 10.0 ... 340.0 350.0\n",
"Data variables:\n",
" r (number, forecast_reference_time, step, level, level_type, latitude, longitude) float64 88kB ...\n",
" t (number, forecast_reference_time, step, level, level_type, latitude, longitude) float64 88kB ...\n",
"Attributes:\n",
" class: od\n",
" stream: oper\n",
" type: fc\n",
" expver: 0001\n",
" date: 20240603\n",
" time: 0\n",
" domain: g\n",
" Conventions: CF-1.8\n",
" institution: ECMWF<xarray.Dataset> Size: 176kB\n",
"Dimensions: (number: 1, forecast_reference_time: 4, step: 2,\n",
" level: 2, latitude: 19, longitude: 36)\n",
"Coordinates:\n",
" * number (number) int64 8B 0\n",
" * forecast_reference_time (forecast_reference_time) datetime64[ns] 32B 202...\n",
" * step (step) timedelta64[ns] 16B 00:00:00 06:00:00\n",
" * level (level) int64 16B 500 700\n",
" * latitude (latitude) float64 152B 90.0 80.0 ... -80.0 -90.0\n",
" * longitude (longitude) float64 288B 0.0 10.0 ... 340.0 350.0\n",
"Data variables:\n",
" r (number, forecast_reference_time, step, level, latitude, longitude) float64 88kB ...\n",
" t (number, forecast_reference_time, step, level, latitude, longitude) float64 88kB ...\n",
"Attributes:\n",
" class: od\n",
" stream: oper\n",
" levtype: pl\n",
" type: fc\n",
" expver: 0001\n",
" date: 20240603\n",
" time: 0\n",
" domain: g\n",
" Conventions: CF-1.8\n",
" institution: ECMWF"
],
"text/plain": [
"