{ "cells": [ { "cell_type": "markdown", "id": "79a719eb-95b5-4de4-8eee-fdecda0f7e94", "metadata": { "editable": true, "raw_mimetype": "", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## CoverageJSON: retrieving vertical profiles with Polytope" ] }, { "cell_type": "raw", "id": "90fe9bcb-0cd1-4331-9b8b-9e6513cbc4c1", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "The :ref:`polytope ` source provides access to the `Polytope web services `_." ] }, { "cell_type": "markdown", "id": "a9364b36-1c41-4aca-b893-6c8a1991d75a", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "The following example retrieves **vertical profiles** on pressure levels using polytope." ] }, { "cell_type": "code", "execution_count": 1, "id": "f8665f64-a309-4ee5-9d00-fb77698e4de2", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "import earthkit.data as ekd\n", "\n", "location = [38.9, -9.1] # lat, lon\n", "\n", "request = {\n", " \"class\": \"od\",\n", " \"stream\": \"enfo\",\n", " \"type\": \"pf\",\n", " \"date\": -1,\n", " \"time\": \"0000\",\n", " \"levtype\": \"pl\",\n", " \"expver\": 1,\n", " \"domain\": \"g\",\n", " \"param\": \"203/133\",\n", " \"number\": \"1\",\n", " \"step\": \"0\",\n", " \"levelist\": \"1/to/1000\",\n", " \"feature\": {\n", " \"type\": \"verticalprofile\",\n", " \"points\": [location],\n", " },\n", "}\n", "\n", "ds = ekd.from_source(\"polytope\", \"ecmwf-mars\", request=request, stream=False, address='polytope.ecmwf.int')" ] }, { "cell_type": "raw", "id": "1085781c-111c-4f4e-8817-3ef48c50ab99", "metadata": { "editable": true, "raw_mimetype": "text/restructuredtext", "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "The data is retrieved as CoverageJSON, which we can convert to Xarray for further processing (the conversion uses the :xref:`covjsonkit` package under the hood)." ] }, { "cell_type": "code", "execution_count": 2, "id": "cccdadd6-53aa-4c51-a558-7caa89cf4f82", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 640B\n",
       "Dimensions:    (latitude: 1, longitude: 1, number: 1, datetime: 1, time: 1,\n",
       "                levelist: 22)\n",
       "Coordinates:\n",
       "  * latitude   (latitude) float64 8B 38.91\n",
       "  * longitude  (longitude) float64 8B 350.9\n",
       "  * number     (number) int64 8B 1\n",
       "  * datetime   (datetime) <U20 80B '2025-10-21T00:00:00Z'\n",
       "  * time       (time) int64 8B 0\n",
       "  * levelist   (levelist) int64 176B 1 2 3 5 7 10 ... 500 600 700 850 925 1000\n",
       "Data variables:\n",
       "    q          (latitude, longitude, number, datetime, time, levelist) float64 176B ...\n",
       "    o3         (latitude, longitude, number, datetime, time, levelist) float64 176B ...\n",
       "Attributes:\n",
       "    class:          od\n",
       "    Forecast date:  2025-10-21T00:00:00Z\n",
       "    domain:         g\n",
       "    expver:         0001\n",
       "    levelist:       1\n",
       "    levtype:        pl\n",
       "    number:         1\n",
       "    stream:         enfo\n",
       "    type:           pf
" ], "text/plain": [ " Size: 640B\n", "Dimensions: (latitude: 1, longitude: 1, number: 1, datetime: 1, time: 1,\n", " levelist: 22)\n", "Coordinates:\n", " * latitude (latitude) float64 8B 38.91\n", " * longitude (longitude) float64 8B 350.9\n", " * number (number) int64 8B 1\n", " * datetime (datetime)