{ "cells": [ { "cell_type": "markdown", "id": "140beb35-ca94-4612-9ad3-e63dcf352ab9", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## CoverageJSON: retrieving time series with Polytope" ] }, { "cell_type": "raw", "id": "545453ba-e060-49a4-97a4-19d000c0c04d", "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": "f08a1336-187f-43af-a3e6-39f4f36fc3da", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "The following example retrieves **time series** for an ENS forecast for some surface parameters using polytope." ] }, { "cell_type": "code", "execution_count": 1, "id": "48250434-8efe-43ee-87d5-58d9274da9c6", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "import earthkit.data as ekd\n", "\n", "location = [46.5, 17] # lat, lon\n", "\n", "request = { \"class\": \"od\", \n", " \"stream\" : \"enfo\", \n", " \"type\" : \"pf\", \n", " \"expver\" : 1, \n", " \"domain\" : \"g\",\n", " \"date\" : -1,\n", " \"time\" : 0,\n", " \"levtype\" : \"sfc\",\n", " \"param\" : [ 164, 167, 169 ],\n", " \"number\" : \"1/to/50\",\n", " \"feature\" : {\n", " \"type\" : \"timeseries\",\n", " \"points\": [location],\n", " \"axes\": \"step\",\n", " \"range\" : {\n", " \"start\" : 0,\n", " \"end\" : 360,\n", " }\n", " },\n", " \"format\": \"covjson\",\n", "}\n", " \n", "ds = ekd.from_source(\"polytope\", \"ecmwf-mars\", request=request, stream=False, address='polytope.ecmwf.int')" ] }, { "cell_type": "raw", "id": "bf20b499-017a-447c-a8e9-c94365f9b824", "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": "d7f2fedd-a382-4652-9b62-25ea3bae3ce2", "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: 176kB\n",
       "Dimensions:    (latitude: 1, longitude: 1, levelist: 1, number: 50,\n",
       "                datetime: 1, t: 145)\n",
       "Coordinates:\n",
       "  * latitude   (latitude) float64 8B 46.5\n",
       "  * longitude  (longitude) float64 8B 17.05\n",
       "  * levelist   (levelist) int64 8B 0\n",
       "  * number     (number) int64 400B 1 2 3 4 5 6 7 8 9 ... 43 44 45 46 47 48 49 50\n",
       "  * datetime   (datetime) <U20 80B '2025-10-21T00:00:00Z'\n",
       "  * t          (t) datetime64[ns] 1kB 2025-10-21 ... 2025-11-05\n",
       "Data variables:\n",
       "    tcc        (latitude, longitude, levelist, number, datetime, t) float64 58kB ...\n",
       "    2t         (latitude, longitude, levelist, number, datetime, t) float64 58kB ...\n",
       "    ssrd       (latitude, longitude, levelist, number, datetime, t) float64 58kB ...\n",
       "Attributes:\n",
       "    class:          od\n",
       "    Forecast date:  2025-10-21T00:00:00Z\n",
       "    domain:         g\n",
       "    expver:         0001\n",
       "    levtype:        sfc\n",
       "    number:         1\n",
       "    stream:         enfo\n",
       "    type:           pf
" ], "text/plain": [ " Size: 176kB\n", "Dimensions: (latitude: 1, longitude: 1, levelist: 1, number: 50,\n", " datetime: 1, t: 145)\n", "Coordinates:\n", " * latitude (latitude) float64 8B 46.5\n", " * longitude (longitude) float64 8B 17.05\n", " * levelist (levelist) int64 8B 0\n", " * number (number) int64 400B 1 2 3 4 5 6 7 8 9 ... 43 44 45 46 47 48 49 50\n", " * datetime (datetime)