{ "cells": [ { "cell_type": "markdown", "id": "9c77bcab", "metadata": {}, "source": [ "# Load Copernicus Land Monitoring Service (CLMS) data" ] }, { "cell_type": "code", "execution_count": 1, "id": "261b3d7e", "metadata": {}, "outputs": [], "source": [ "from odc import stac as odc_stac\n", "from pystac_client import Client\n", "import xarray as xr\n", "from pyproj import Transformer\n", "import math\n", "import xarray as xr\n", "import numpy as np\n", "from rasterio.windows import from_bounds" ] }, { "cell_type": "markdown", "id": "a423b828", "metadata": {}, "source": [ "Connect to eodc stac and open the collection and the item for the Copernicus Land Monitoring data" ] }, { "cell_type": "code", "execution_count": 2, "id": "cb353148", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "
\n", "
\n", " \n", "
\n", "
" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eodc_catalog=Client.open(\"https://stac.eodc.eu/api/v1\")\n", "col = eodc_catalog.get_collection(\"clms\")\n", "col" ] }, { "cell_type": "code", "execution_count": 3, "id": "b2c94c07", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "clms-vpp\n", "clms-st\n" ] } ], "source": [ "search = eodc_catalog.search(collections=[\"clms\"])\n", "for item in search.items():\n", " print(item.id)" ] }, { "cell_type": "code", "execution_count": 4, "id": "08d9f590", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/katharina/.pyenv/versions/3.11.5/lib/python3.11/site-packages/pystac_client/item_search.py:925: FutureWarning: get_items() is deprecated, use items() instead\n", " warnings.warn(\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "
\n", "
\n", "
    \n", " \n", " \n", " \n", "
  • \n", " type\n", " \"Feature\"\n", "
  • \n", " \n", " \n", " \n", " \n", " \n", "
  • \n", " stac_version\n", " \"1.1.0\"\n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " stac_extensions[] 0 items\n", " \n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " id\n", " \"clms-vpp\"\n", "
  • \n", " \n", " \n", " \n", " \n", " \n", "
  • \n", " geometry\n", "
      \n", " \n", " \n", " \n", "
    • \n", " type\n", " \"Polygon\"\n", "
    • \n", " \n", " \n", " \n", " \n", "
    • \n", " coordinates[] 1 items\n", " \n", "
        \n", " \n", " \n", "
      • \n", " 0[] 5 items\n", " \n", "
          \n", " \n", " \n", "
        • \n", " 0[] 2 items\n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 0\n", " 8.45\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 1\n", " 45.6\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
        • \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", "
        • \n", " 1[] 2 items\n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 0\n", " 18.07\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 1\n", " 45.6\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
        • \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", "
        • \n", " 2[] 2 items\n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 0\n", " 18.07\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 1\n", " 49.83\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
        • \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", "
        • \n", " 3[] 2 items\n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 0\n", " 8.45\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 1\n", " 49.83\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
        • \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", "
        • \n", " 4[] 2 items\n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 0\n", " 8.45\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
            \n", " \n", " \n", " \n", "
          • \n", " 1\n", " 45.6\n", "
          • \n", " \n", " \n", " \n", "
          \n", " \n", "
        • \n", " \n", " \n", "
        \n", " \n", "
      • \n", " \n", " \n", "
      \n", " \n", "
    • \n", " \n", " \n", "
    \n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " bbox[] 4 items\n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 0\n", " 8.45\n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 1\n", " 45.6\n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 2\n", " 18.07\n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 3\n", " 49.83\n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " properties\n", "
      \n", " \n", " \n", " \n", "
    • \n", " title\n", " \"Vegetation Phenology and Productivity\"\n", "
    • \n", " \n", " \n", " \n", " \n", " \n", "
    • \n", " description\n", " \"HR-VPP product suite provides information on vegetation status and dynamics.\"\n", "
    • \n", " \n", " \n", " \n", " \n", " \n", "
    • \n", " end_datetime\n", " \"2022-12-31T00:00:00Z\"\n", "
    • \n", " \n", " \n", " \n", " \n", " \n", "
    • \n", " start_datetime\n", " \"2019-01-01T00:00:00Z\"\n", "
    • \n", " \n", " \n", " \n", " \n", " \n", "
    • \n", " datetime\n", " None\n", "
    • \n", " \n", " \n", " \n", "
    \n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " links[] 4 items\n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 0\n", "
        \n", " \n", " \n", " \n", "
      • \n", " rel\n", " \"collection\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " href\n", " \"https://stac.eodc.eu/api/v1/collections/clms\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " type\n", " \"application/json\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 1\n", "
        \n", " \n", " \n", " \n", "
      • \n", " rel\n", " \"parent\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " href\n", " \"https://stac.eodc.eu/api/v1/collections/clms\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " type\n", " \"application/json\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 2\n", "
        \n", " \n", " \n", " \n", "
      • \n", " rel\n", " \"root\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " href\n", " \"https://stac.eodc.eu/api/v1\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " type\n", " \"application/json\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " title\n", " \"EODC Data Catalogue\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 3\n", "
        \n", " \n", " \n", " \n", "
      • \n", " rel\n", " \"self\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " href\n", " \"https://stac.eodc.eu/api/v1/collections/clms/items/clms-vpp\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " type\n", " \"application/geo+json\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " assets\n", "
      \n", " \n", " \n", " \n", "
    • \n", " data\n", "
        \n", " \n", " \n", " \n", "
      • \n", " href\n", " \"https://data.eodc.eu/collections/CLMS/CLMS.zarr\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " type\n", " \"application/vnd.zarr; version=3\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " title\n", " \"Vegetation Phenology and Productivity\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"HR-VPP product suite provides information on vegetation status and dynamics.\"\n", "
      • \n", " \n", " \n", " \n", " \n", "
      • \n", " bands[] 13 items\n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 0\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"AMPL\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Season Amplitude\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 1\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"EOSD\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"End-of-season Date\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 2\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"EOSV\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"End-of-season Value\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 3\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"LENGTH\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Season Length\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 4\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"LSLOPE\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Slope of the Green-up Period\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 5\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"MAXV\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Season Maximum Value\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 6\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"MINV\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Season Minimum Value\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 7\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"QFLAG\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Quality Flag\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 8\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"RSLOPE\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Slope of the Green-down Period\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 9\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"SOSD\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Start-of-season Date\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 10\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"SOSV\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Start-of-season Value\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 11\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"SPROD\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Seasonal Productivity\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 12\n", "
            \n", " \n", " \n", " \n", "
          • \n", " name\n", " \"TPROD\"\n", "
          • \n", " \n", " \n", " \n", " \n", " \n", "
          • \n", " description\n", " \"Total Productivity\"\n", "
          • \n", " \n", " \n", " \n", "
          \n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
      • \n", " \n", " \n", " \n", " \n", "
      • \n", " xarray:open_zarr_kwargs\n", "
          \n", " \n", " \n", " \n", "
        • \n", " group\n", " \"VPP\"\n", "
        • \n", " \n", " \n", " \n", " \n", " \n", "
        • \n", " consolidated\n", " True\n", "
        • \n", " \n", " \n", " \n", " \n", " \n", "
        • \n", " zarr_version\n", " 3\n", "
        • \n", " \n", " \n", " \n", "
        \n", "
      • \n", " \n", " \n", " \n", " \n", "
      • \n", " roles[] 1 items\n", " \n", "
          \n", " \n", " \n", " \n", "
        • \n", " 0\n", " \"data\"\n", "
        • \n", " \n", " \n", " \n", "
        \n", " \n", "
      • \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", "
  • \n", " \n", " \n", " \n", " \n", " \n", "
  • \n", " collection\n", " \"clms\"\n", "
  • \n", " \n", " \n", " \n", "
\n", "
\n", "
" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "item = next(\n", " eodc_catalog.search(collections=[\"clms\"], ids=[\"clms-vpp\"]).get_items()\n", ")\n", "\n", "item" ] }, { "cell_type": "code", "execution_count": 5, "id": "010acd3a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "
\n", "
\n", "
    \n", " \n", " \n", " \n", "
  • \n", " href\n", " \"https://data.eodc.eu/collections/CLMS/CLMS.zarr\"\n", "
  • \n", " \n", " \n", " \n", " \n", " \n", "
  • \n", " type\n", " \"application/vnd.zarr; version=3\"\n", "
  • \n", " \n", " \n", " \n", " \n", " \n", "
  • \n", " title\n", " \"Vegetation Phenology and Productivity\"\n", "
  • \n", " \n", " \n", " \n", " \n", " \n", "
  • \n", " description\n", " \"HR-VPP product suite provides information on vegetation status and dynamics.\"\n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " bands[] 13 items\n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 0\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"AMPL\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Season Amplitude\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 1\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"EOSD\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"End-of-season Date\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 2\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"EOSV\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"End-of-season Value\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 3\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"LENGTH\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Season Length\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 4\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"LSLOPE\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Slope of the Green-up Period\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 5\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"MAXV\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Season Maximum Value\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 6\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"MINV\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Season Minimum Value\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 7\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"QFLAG\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Quality Flag\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 8\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"RSLOPE\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Slope of the Green-down Period\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 9\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"SOSD\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Start-of-season Date\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 10\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"SOSV\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Start-of-season Value\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 11\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"SPROD\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Seasonal Productivity\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 12\n", "
        \n", " \n", " \n", " \n", "
      • \n", " name\n", " \"TPROD\"\n", "
      • \n", " \n", " \n", " \n", " \n", " \n", "
      • \n", " description\n", " \"Total Productivity\"\n", "
      • \n", " \n", " \n", " \n", "
      \n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " xarray:open_zarr_kwargs\n", "
      \n", " \n", " \n", " \n", "
    • \n", " group\n", " \"VPP\"\n", "
    • \n", " \n", " \n", " \n", " \n", " \n", "
    • \n", " consolidated\n", " True\n", "
    • \n", " \n", " \n", " \n", " \n", " \n", "
    • \n", " zarr_version\n", " 3\n", "
    • \n", " \n", " \n", " \n", "
    \n", "
  • \n", " \n", " \n", " \n", " \n", "
  • \n", " roles[] 1 items\n", " \n", "
      \n", " \n", " \n", " \n", "
    • \n", " 0\n", " \"data\"\n", "
    • \n", " \n", " \n", " \n", "
    \n", " \n", "
  • \n", " \n", " \n", "
\n", "
\n", "
" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "asset = item.assets[\"data\"]\n", "asset" ] }, { "cell_type": "code", "execution_count": 6, "id": "c4c753f3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['data']\n", "https://data.eodc.eu/collections/CLMS/CLMS.zarr\n" ] } ], "source": [ "print(list(item.assets.keys()))\n", "asset = item.assets[\"data\"]\n", "print(asset.href)" ] }, { "cell_type": "code", "execution_count": 7, "id": "9ea2b68b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "href: https://data.eodc.eu/collections/CLMS/CLMS.zarr\n", "group: None\n" ] } ], "source": [ "store_url = asset.href\n", "group_path = asset.extra_fields.get(\"zarr:group\") # may be None\n", "\n", "print(\"href:\", store_url)\n", "print(\"group:\", group_path)" ] }, { "cell_type": "markdown", "id": "2078ef62", "metadata": {}, "source": [ "### Open the zarr file" ] }, { "cell_type": "code", "execution_count": 8, "id": "1528087d", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_1935098/348867924.py:1: FutureWarning: zarr_version is deprecated, use zarr_format\n", " coords = xr.open_zarr(\n" ] } ], "source": [ "coords = xr.open_zarr(\n", " store_url,\n", " **asset.extra_fields[\"xarray:open_zarr_kwargs\"]\n", ")" ] }, { "cell_type": "code", "execution_count": 9, "id": "db07401b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_1935098/2837227757.py:1: FutureWarning: zarr_version is deprecated, use zarr_format\n", " maxv_ds = xr.open_zarr(\n" ] } ], "source": [ "maxv_ds = xr.open_zarr(\n", " store_url,\n", " group=\"VPP/MAXV\",\n", " zarr_version=3,\n", " chunks=\"auto\",\n", ")" ] }, { "cell_type": "code", "execution_count": 10, "id": "842b5965", "metadata": {}, "outputs": [], "source": [ "\n", "maxv_zarr = maxv_ds[\"SEASON1\"].assign_coords(\n", " time=(\"time\", coords[\"time\"].values),\n", " x=(\"x\", coords[\"x\"].values),\n", " y=(\"y\", coords[\"y\"].values),\n", ")" ] }, { "cell_type": "markdown", "id": "9188cbe7", "metadata": {}, "source": [ "Select an area: Here Rosalia\n", "\n", "The data is in EPSG3035, so we need to transform the corrdinates." ] }, { "cell_type": "code", "execution_count": 11, "id": "fb9f4733", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4789576 2638650 4803578 2754238\n" ] } ], "source": [ "minlon, minlat, maxlon, maxlat = 16.25, 46.68, 16.31, 47.72\n", "year = 2022\n", "\n", "transformer = Transformer.from_crs(\n", " \"EPSG:4326\",\n", " \"EPSG:3035\",\n", " always_xy=True\n", ")\n", "\n", "def to_3035(minlon, minlat, maxlon, maxlat):\n", " x0, y0 = transformer.transform(minlon, minlat)\n", " x1, y1 = transformer.transform(maxlon, minlat)\n", " x2, y2 = transformer.transform(maxlon, maxlat)\n", " x3, y3 = transformer.transform(minlon, maxlat)\n", "\n", " minx_3035 = int(math.floor(min(x0, x1, x2, x3)))\n", " maxx_3035 = int(math.ceil (max(x0, x1, x2, x3)))\n", " miny_3035 = int(math.floor(min(y0, y1, y2, y3)))\n", " maxy_3035 = int(math.ceil (max(y0, y1, y2, y3)))\n", "\n", " return minx_3035, miny_3035, maxx_3035, maxy_3035\n", "\n", "minx, miny, maxx, maxy = to_3035(minlon, minlat, maxlon, maxlat)\n", "\n", "print(minx, miny, maxx, maxy)\n" ] }, { "cell_type": "markdown", "id": "40a33017", "metadata": {}, "source": [ "Get the data in the selected area" ] }, { "cell_type": "code", "execution_count": 12, "id": "94f16f6f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0.6665 0.6759 1.0142 ... 1.61 1.554 1.7099]\n", " [0.5018 1.0029 1.3698 ... 2.0067 1.8184 1.4919]\n", " [0.7442 1.3635 1.6927 ... 2.1152 2.3205 1.9617]\n", " ...\n", " [1.4486 2.0843 2.2482 ... 1.2622 1.2122 1.3095]\n", " [1.3237 1.3887 1.3536 ... 1.2472 1.0891 0.9634]\n", " [1.1522 1.0731 0.9404 ... 0.9311 0.806 0.6154]]\n" ] } ], "source": [ "subset = maxv_zarr.sel(\n", " time=year,\n", " x=slice(minx, maxx),\n", " y=slice(miny, maxy),\n", ")\n", "\n", "print(subset.values)" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "-all", "main_language": "python", "notebook_metadata_filter": "-all" }, "kernelspec": { "display_name": "Python (env_zarr)", "language": "python", "name": "env_zarr" }, "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.5" } }, "nbformat": 4, "nbformat_minor": 5 }