Created
February 23, 2026 15:39
-
-
Save rsignell/954e17e58248fbd6ff6e8d4512a50492 to your computer and use it in GitHub Desktop.
query_stac_catalog.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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'><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:...</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>{'min': '2024-04-01T00:00:00', 'max': 'Present'}</dd></dl></div><div class='xr-var-data'><pre>array(['2024-04-01T00:00:00.000000000', '2024-04-02T00:00:00.000000000',\n", | |
| " '2024-04-03T00:00:00.000000000', ..., '2026-02-21T00:00:00.000000000',\n", | |
| " '2026-02-22T00:00:00.000000000', '2026-02-23T00:00:00.000000000'],\n", | |
| " shape=(694,), dtype='datetime64[ns]')</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>{'min': '0 days 00:00:00', 'max': '15 days 00:00:00'}</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>{'min': '0 days 00:00:00', 'max': '15 days 00:00:00'}</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>{'min': '0 days 00:00:00', 'max': '15 days 00:00:00'}</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='timedelta64[ns]')</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>{'min': '2024-04-01T00:00:00', 'max': 'Present'}</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>{'min': 0, 'max': 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>{'min': -90.0, 'max': 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>{'min': -180.0, 'max': 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's shape.</dd><dt><span>crs_wkt :</span></dt><dd>GEOGCS["unknown",DATUM["unknown",SPHEROID["unknown",6371229,0]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Longitude",EAST],AXIS["Latitude",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["unknown",DATUM["unknown",SPHEROID["unknown",6371229,0]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Longitude",EAST],AXIS["Latitude",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