Skip to content

Instantly share code, notes, and snippets.

@rsignell
Created February 23, 2026 15:39
Show Gist options
  • Select an option

  • Save rsignell/954e17e58248fbd6ff6e8d4512a50492 to your computer and use it in GitHub Desktop.

Select an option

Save rsignell/954e17e58248fbd6ff6e8d4512a50492 to your computer and use it in GitHub Desktop.
query_stac_catalog.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "a1b2c3d4",
"metadata": {},
"source": [
"# Querying the dynamical.org Static STAC Catalog\n",
"\n",
"This notebook shows how to query the [dynamical.org STAC catalog](https://opensciencecomputing.github.io/dynamical-stac/stac/dynamical/catalog.json)\n",
"hosted on GitHub Pages.\n",
"\n",
"The catalog is a **static** STAC catalog (plain JSON files), so queries are performed\n",
"client-side using `pystac` and `shapely`. For larger catalogs a STAC API server would\n",
"be needed for efficient server-side filtering.\n",
"\n",
"## Install dependencies\n",
"```\n",
"pip install pystac shapely\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "b2c3d4e5",
"metadata": {
"execution": {
"iopub.execute_input": "2026-02-23T15:34:32.687992Z",
"iopub.status.busy": "2026-02-23T15:34:32.687538Z",
"iopub.status.idle": "2026-02-23T15:34:34.353171Z",
"shell.execute_reply": "2026-02-23T15:34:34.351441Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Weather forecast and analysis datasets from dynamical.org, stored as Icechunk repositories on AWS S3. All items can be opened directly with xarray via xpystac.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"7 items in catalog\n"
]
}
],
"source": [
"import pystac\n",
"from shapely.geometry import box, shape\n",
"\n",
"CATALOG_URL = (\n",
" \"https://opensciencecomputing.github.io/dynamical-stac\"\n",
" \"/stac/dynamical/catalog.json\"\n",
")\n",
"\n",
"catalog = pystac.Catalog.from_file(CATALOG_URL)\n",
"print(catalog.description)\n",
"print(f\"\\n{len(list(catalog.get_items()))} items in catalog\")"
]
},
{
"cell_type": "markdown",
"id": "c3d4e5f6",
"metadata": {},
"source": [
"## 1. List all items"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "d4e5f6a7",
"metadata": {
"execution": {
"iopub.execute_input": "2026-02-23T15:34:34.355746Z",
"iopub.status.busy": "2026-02-23T15:34:34.355393Z",
"iopub.status.idle": "2026-02-23T15:34:34.362828Z",
"shell.execute_reply": "2026-02-23T15:34:34.361297Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ecmwf-ifs-ens-forecast-15-day-0-25-degree-v0-1-0\n",
" title: ECMWF IFS ENS - dynamical.org Icechunk Zarr\n",
" bbox: [-180.0, -90.0, 180.0, 90.0]\n",
" start: 2024-04-01 00:00:00+00:00\n",
" end: 2026-02-23 00:00:00+00:00\n",
"\n",
"noaa-gefs-analysis-v0-1-2\n",
" title: NOAA GEFS - dynamical.org Icechunk Zarr\n",
" bbox: [-180.0, -90.0, 180.0, 90.0]\n",
" start: 2000-01-01 00:00:00+00:00\n",
" end: 2026-02-23 09:00:00+00:00\n",
"\n",
"noaa-gefs-forecast-35-day-v0-2-0\n",
" title: NOAA GEFS - dynamical.org Icechunk Zarr\n",
" bbox: [-180.0, -90.0, 180.0, 90.0]\n",
" start: 2020-10-01 00:00:00+00:00\n",
" end: 2026-02-23 00:00:00+00:00\n",
"\n",
"noaa-gfs-analysis-v0-1-0\n",
" title: NOAA GFS - dynamical.org Icechunk Zarr\n",
" bbox: [-180.0, -90.0, 180.0, 90.0]\n",
" start: 2021-05-01 00:00:00+00:00\n",
" end: 2026-02-23 08:00:00+00:00\n",
"\n",
"noaa-gfs-forecast-v0-2-7\n",
" title: NOAA GFS - dynamical.org Icechunk Zarr\n",
" bbox: [-180.0, -90.0, 180.0, 90.0]\n",
" start: 2021-05-01 00:00:00+00:00\n",
" end: 2026-02-23 06:00:00+00:00\n",
"\n",
"noaa-hrrr-analysis-v0-1-0\n",
" title: NOAA HRRR - dynamical.org Icechunk Zarr\n",
" bbox: [-134.12142793280145, 21.122192719272277, -60.891244531606546, 52.62870335266728]\n",
" start: 2018-09-16 00:00:00+00:00\n",
" end: 2026-02-23 11:00:00+00:00\n",
"\n",
"noaa-hrrr-forecast-48-hour-v0-1-0\n",
" title: NOAA HRRR - dynamical.org Icechunk Zarr\n",
" bbox: [-134.12142793280145, 21.122192719272277, -60.891244531606546, 52.62870335266728]\n",
" start: 2018-07-13 12:00:00+00:00\n",
" end: 2026-02-23 06:00:00+00:00\n",
"\n"
]
}
],
"source": [
"for item in catalog.get_items():\n",
" print(f\"{item.id}\")\n",
" print(f\" title: {item.common_metadata.title}\")\n",
" print(f\" bbox: {item.bbox}\")\n",
" print(f\" start: {item.common_metadata.start_datetime}\")\n",
" print(f\" end: {item.common_metadata.end_datetime}\")\n",
" print()"
]
},
{
"cell_type": "markdown",
"id": "e5f6a7b8",
"metadata": {},
"source": [
"## 2. Spatial query — find datasets that cover a region\n",
"\n",
"Use `shapely` to test geometry intersection against a bounding box of interest.\n",
"Here we query for datasets covering Italy."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f6a7b8c9",
"metadata": {
"execution": {
"iopub.execute_input": "2026-02-23T15:34:34.366302Z",
"iopub.status.busy": "2026-02-23T15:34:34.366004Z",
"iopub.status.idle": "2026-02-23T15:34:34.373770Z",
"shell.execute_reply": "2026-02-23T15:34:34.371939Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Datasets covering Italy (5 of 7):\n",
"\n",
" ecmwf-ifs-ens-forecast-15-day-0-25-degree-v0-1-0\n",
" noaa-gefs-analysis-v0-1-2\n",
" noaa-gefs-forecast-35-day-v0-2-0\n",
" noaa-gfs-analysis-v0-1-0\n",
" noaa-gfs-forecast-v0-2-7\n"
]
}
],
"source": [
"# Define region of interest (lon_min, lat_min, lon_max, lat_max)\n",
"roi = box(6.6, 36.6, 18.5, 47.1) # Italy\n",
"\n",
"matches = [\n",
" item for item in catalog.get_items()\n",
" if shape(item.geometry).intersects(roi)\n",
"]\n",
"\n",
"print(f\"Datasets covering Italy ({len(matches)} of {len(list(catalog.get_items()))}):\\n\")\n",
"for item in matches:\n",
" print(f\" {item.id}\")"
]
},
{
"cell_type": "markdown",
"id": "a7b8c9d0",
"metadata": {},
"source": [
"## 3. Temporal query — find datasets covering a date range"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "b8c9d0e1",
"metadata": {
"execution": {
"iopub.execute_input": "2026-02-23T15:34:34.376690Z",
"iopub.status.busy": "2026-02-23T15:34:34.376411Z",
"iopub.status.idle": "2026-02-23T15:34:34.386248Z",
"shell.execute_reply": "2026-02-23T15:34:34.384618Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Datasets covering 2024-01-01 – 2025-01-01 (7):\n",
"\n",
" ecmwf-ifs-ens-forecast-15-day-0-25-degree-v0-1-0\n",
" 2024-04-01 00:00:00+00:00 → 2026-02-23 00:00:00+00:00\n",
" noaa-gefs-analysis-v0-1-2\n",
" 2000-01-01 00:00:00+00:00 → 2026-02-23 09:00:00+00:00\n",
" noaa-gefs-forecast-35-day-v0-2-0\n",
" 2020-10-01 00:00:00+00:00 → 2026-02-23 00:00:00+00:00\n",
" noaa-gfs-analysis-v0-1-0\n",
" 2021-05-01 00:00:00+00:00 → 2026-02-23 08:00:00+00:00\n",
" noaa-gfs-forecast-v0-2-7\n",
" 2021-05-01 00:00:00+00:00 → 2026-02-23 06:00:00+00:00\n",
" noaa-hrrr-analysis-v0-1-0\n",
" 2018-09-16 00:00:00+00:00 → 2026-02-23 11:00:00+00:00\n",
" noaa-hrrr-forecast-48-hour-v0-1-0\n",
" 2018-07-13 12:00:00+00:00 → 2026-02-23 06:00:00+00:00\n"
]
}
],
"source": [
"from datetime import datetime, timezone\n",
"\n",
"query_start = datetime(2024, 1, 1, tzinfo=timezone.utc)\n",
"query_end = datetime(2025, 1, 1, tzinfo=timezone.utc)\n",
"\n",
"def overlaps_time(item, start, end):\n",
" item_start = item.common_metadata.start_datetime\n",
" item_end = item.common_metadata.end_datetime\n",
" if item_start is None or item_end is None:\n",
" return True # no temporal info — include by default\n",
" return item_start <= end and item_end >= start\n",
"\n",
"matches = [\n",
" item for item in catalog.get_items()\n",
" if overlaps_time(item, query_start, query_end)\n",
"]\n",
"\n",
"print(f\"Datasets covering {query_start.date()} – {query_end.date()} ({len(matches)}):\\n\")\n",
"for item in matches:\n",
" print(f\" {item.id}\")\n",
" print(f\" {item.common_metadata.start_datetime} → {item.common_metadata.end_datetime}\")"
]
},
{
"cell_type": "markdown",
"id": "c9d0e1f2",
"metadata": {},
"source": [
"## 4. Combined spatial + temporal query"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "d0e1f2a3",
"metadata": {
"execution": {
"iopub.execute_input": "2026-02-23T15:34:34.388416Z",
"iopub.status.busy": "2026-02-23T15:34:34.388189Z",
"iopub.status.idle": "2026-02-23T15:34:34.396482Z",
"shell.execute_reply": "2026-02-23T15:34:34.394988Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Datasets covering Italy and 2024-01-01 – 2025-01-01 (5):\n",
"\n",
" ecmwf-ifs-ens-forecast-15-day-0-25-degree-v0-1-0\n",
" noaa-gefs-analysis-v0-1-2\n",
" noaa-gefs-forecast-35-day-v0-2-0\n",
" noaa-gfs-analysis-v0-1-0\n",
" noaa-gfs-forecast-v0-2-7\n"
]
}
],
"source": [
"roi = box(6.6, 36.6, 18.5, 47.1) # Italy\n",
"query_start = datetime(2024, 1, 1, tzinfo=timezone.utc)\n",
"query_end = datetime(2025, 1, 1, tzinfo=timezone.utc)\n",
"\n",
"matches = [\n",
" item for item in catalog.get_items()\n",
" if shape(item.geometry).intersects(roi)\n",
" and overlaps_time(item, query_start, query_end)\n",
"]\n",
"\n",
"print(f\"Datasets covering Italy and {query_start.date()} – {query_end.date()} ({len(matches)}):\\n\")\n",
"for item in matches:\n",
" print(f\" {item.id}\")"
]
},
{
"cell_type": "markdown",
"id": "e1f2a3b4",
"metadata": {},
"source": [
"## 5. Open a matching dataset with xarray\n",
"\n",
"Pick the first match and open it directly via `xpystac`."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "f2a3b4c5",
"metadata": {
"execution": {
"iopub.execute_input": "2026-02-23T15:34:34.399056Z",
"iopub.status.busy": "2026-02-23T15:34:34.398785Z",
"iopub.status.idle": "2026-02-23T15:34:39.915065Z",
"shell.execute_reply": "2026-02-23T15:34:39.913762Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Opening: ecmwf-ifs-ens-forecast-15-day-0-25-degree-v0-1-0\n"
]
},
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in notebooks */\n",
"\n",
":root {\n",
" --xr-font-color0: var(\n",
" --jp-content-font-color0,\n",
" var(--pst-color-text-base rgba(0, 0, 0, 1))\n",
" );\n",
" --xr-font-color2: var(\n",
" --jp-content-font-color2,\n",
" var(--pst-color-text-base, rgba(0, 0, 0, 0.54))\n",
" );\n",
" --xr-font-color3: var(\n",
" --jp-content-font-color3,\n",
" var(--pst-color-text-base, rgba(0, 0, 0, 0.38))\n",
" );\n",
" --xr-border-color: var(\n",
" --jp-border-color2,\n",
" hsl(from var(--pst-color-on-background, white) h s calc(l - 10))\n",
" );\n",
" --xr-disabled-color: var(\n",
" --jp-layout-color3,\n",
" hsl(from var(--pst-color-on-background, white) h s calc(l - 40))\n",
" );\n",
" --xr-background-color: var(\n",
" --jp-layout-color0,\n",
" var(--pst-color-on-background, white)\n",
" );\n",
" --xr-background-color-row-even: var(\n",
" --jp-layout-color1,\n",
" hsl(from var(--pst-color-on-background, white) h s calc(l - 5))\n",
" );\n",
" --xr-background-color-row-odd: var(\n",
" --jp-layout-color2,\n",
" hsl(from var(--pst-color-on-background, white) h s calc(l - 15))\n",
" );\n",
"}\n",
"\n",
"html[theme=\"dark\"],\n",
"html[data-theme=\"dark\"],\n",
"body[data-theme=\"dark\"],\n",
"body.vscode-dark {\n",
" --xr-font-color0: var(\n",
" --jp-content-font-color0,\n",
" var(--pst-color-text-base, rgba(255, 255, 255, 1))\n",
" );\n",
" --xr-font-color2: var(\n",
" --jp-content-font-color2,\n",
" var(--pst-color-text-base, rgba(255, 255, 255, 0.54))\n",
" );\n",
" --xr-font-color3: var(\n",
" --jp-content-font-color3,\n",
" var(--pst-color-text-base, rgba(255, 255, 255, 0.38))\n",
" );\n",
" --xr-border-color: var(\n",
" --jp-border-color2,\n",
" hsl(from var(--pst-color-on-background, #111111) h s calc(l + 10))\n",
" );\n",
" --xr-disabled-color: var(\n",
" --jp-layout-color3,\n",
" hsl(from var(--pst-color-on-background, #111111) h s calc(l + 40))\n",
" );\n",
" --xr-background-color: var(\n",
" --jp-layout-color0,\n",
" var(--pst-color-on-background, #111111)\n",
" );\n",
" --xr-background-color-row-even: var(\n",
" --jp-layout-color1,\n",
" hsl(from var(--pst-color-on-background, #111111) h s calc(l + 5))\n",
" );\n",
" --xr-background-color-row-odd: var(\n",
" --jp-layout-color2,\n",
" hsl(from var(--pst-color-on-background, #111111) h s calc(l + 15))\n",
" );\n",
"}\n",
"\n",
".xr-wrap {\n",
" display: block !important;\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
" line-height: 1.6;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-text-repr-fallback {\n",
" /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
" display: none;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
"}\n",
"\n",
".xr-header {\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
" margin-bottom: 4px;\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-obj-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-group-box-contents > label {\n",
" color: var(--xr-font-color2);\n",
" display: block;\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 0 20px 0 20px;\n",
" margin-block-start: 0;\n",
" margin-block-end: 0;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item > input,\n",
".xr-group-box-contents > input,\n",
".xr-array-wrap > input {\n",
" display: block;\n",
" opacity: 0;\n",
" height: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-section-item > input + label,\n",
".xr-var-item > input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item > input:enabled + label,\n",
".xr-var-item > input:enabled + label,\n",
".xr-array-wrap > input:enabled + label,\n",
".xr-group-box-contents > input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item > input:focus-visible + label,\n",
".xr-var-item > input:focus-visible + label,\n",
".xr-array-wrap > input:focus-visible + label,\n",
".xr-group-box-contents > input:focus-visible + label {\n",
" outline: auto;\n",
"}\n",
"\n",
".xr-section-item > input:enabled + label:hover,\n",
".xr-var-item > input:enabled + label:hover,\n",
".xr-array-wrap > input:enabled + label:hover,\n",
".xr-group-box-contents > input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
" white-space: nowrap;\n",
"}\n",
"\n",
".xr-section-summary > em {\n",
" font-weight: normal;\n",
"}\n",
"\n",
".xr-span-grid {\n",
" grid-column-end: -1;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.3em;\n",
"}\n",
"\n",
".xr-group-box-contents > input:checked + label > span {\n",
" display: inline-block;\n",
" padding-left: 0.6em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: \"►\";\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: \"▼\";\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details,\n",
".xr-group-box-contents > label {\n",
" padding-top: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" grid-column: 1 / -1;\n",
" margin-top: 4px;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in ~ .xr-section-details {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-children {\n",
" display: inline-grid;\n",
" grid-template-columns: 100%;\n",
" grid-column: 1 / -1;\n",
" padding-top: 4px;\n",
"}\n",
"\n",
".xr-group-box {\n",
" display: inline-grid;\n",
" grid-template-columns: 0px 30px auto;\n",
"}\n",
"\n",
".xr-group-box-vline {\n",
" grid-column-start: 1;\n",
" border-right: 0.2em solid;\n",
" border-color: var(--xr-border-color);\n",
" width: 0px;\n",
"}\n",
"\n",
".xr-group-box-hline {\n",
" grid-column-start: 2;\n",
" grid-row-start: 1;\n",
" height: 1em;\n",
" width: 26px;\n",
" border-bottom: 0.2em solid;\n",
" border-color: var(--xr-border-color);\n",
"}\n",
"\n",
".xr-group-box-contents {\n",
" grid-column-start: 3;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-group-box-contents > label::before {\n",
" content: \"📂\";\n",
" padding-right: 0.3em;\n",
"}\n",
"\n",
".xr-group-box-contents > input:checked + label::before {\n",
" content: \"📁\";\n",
"}\n",
"\n",
".xr-group-box-contents > input:checked + label {\n",
" padding-bottom: 0px;\n",
"}\n",
"\n",
".xr-group-box-contents > input:checked ~ .xr-sections {\n",
" display: none;\n",
"}\n",
"\n",
".xr-group-box-contents > input + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-group-box-ellipsis {\n",
" font-size: 1.4em;\n",
" font-weight: 900;\n",
" color: var(--xr-font-color2);\n",
" letter-spacing: 0.15em;\n",
" cursor: default;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: \"(\";\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: \")\";\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: \",\";\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" border-color: var(--xr-background-color-row-odd);\n",
" margin-bottom: 0;\n",
" padding-top: 2px;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
" border-color: var(--xr-background-color-row-even);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-index-preview {\n",
" grid-column: 2 / 5;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" display: none;\n",
" border-top: 2px dotted var(--xr-background-color);\n",
" padding-bottom: 20px !important;\n",
" padding-top: 10px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in + label,\n",
".xr-var-data-in + label,\n",
".xr-index-data-in + label {\n",
" padding: 0 1px;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data,\n",
".xr-index-data-in:checked ~ .xr-index-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-data > pre,\n",
".xr-index-data > pre,\n",
".xr-var-data > table > tbody > tr {\n",
" background-color: transparent !important;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-index-name div,\n",
".xr-index-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt,\n",
".xr-attrs dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2,\n",
".xr-no-icon {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked + label > .xr-icon-file-text2,\n",
".xr-var-data-in:checked + label > .xr-icon-database,\n",
".xr-index-data-in:checked + label > .xr-icon-database {\n",
" color: var(--xr-font-color0);\n",
" filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n",
" stroke-width: 0.8px;\n",
"}\n",
"</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt; Size: 162TB\n",
"Dimensions: (init_time: 694, lead_time: 85,\n",
" ensemble_member: 51,\n",
" latitude: 721, longitude: 1440)\n",
"Coordinates:\n",
" * init_time (init_time) datetime64[ns] 6kB ...\n",
" ingested_forecast_length (init_time) timedelta64[ns] 6kB ...\n",
" expected_forecast_length (init_time) timedelta64[ns] 6kB ...\n",
" * lead_time (lead_time) timedelta64[ns] 680B ...\n",
" valid_time (init_time, lead_time) datetime64[ns] 472kB ...\n",
" * ensemble_member (ensemble_member) int16 102B ...\n",
" * latitude (latitude) float64 6kB 90.0 ....\n",
" * longitude (longitude) float64 12kB -180...\n",
" spatial_ref int64 8B ...\n",
"Data variables: (12/13)\n",
" categorical_precipitation_type_surface (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" downward_long_wave_radiation_flux_surface (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" dew_point_temperature_2m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" downward_short_wave_radiation_flux_surface (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" geopotential_height_500hpa (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" pressure_surface (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" ... ...\n",
" temperature_2m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" pressure_reduced_to_mean_sea_level (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" wind_u_100m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" wind_u_10m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" wind_v_10m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" wind_v_100m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
"Attributes:\n",
" dataset_id: ecmwf-ifs-ens-forecast-15-day-0-25-degree\n",
" dataset_version: 0.1.0\n",
" name: ECMWF IFS ENS Forecast, 15 day, 0.25 degree\n",
" description: Ensemble weather forecasts from the ECMWF Integrate...\n",
" attribution: ECMWF IFS ENS Forecast data processed by dynamical....\n",
" spatial_domain: Global\n",
" spatial_resolution: 0.25 degrees (~20km)\n",
" time_domain: Forecasts initialized 2024-04-01 00:00:00 UTC to Pr...\n",
" time_resolution: Forecasts initialized every 24 hours\n",
" forecast_domain: Forecast lead time 0-360 hours (0-15 days) ahead\n",
" forecast_resolution: Forecast step 0-144 hours: 3 hourly, 144-360 hours:...</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-a12535c8-45b3-4e83-b4e1-32a52a2ce48a' class='xr-section-summary-in' type='checkbox' disabled /><label for='section-a12535c8-45b3-4e83-b4e1-32a52a2ce48a' class='xr-section-summary'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>init_time</span>: 694</li><li><span class='xr-has-index'>lead_time</span>: 85</li><li><span class='xr-has-index'>ensemble_member</span>: 51</li><li><span class='xr-has-index'>latitude</span>: 721</li><li><span class='xr-has-index'>longitude</span>: 1440</li></ul></div></li><li class='xr-section-item'><input id='section-b13426b0-f362-42f3-a074-aba2ede3c1c2' class='xr-section-summary-in' type='checkbox' checked /><label for='section-b13426b0-f362-42f3-a074-aba2ede3c1c2' class='xr-section-summary' title='Expand/collapse section'>Coordinates: <span>(9)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>init_time</span></div><div class='xr-var-dims'>(init_time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2024-04-01 ... 2026-02-23</div><input id='attrs-94aad8e7-6df8-40bd-8f14-83a8654beff6' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-94aad8e7-6df8-40bd-8f14-83a8654beff6' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-89f19170-50cb-40be-ad55-418ce55fd73f' class='xr-var-data-in' type='checkbox'><label for='data-89f19170-50cb-40be-ad55-418ce55fd73f' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Forecast initialization time</dd><dt><span>standard_name :</span></dt><dd>forecast_reference_time</dd><dt><span>statistics_approximate :</span></dt><dd>{&#x27;min&#x27;: &#x27;2024-04-01T00:00:00&#x27;, &#x27;max&#x27;: &#x27;Present&#x27;}</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2024-04-01T00:00:00.000000000&#x27;, &#x27;2024-04-02T00:00:00.000000000&#x27;,\n",
" &#x27;2024-04-03T00:00:00.000000000&#x27;, ..., &#x27;2026-02-21T00:00:00.000000000&#x27;,\n",
" &#x27;2026-02-22T00:00:00.000000000&#x27;, &#x27;2026-02-23T00:00:00.000000000&#x27;],\n",
" shape=(694,), dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ingested_forecast_length</span></div><div class='xr-var-dims'>(init_time)</div><div class='xr-var-dtype'>timedelta64[ns]</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-b5321d21-e558-432d-8d48-8dda53d371da' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b5321d21-e558-432d-8d48-8dda53d371da' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-52e07314-43c4-4706-a281-751788102a82' class='xr-var-data-in' type='checkbox'><label for='data-52e07314-43c4-4706-a281-751788102a82' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Ingested forecast length</dd><dt><span>statistics_approximate :</span></dt><dd>{&#x27;min&#x27;: &#x27;0 days 00:00:00&#x27;, &#x27;max&#x27;: &#x27;15 days 00:00:00&#x27;}</dd></dl></div><div class='xr-var-data'><pre>[694 values with dtype=timedelta64[ns]]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>expected_forecast_length</span></div><div class='xr-var-dims'>(init_time)</div><div class='xr-var-dtype'>timedelta64[ns]</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-5b62aa88-d561-4b2e-8e84-b44837a18010' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5b62aa88-d561-4b2e-8e84-b44837a18010' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-73229e08-90e3-4f66-863f-7e082ac957cd' class='xr-var-data-in' type='checkbox'><label for='data-73229e08-90e3-4f66-863f-7e082ac957cd' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Expected forecast length</dd><dt><span>statistics_approximate :</span></dt><dd>{&#x27;min&#x27;: &#x27;0 days 00:00:00&#x27;, &#x27;max&#x27;: &#x27;15 days 00:00:00&#x27;}</dd></dl></div><div class='xr-var-data'><pre>[694 values with dtype=timedelta64[ns]]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lead_time</span></div><div class='xr-var-dims'>(lead_time)</div><div class='xr-var-dtype'>timedelta64[ns]</div><div class='xr-var-preview xr-preview'>0 days 00:00:00 ... 15 days 00:0...</div><input id='attrs-46bf38fe-d266-415c-8b64-43794c7f29e2' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-46bf38fe-d266-415c-8b64-43794c7f29e2' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b1e215e4-4365-4316-810a-edf6791a879e' class='xr-var-data-in' type='checkbox'><label for='data-b1e215e4-4365-4316-810a-edf6791a879e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Forecast lead time</dd><dt><span>standard_name :</span></dt><dd>forecast_period</dd><dt><span>statistics_approximate :</span></dt><dd>{&#x27;min&#x27;: &#x27;0 days 00:00:00&#x27;, &#x27;max&#x27;: &#x27;15 days 00:00:00&#x27;}</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 10800000000000, 21600000000000, 32400000000000,\n",
" 43200000000000, 54000000000000, 64800000000000, 75600000000000,\n",
" 86400000000000, 97200000000000, 108000000000000, 118800000000000,\n",
" 129600000000000, 140400000000000, 151200000000000, 162000000000000,\n",
" 172800000000000, 183600000000000, 194400000000000, 205200000000000,\n",
" 216000000000000, 226800000000000, 237600000000000, 248400000000000,\n",
" 259200000000000, 270000000000000, 280800000000000, 291600000000000,\n",
" 302400000000000, 313200000000000, 324000000000000, 334800000000000,\n",
" 345600000000000, 356400000000000, 367200000000000, 378000000000000,\n",
" 388800000000000, 399600000000000, 410400000000000, 421200000000000,\n",
" 432000000000000, 442800000000000, 453600000000000, 464400000000000,\n",
" 475200000000000, 486000000000000, 496800000000000, 507600000000000,\n",
" 518400000000000, 540000000000000, 561600000000000, 583200000000000,\n",
" 604800000000000, 626400000000000, 648000000000000, 669600000000000,\n",
" 691200000000000, 712800000000000, 734400000000000, 756000000000000,\n",
" 777600000000000, 799200000000000, 820800000000000, 842400000000000,\n",
" 864000000000000, 885600000000000, 907200000000000, 928800000000000,\n",
" 950400000000000, 972000000000000, 993600000000000, 1015200000000000,\n",
" 1036800000000000, 1058400000000000, 1080000000000000, 1101600000000000,\n",
" 1123200000000000, 1144800000000000, 1166400000000000, 1188000000000000,\n",
" 1209600000000000, 1231200000000000, 1252800000000000, 1274400000000000,\n",
" 1296000000000000], dtype=&#x27;timedelta64[ns]&#x27;)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>valid_time</span></div><div class='xr-var-dims'>(init_time, lead_time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-24566478-1a4e-4cac-95e2-8bbdc1ddc5c5' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-24566478-1a4e-4cac-95e2-8bbdc1ddc5c5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-03ef3736-cd15-45a3-9c43-b8836dbc974c' class='xr-var-data-in' type='checkbox'><label for='data-03ef3736-cd15-45a3-9c43-b8836dbc974c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Valid time</dd><dt><span>standard_name :</span></dt><dd>time</dd><dt><span>statistics_approximate :</span></dt><dd>{&#x27;min&#x27;: &#x27;2024-04-01T00:00:00&#x27;, &#x27;max&#x27;: &#x27;Present&#x27;}</dd></dl></div><div class='xr-var-data'><pre>[58990 values with dtype=datetime64[ns]]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ensemble_member</span></div><div class='xr-var-dims'>(ensemble_member)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 ... 45 46 47 48 49 50</div><input id='attrs-3f2cd3bd-cc55-432a-9739-0ab1ac9b457d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3f2cd3bd-cc55-432a-9739-0ab1ac9b457d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a8cbac98-82bf-42d6-a6e9-c39c91f2543e' class='xr-var-data-in' type='checkbox'><label for='data-a8cbac98-82bf-42d6-a6e9-c39c91f2543e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Ensemble member</dd><dt><span>standard_name :</span></dt><dd>realization</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>statistics_approximate :</span></dt><dd>{&#x27;min&#x27;: 0, &#x27;max&#x27;: 50}</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n",
" 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n",
" 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>latitude</span></div><div class='xr-var-dims'>(latitude)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>90.0 89.75 89.5 ... -89.75 -90.0</div><input id='attrs-32f5d009-12fd-43d6-a826-f64675eb0d24' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-32f5d009-12fd-43d6-a826-f64675eb0d24' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6e3df3b6-42c0-4fe2-91ab-abbc8dcb6336' class='xr-var-data-in' type='checkbox'><label for='data-6e3df3b6-42c0-4fe2-91ab-abbc8dcb6336' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>axis :</span></dt><dd>Y</dd><dt><span>units :</span></dt><dd>degree_north</dd><dt><span>statistics_approximate :</span></dt><dd>{&#x27;min&#x27;: -90.0, &#x27;max&#x27;: 90.0}</dd></dl></div><div class='xr-var-data'><pre>array([ 90. , 89.75, 89.5 , ..., -89.5 , -89.75, -90. ], shape=(721,))</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>longitude</span></div><div class='xr-var-dims'>(longitude)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>-180.0 -179.8 ... 179.5 179.8</div><input id='attrs-0aac17f6-f3ac-4e4b-9966-cabe41f6ec93' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-0aac17f6-f3ac-4e4b-9966-cabe41f6ec93' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-251bf2e4-a9de-41a9-8585-4602800447d4' class='xr-var-data-in' type='checkbox'><label for='data-251bf2e4-a9de-41a9-8585-4602800447d4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>axis :</span></dt><dd>X</dd><dt><span>units :</span></dt><dd>degree_east</dd><dt><span>statistics_approximate :</span></dt><dd>{&#x27;min&#x27;: -180.0, &#x27;max&#x27;: 179.75}</dd></dl></div><div class='xr-var-data'><pre>array([-180. , -179.75, -179.5 , ..., 179.25, 179.5 , 179.75],\n",
" shape=(1440,))</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>spatial_ref</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-d1fe311d-5bff-4a41-adcb-12061f174804' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d1fe311d-5bff-4a41-adcb-12061f174804' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2b93c03d-0059-406b-a14c-0f46084ca822' class='xr-var-data-in' type='checkbox'><label for='data-2b93c03d-0059-406b-a14c-0f46084ca822' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>comment :</span></dt><dd>This coordinate reference system matches the source data which follows WMO conventions of assuming the earth is a perfect sphere with a radius of 6,371,229m. It is similar to EPSG:4326, but EPSG:4326 uses a more accurate representation of the earth&#x27;s shape.</dd><dt><span>crs_wkt :</span></dt><dd>GEOGCS[&quot;unknown&quot;,DATUM[&quot;unknown&quot;,SPHEROID[&quot;unknown&quot;,6371229,0]],PRIMEM[&quot;Greenwich&quot;,0,AUTHORITY[&quot;EPSG&quot;,&quot;8901&quot;]],UNIT[&quot;degree&quot;,0.0174532925199433,AUTHORITY[&quot;EPSG&quot;,&quot;9122&quot;]],AXIS[&quot;Longitude&quot;,EAST],AXIS[&quot;Latitude&quot;,NORTH]]</dd><dt><span>semi_major_axis :</span></dt><dd>6371229.0</dd><dt><span>semi_minor_axis :</span></dt><dd>6371229.0</dd><dt><span>inverse_flattening :</span></dt><dd>0.0</dd><dt><span>reference_ellipsoid_name :</span></dt><dd>unknown</dd><dt><span>longitude_of_prime_meridian :</span></dt><dd>0.0</dd><dt><span>prime_meridian_name :</span></dt><dd>Greenwich</dd><dt><span>geographic_crs_name :</span></dt><dd>unknown</dd><dt><span>horizontal_datum_name :</span></dt><dd>unknown</dd><dt><span>grid_mapping_name :</span></dt><dd>latitude_longitude</dd><dt><span>spatial_ref :</span></dt><dd>GEOGCS[&quot;unknown&quot;,DATUM[&quot;unknown&quot;,SPHEROID[&quot;unknown&quot;,6371229,0]],PRIMEM[&quot;Greenwich&quot;,0,AUTHORITY[&quot;EPSG&quot;,&quot;8901&quot;]],UNIT[&quot;degree&quot;,0.0174532925199433,AUTHORITY[&quot;EPSG&quot;,&quot;9122&quot;]],AXIS[&quot;Longitude&quot;,EAST],AXIS[&quot;Latitude&quot;,NORTH]]</dd></dl></div><div class='xr-var-data'><pre>[1 values with dtype=int64]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-1f42c9ac-29fa-4c0a-996e-005902b22bb4' class='xr-section-summary-in' type='checkbox' checked /><label for='section-1f42c9ac-29fa-4c0a-996e-005902b22bb4' class='xr-section-summary' title='Expand/collapse section'>Data variables: <span>(13)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>categorical_precipitation_type_surface</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-392ca145-a133-4052-85cc-1c31b3498f76' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-392ca145-a133-4052-85cc-1c31b3498f76' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7712f2f7-557d-4874-ab44-e70019cace5f' class='xr-var-data-in' type='checkbox'><label for='data-7712f2f7-557d-4874-ab44-e70019cace5f' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Precipitation type</dd><dt><span>short_name :</span></dt><dd>ptype</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>comment :</span></dt><dd>0=No precipitation; 1=Rain; 2=Thunderstorm; 3=Freezing rain; 4=Mixed/ice; 5=Snow; 6=Wet snow; 7=Mixture of rain and snow; 8=Ice pellets; 9=Graupel; 10=Hail; 11=Drizzle; 12=Freezing drizzle; 13=Hail (less than 5 mm); 14=Hail (greater than or equal to 5 mm); 15-191=Reserved; 192-254=Reserved for local use; 255=Missing</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>downward_long_wave_radiation_flux_surface</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-a9b05fcd-515d-4ab4-bbb6-8f15d7e0efe1' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a9b05fcd-515d-4ab4-bbb6-8f15d7e0efe1' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-54f743c6-bfdb-471c-9923-42b5f4718150' class='xr-var-data-in' type='checkbox'><label for='data-54f743c6-bfdb-471c-9923-42b5f4718150' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Surface downward long-wave radiation flux</dd><dt><span>short_name :</span></dt><dd>sdlwrf</dd><dt><span>standard_name :</span></dt><dd>surface_downwelling_longwave_flux_in_air</dd><dt><span>units :</span></dt><dd>W m-2</dd><dt><span>step_type :</span></dt><dd>avg</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>dew_point_temperature_2m</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-3aa47238-5f92-428f-863d-80ae3c0c2ad8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3aa47238-5f92-428f-863d-80ae3c0c2ad8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-0f97d2c1-1a47-4042-851a-a5a359e5c101' class='xr-var-data-in' type='checkbox'><label for='data-0f97d2c1-1a47-4042-851a-a5a359e5c101' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>2 metre dewpoint temperature</dd><dt><span>short_name :</span></dt><dd>2d</dd><dt><span>standard_name :</span></dt><dd>dew_point_temperature</dd><dt><span>units :</span></dt><dd>degree_Celsius</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>downward_short_wave_radiation_flux_surface</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-3f867427-e4e5-4c7c-be93-ab50a0a2473a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3f867427-e4e5-4c7c-be93-ab50a0a2473a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-fe48f0b8-e863-416f-b1f4-fdd44dd79351' class='xr-var-data-in' type='checkbox'><label for='data-fe48f0b8-e863-416f-b1f4-fdd44dd79351' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Surface downward short-wave radiation flux</dd><dt><span>short_name :</span></dt><dd>sdswrf</dd><dt><span>standard_name :</span></dt><dd>surface_downwelling_shortwave_flux_in_air</dd><dt><span>units :</span></dt><dd>W m-2</dd><dt><span>step_type :</span></dt><dd>avg</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>geopotential_height_500hpa</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-c0e4c4da-7ae9-438f-af23-9d6f1bedb0d8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-c0e4c4da-7ae9-438f-af23-9d6f1bedb0d8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-01c7cd0c-153f-4920-84ed-223dd29b2f4e' class='xr-var-data-in' type='checkbox'><label for='data-01c7cd0c-153f-4920-84ed-223dd29b2f4e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Geopotential height</dd><dt><span>short_name :</span></dt><dd>gh</dd><dt><span>standard_name :</span></dt><dd>geopotential_height</dd><dt><span>units :</span></dt><dd>m</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>pressure_surface</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-eca645dd-eaf8-4182-9f87-0a638bb8bebc' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-eca645dd-eaf8-4182-9f87-0a638bb8bebc' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4049c788-967d-4218-af10-f8c0692c4b99' class='xr-var-data-in' type='checkbox'><label for='data-4049c788-967d-4218-af10-f8c0692c4b99' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Surface pressure</dd><dt><span>short_name :</span></dt><dd>sp</dd><dt><span>standard_name :</span></dt><dd>surface_air_pressure</dd><dt><span>units :</span></dt><dd>Pa</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>precipitation_surface</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-c5403725-5346-4c48-afec-18f4e33ae165' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-c5403725-5346-4c48-afec-18f4e33ae165' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-29681db7-a8e2-49a1-aea6-223c9dae26be' class='xr-var-data-in' type='checkbox'><label for='data-29681db7-a8e2-49a1-aea6-223c9dae26be' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Precipitation rate</dd><dt><span>short_name :</span></dt><dd>prate</dd><dt><span>standard_name :</span></dt><dd>precipitation_flux</dd><dt><span>units :</span></dt><dd>kg m-2 s-1</dd><dt><span>comment :</span></dt><dd>Average precipitation rate since the previous forecast step. Units equivalent to mm/s.</dd><dt><span>step_type :</span></dt><dd>avg</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>temperature_2m</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-a1d74458-bfc8-4fe5-9321-7b49bbd9bc2d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a1d74458-bfc8-4fe5-9321-7b49bbd9bc2d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1b1c37c1-c95a-49bc-a184-95055ffcd101' class='xr-var-data-in' type='checkbox'><label for='data-1b1c37c1-c95a-49bc-a184-95055ffcd101' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>2 metre temperature</dd><dt><span>short_name :</span></dt><dd>2t</dd><dt><span>standard_name :</span></dt><dd>air_temperature</dd><dt><span>units :</span></dt><dd>degree_Celsius</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>pressure_reduced_to_mean_sea_level</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-f7c44159-e825-456c-a58d-753121ebab99' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f7c44159-e825-456c-a58d-753121ebab99' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b3f02c85-bb35-41be-b52f-12da5d63894d' class='xr-var-data-in' type='checkbox'><label for='data-b3f02c85-bb35-41be-b52f-12da5d63894d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Pressure reduced to MSL</dd><dt><span>short_name :</span></dt><dd>prmsl</dd><dt><span>standard_name :</span></dt><dd>air_pressure_at_mean_sea_level</dd><dt><span>units :</span></dt><dd>Pa</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>wind_u_100m</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-0e5ee641-d429-4ffd-8c1f-5eb4b59817b8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-0e5ee641-d429-4ffd-8c1f-5eb4b59817b8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-17b873b4-b064-4ab3-988f-0a2324761d43' class='xr-var-data-in' type='checkbox'><label for='data-17b873b4-b064-4ab3-988f-0a2324761d43' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>100 metre U wind component</dd><dt><span>short_name :</span></dt><dd>100u</dd><dt><span>standard_name :</span></dt><dd>eastward_wind</dd><dt><span>units :</span></dt><dd>m s-1</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>wind_u_10m</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-dba7d0f8-fb6c-4ce2-baff-d217d506e275' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-dba7d0f8-fb6c-4ce2-baff-d217d506e275' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c13f83ad-4c35-47e2-bf60-0beef0ac2035' class='xr-var-data-in' type='checkbox'><label for='data-c13f83ad-4c35-47e2-bf60-0beef0ac2035' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>10 metre U wind component</dd><dt><span>short_name :</span></dt><dd>10u</dd><dt><span>standard_name :</span></dt><dd>eastward_wind</dd><dt><span>units :</span></dt><dd>m s-1</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>wind_v_10m</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-caa784f8-1b89-402c-b262-6bfd9a9bec8a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-caa784f8-1b89-402c-b262-6bfd9a9bec8a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5c3a9ed4-0bc4-4ff2-9d6a-b4790196aa32' class='xr-var-data-in' type='checkbox'><label for='data-5c3a9ed4-0bc4-4ff2-9d6a-b4790196aa32' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>10 metre V wind component</dd><dt><span>short_name :</span></dt><dd>10v</dd><dt><span>standard_name :</span></dt><dd>northward_wind</dd><dt><span>units :</span></dt><dd>m s-1</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>wind_v_100m</span></div><div class='xr-var-dims'>(init_time, lead_time, ensemble_member, latitude, longitude)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-db87b85d-5f32-4a1c-893f-0cea62fe594b' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-db87b85d-5f32-4a1c-893f-0cea62fe594b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-669aa30b-f428-4bcd-9b36-08eefeae71a4' class='xr-var-data-in' type='checkbox'><label for='data-669aa30b-f428-4bcd-9b36-08eefeae71a4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>100 metre V wind component</dd><dt><span>short_name :</span></dt><dd>100v</dd><dt><span>standard_name :</span></dt><dd>northward_wind</dd><dt><span>units :</span></dt><dd>m s-1</dd><dt><span>step_type :</span></dt><dd>instant</dd></dl></div><div class='xr-var-data'><pre>[3123534657600 values with dtype=float32]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-0f7bf0b8-9cfc-4dc1-ba35-dce374c277d3' class='xr-section-summary-in' type='checkbox' /><label for='section-0f7bf0b8-9cfc-4dc1-ba35-dce374c277d3' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(11)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>dataset_id :</span></dt><dd>ecmwf-ifs-ens-forecast-15-day-0-25-degree</dd><dt><span>dataset_version :</span></dt><dd>0.1.0</dd><dt><span>name :</span></dt><dd>ECMWF IFS ENS Forecast, 15 day, 0.25 degree</dd><dt><span>description :</span></dt><dd>Ensemble weather forecasts from the ECMWF Integrated Forecasting System (IFS).</dd><dt><span>attribution :</span></dt><dd>ECMWF IFS ENS Forecast data processed by dynamical.org from ECMWF Open Data.</dd><dt><span>spatial_domain :</span></dt><dd>Global</dd><dt><span>spatial_resolution :</span></dt><dd>0.25 degrees (~20km)</dd><dt><span>time_domain :</span></dt><dd>Forecasts initialized 2024-04-01 00:00:00 UTC to Present</dd><dt><span>time_resolution :</span></dt><dd>Forecasts initialized every 24 hours</dd><dt><span>forecast_domain :</span></dt><dd>Forecast lead time 0-360 hours (0-15 days) ahead</dd><dt><span>forecast_resolution :</span></dt><dd>Forecast step 0-144 hours: 3 hourly, 144-360 hours: 6 hourly</dd></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.Dataset> Size: 162TB\n",
"Dimensions: (init_time: 694, lead_time: 85,\n",
" ensemble_member: 51,\n",
" latitude: 721, longitude: 1440)\n",
"Coordinates:\n",
" * init_time (init_time) datetime64[ns] 6kB ...\n",
" ingested_forecast_length (init_time) timedelta64[ns] 6kB ...\n",
" expected_forecast_length (init_time) timedelta64[ns] 6kB ...\n",
" * lead_time (lead_time) timedelta64[ns] 680B ...\n",
" valid_time (init_time, lead_time) datetime64[ns] 472kB ...\n",
" * ensemble_member (ensemble_member) int16 102B ...\n",
" * latitude (latitude) float64 6kB 90.0 ....\n",
" * longitude (longitude) float64 12kB -180...\n",
" spatial_ref int64 8B ...\n",
"Data variables: (12/13)\n",
" categorical_precipitation_type_surface (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" downward_long_wave_radiation_flux_surface (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" dew_point_temperature_2m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" downward_short_wave_radiation_flux_surface (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" geopotential_height_500hpa (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" pressure_surface (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" ... ...\n",
" temperature_2m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" pressure_reduced_to_mean_sea_level (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" wind_u_100m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" wind_u_10m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" wind_v_10m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
" wind_v_100m (init_time, lead_time, ensemble_member, latitude, longitude) float32 12TB ...\n",
"Attributes:\n",
" dataset_id: ecmwf-ifs-ens-forecast-15-day-0-25-degree\n",
" dataset_version: 0.1.0\n",
" name: ECMWF IFS ENS Forecast, 15 day, 0.25 degree\n",
" description: Ensemble weather forecasts from the ECMWF Integrate...\n",
" attribution: ECMWF IFS ENS Forecast data processed by dynamical....\n",
" spatial_domain: Global\n",
" spatial_resolution: 0.25 degrees (~20km)\n",
" time_domain: Forecasts initialized 2024-04-01 00:00:00 UTC to Pr...\n",
" time_resolution: Forecasts initialized every 24 hours\n",
" forecast_domain: Forecast lead time 0-360 hours (0-15 days) ahead\n",
" forecast_resolution: Forecast step 0-144 hours: 3 hourly, 144-360 hours:..."
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import xarray as xr\n",
"import xpystac # registers xarray backend for icechunk assets\n",
"\n",
"item = matches[0]\n",
"print(f\"Opening: {item.id}\")\n",
"\n",
"asset_key = next(k for k in item.assets if \"@\" in k)\n",
"asset = item.assets[asset_key]\n",
"\n",
"ds = xr.open_dataset(asset)\n",
"ds"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.14"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment