diff --git a/.gitignore b/.gitignore index fc4ef15..013e859 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ OSC/OHC_4DATLANTIC_200204_202212_V2-0.nc .DS_Store example_4datlantic _build/ +.virtual_documents/ +*/.ipynb_checkpoints/ +.ipynb_checkpoints/ diff --git a/PRR/CareHeat_v2.ipynb b/PRR/CareHeat_v2.ipynb index dd2aed4..12dc966 100644 --- a/PRR/CareHeat_v2.ipynb +++ b/PRR/CareHeat_v2.ipynb @@ -5,7 +5,7 @@ "id": "1f92ff5a", "metadata": {}, "source": [ - "# ESA Project Results Repository: Generating STAC collections for the CareHeat project\n", + "# Generating STAC collections for the CareHeat project\n", "\n", "This notebook shows how to generate a valid STAC collection, which is a requirement to upload research outcomes to the [ESA Project Results Repository (PRR)](https://eoresults.esa.int/). The code below demonstrates how to perform the necessary steps using real data from the ESA project **deteCtion and threAts of maRinE HEAT waves (CAREHeat)**. The focus of CAREHeat is to improve existing extreme marine heatwave(MHW) detection algorithms, contributing to a better understanding of their impacts.\n", "\n", diff --git a/PRR/Creating STAC Catalog_from_PRR_example.ipynb b/PRR/Creating STAC Catalog_from_PRR_example.ipynb index 0e37cb7..717aba6 100644 --- a/PRR/Creating STAC Catalog_from_PRR_example.ipynb +++ b/PRR/Creating STAC Catalog_from_PRR_example.ipynb @@ -5,7 +5,7 @@ "id": "bead50f2-482d-4bd6-a892-8ec1ff6d705c", "metadata": {}, "source": [ - "# Example from SRAL Processing over Land Ice Dataset\n", + "# Generating metadata for the SRAL Processing over Land Ice Dataset\n", "\n", "**This is an example notebook for creating the STAC Items uploaded to ESA Project Results Repository and made available at**: https://eoresults.esa.int/browser/#/external/eoresults.esa.int/stac/collections/sentinel3-ampli-ice-sheet-elevation\n", "\n", diff --git a/PRR/PRR_STAC_introduction.ipynb b/PRR/PRR_STAC_introduction.ipynb index 451079c..5358ac7 100644 --- a/PRR/PRR_STAC_introduction.ipynb +++ b/PRR/PRR_STAC_introduction.ipynb @@ -6,7 +6,7 @@ "id": "98522825", "metadata": {}, "source": [ - "# Generating a STAC Collection for the PRR\n", + "# Generating STAC metadata for the OHC 4d Atlantic dataset\n", "\n", "## Introduction\n", "\n" @@ -17,7 +17,7 @@ "id": "37e5c0b6-5751-4391-af1f-7fe848dc8939", "metadata": {}, "source": [ - "This notebook has been created to show the core steps required of EarthCODE users to upload their research outcomes to the [ESA Project Results Repository (PRR)](https://eoresults.esa.int/). It focuses on generating metadata for a project with a single `netcdf` file.\n", + "This notebook has been created to show the core steps required of EarthCODE users to upload their research outcomes to the [ESA Project Results Repository (PRR)](https://eoresults.esa.int/). It focuses on generating metadata for a project with a single `netcdf` file. Checkout the other projects on the webpage for more complex examples.\n", "\n", "PRR provides access to data, workflows, experiments and documentation from ESA Projects organised across Collections, accessible via the [STAC API](https://github.com/radiantearth/stac-api-spec). Each Collection contains [STAC Items](https://github.com/radiantearth/stac-spec/blob/master/item-spec/item-spec.md), with their related Assets stored within the PRR storage. Scientists/commercial companies can access the PRR via the [EarthCODE](https://earthcode.esa.int/) and [APEx](https://esa-apex.github.io/apex_documentation/) projects.\n", "\n", @@ -489,31 +489,6 @@ { "cell_type": "code", "execution_count": 3, - "id": "ff2caae2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "('OHC_4DATLANTIC_200204_202212_V2-0.nc',\n", - " )" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import urllib.request\n", - "\n", - "# Download the dataset locally\n", - "urllib.request.urlretrieve('https://data.aviso.altimetry.fr/aviso-gateway/data/indicators/OHC_EEI/4DAtlantic_OHC/OHC_4DATLANTIC_200204_202212_V2-0.nc', 'OHC_4DATLANTIC_200204_202212_V2-0.nc')\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, "id": "c2a28021", "metadata": { "scrolled": true @@ -542,28 +517,76 @@ " */\n", "\n", ":root {\n", - " --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n", - " --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n", - " --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n", - " --xr-border-color: var(--jp-border-color2, #e0e0e0);\n", - " --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n", - " --xr-background-color: var(--jp-layout-color0, white);\n", - " --xr-background-color-row-even: var(--jp-layout-color1, white);\n", - " --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\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: rgba(255, 255, 255, 1);\n", - " --xr-font-color2: rgba(255, 255, 255, 0.54);\n", - " --xr-font-color3: rgba(255, 255, 255, 0.38);\n", - " --xr-border-color: #1f1f1f;\n", - " --xr-disabled-color: #515151;\n", - " --xr-background-color: #111111;\n", - " --xr-background-color-row-even: #111111;\n", - " --xr-background-color-row-odd: #313131;\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", @@ -619,6 +642,7 @@ "\n", ".xr-section-item input + label {\n", " color: var(--xr-disabled-color);\n", + " border: 2px solid transparent !important;\n", "}\n", "\n", ".xr-section-item input:enabled + label {\n", @@ -627,7 +651,7 @@ "}\n", "\n", ".xr-section-item input:focus + label {\n", - " border: 2px solid var(--xr-font-color0);\n", + " border: 2px solid var(--xr-font-color0) !important;\n", "}\n", "\n", ".xr-section-item input:enabled + label:hover {\n", @@ -759,7 +783,9 @@ ".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", @@ -770,6 +796,7 @@ ".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", @@ -819,8 +846,15 @@ ".xr-var-data,\n", ".xr-index-data {\n", " display: none;\n", - " background-color: var(--xr-background-color) !important;\n", - " padding-bottom: 5px !important;\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", @@ -833,6 +867,12 @@ " 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", @@ -892,9 +932,17 @@ " 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", "
<xarray.Dataset> Size: 124MB\n",
-       "Dimensions:                     (time: 249, time_covar: 21, time_covar_2: 21,\n",
-       "                                 latitude: 180, longitude: 125)\n",
+       "Dimensions:                     (latitude: 180, longitude: 125, time: 249,\n",
+       "                                 time_covar: 21, time_covar_2: 21)\n",
        "Coordinates:\n",
        "  * time                        (time) object 2kB 2002-04-15 18:07:12.000001 ...\n",
        "  * time_covar                  (time_covar) object 168B 2002-07-02 00:00:00 ...\n",
@@ -918,14 +966,14 @@
        "    end_date:     2022-12-16\n",
        "    version:      2.0\n",
        "    comment:      See technical documentation ATBD and EDD, and peer-review a...\n",
-       "    contact:      robin.fraudeau(at)magellium.fr
  • source :
    satellite observation
    history :
    Creation: 2025-02-05
    references :
    https://doi.org/10.24400/527896/A01-2022.012
    url :
    https://www.aviso.altimetry.fr/en/data/products/ocean-indicators-products/ocean-heat-content-and-earth-energy-imbalance/atlantic-ocean-heat-content-change.html
    Conventions :
    CF-1.8
    summary :
    The OHC product results from the space geodetic approach also called “altimetry-gravimetry” approach. This file contains variables as 3D grids of ocean heat content anomalies at 1x1° resolution and monthly time step. Error variance-covariance matrices of OHC at regional scale and annual resolution are also provided. See Experimental Dataset Description for details.
    start_date :
    2002-04-15
    end_date :
    2022-12-16
    version :
    2.0
    comment :
    See technical documentation ATBD and EDD, and peer-review article Marti et al, 2022 https://doi.org/10.5194/essd-2021-220 for more information.
    contact :
    robin.fraudeau(at)magellium.fr
  • " ], "text/plain": [ " Size: 124MB\n", - "Dimensions: (time: 249, time_covar: 21, time_covar_2: 21,\n", - " latitude: 180, longitude: 125)\n", + "Dimensions: (latitude: 180, longitude: 125, time: 249,\n", + " time_covar: 21, time_covar_2: 21)\n", "Coordinates:\n", " * time (time) object 2kB 2002-04-15 18:07:12.000001 ...\n", " * time_covar (time_covar) object 168B 2002-07-02 00:00:00 ...\n", @@ -1057,7 +1105,7 @@ " contact: robin.fraudeau(at)magellium.fr" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -1066,15 +1114,15 @@ "# open dataset\n", "\n", "# define relative filepath within the folder structure you want to upload to the PRRs\n", - "filepath = 'OHC_4DATLANTIC_200204_202212_V2-0.nc'\n", + "filepath = 'https://data.aviso.altimetry.fr/aviso-gateway/data/indicators/OHC_EEI/4DAtlantic_OHC/OHC_4DATLANTIC_200204_202212_V2-0.nc'\n", "\n", - "ds = xr.open_dataset(filepath)\n", + "ds = xr.open_dataset(filepath + '#mode=bytes')\n", "ds" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "a6ff1981", "metadata": {}, "outputs": [], @@ -1089,6 +1137,28 @@ " return attrs" ] }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c6cc1f9d-fb88-4adb-929f-5d68f38857f6", + "metadata": {}, + "outputs": [], + "source": [ + "# sometimes attributes are not json serialisable, so we convert them to JSON serialisable formats\n", + "for var in ds.data_vars:\n", + " ds[var].attrs = convert_to_json_serialisable(ds[var].attrs)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "23bbca8b-1cd4-4d22-aeac-8db713ee9de3", + "metadata": {}, + "outputs": [], + "source": [ + "from xstac import xarray_to_stac" + ] + }, { "cell_type": "markdown", "id": "be51a04d-7ab5-47e8-beb9-1395cf551817", @@ -1099,58 +1169,62 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "id": "20f187f3", "metadata": {}, "outputs": [], "source": [ - "# Describe the first file (Item)\n", + "# Describe the first file following the datacube stac extension standards.\n", + "# All data is extracted from the metadata / data already present in the file we only specify\n", + "# the template and what information is extracted\n", "\n", - "\n", - "# 1. extract the spatial extent from the .nc file \n", "bbox = [ds['longitude'].values.min(), ds['latitude'].values.min(), ds['longitude'].values.max(), ds['latitude'].values.max(), ]\n", "geometry = json.loads(json.dumps(shapely.box(*bbox).__geo_interface__))\n", "\n", - "# 2. extract additional information (properties) from the .nc file and create the STAC Item\n", - "item = pystac.Item(\n", - " id=collectionid + 'v2',\n", - " geometry=geometry,\n", - " datetime=datetime.strptime('2025-02-05', '%Y-%m-%d'),\n", - " bbox=bbox,\n", - " properties= {\n", - " \"history\": ds.attrs['history'],\n", - " \"source\": ds.attrs['source'],\n", - " \"comment\": ds.attrs['comment'],\n", - " \"references\": ds.attrs['references'],\n", - " \"summary\": ds.attrs['summary'],\n", - " \"version\": ds.attrs['version'],\n", - " \"conventions\": ds.attrs['Conventions'],\n", - " } # please note that this field is not mandatory by STAC specification, \n", - " # and depends on the information you have provided within your original dataset.\n", - " # You are encouraged to provide as complete information as possible here, to make sure your product has rich metadata, facilitating product discoverability and usability\n", - ")\n", - "\n", - "# 3. Extract variable properties at the Item level, since there is only one file\n", - "stac_property_prefix = 'variable_'\n", - "item.properties[f\"{stac_property_prefix}ohc\"] = convert_to_json_serialisable(ds.variables['ohc'].attrs)\n", - "item.properties[f\"{stac_property_prefix}ohc_var_covar_matrix_local\"] = convert_to_json_serialisable(ds.variables['ohc_var_covar_matrix_local'].attrs)\n", - "item.properties[f\"{stac_property_prefix}ohc_mask\"] = convert_to_json_serialisable(ds.variables['ohc_mask'].attrs)\n", + "template = {\n", "\n", + " \"id\": f\"{collectionid}-{'OHC_4DATLANTIC'.lower()}\",\n", + " \"type\": \"Feature\",\n", + " \"stac_version\": \"1.1.0\",\n", + " \"description\": ds.attrs['summary'],\n", + " \"title\": 'OHC 4D Atlantic',\n", + " \"properties\": {\n", + " \"history\": ds.attrs['history'],\n", + " \"source\": ds.attrs['source'],\n", + " \"comment\": ds.attrs['comment'],\n", + " \"references\": ds.attrs['references'],\n", + " \"version\": ds.attrs['version'],\n", + " \"conventions\": ds.attrs['Conventions'],\n", + " \"contact\": ds.attrs['contact'],\n", + " \"start_datetime\": ds.attrs['start_date'] + 'T00:00:00Z',\n", + " \"end_datetime\": ds.attrs['end_date'] + 'T00:00:00Z',\n", + " },\n", + " \"geometry\": geometry,\n", + " \"bbox\": bbox,\n", + " \"assets\": {\n", + " \"data\": {\n", + " \"href\": f\"./{collectionid}/OHC_4DATLANTIC_200204_202212_V2-0.nc\", # or local path\n", + " \"type\": \"application/x-netcdf\",\n", + " \"roles\": [\"data\"],\n", + " \"title\": 'OHC 4D Atlantic'\n", + " }\n", + " }\n", + "}\n", "\n", - "# 4. Add asset\n", - "item.add_asset(\n", - " key='OHC Atlantic Dataset', # title can be arbitrary\n", - " asset=pystac.Asset(\n", - " href=f'/d/{collectionid}/{filepath}', # keep the /d/ reference\n", - " media_type=\"application/x-netcdf\",\n", - " roles=[\"data\"],\n", - " )\n", - ") ## Please note that asset can describe a satllite image band, as well as single nc or tiff file, depending on the orginal data structure. " + "# 3. Generate the STAC Item\n", + "item = xarray_to_stac(\n", + " ds,\n", + " template,\n", + " temporal_dimension=\"time\" if 'time' in ds.coords else False,\n", + " x_dimension='longitude',\n", + " y_dimension='latitude',\n", + " reference_system=False\n", + ")" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 10, "id": "af420968", "metadata": {}, "outputs": [ @@ -1213,7 +1287,20 @@ " \n", " \n", "
  • \n", - " stac_extensions[] 0 items\n", + " stac_extensions[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"https://stac-extensions.github.io/datacube/v2.2.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", " \n", "
  • \n", " \n", @@ -1222,7 +1309,7 @@ " \n", "
  • \n", " id\n", - " \"4datlantic-ohcv2\"\n", + " \"4datlantic-ohc-ohc_4datlantic\"\n", "
  • \n", " \n", " \n", @@ -1554,8 +1641,8 @@ " \n", " \n", "
  • \n", - " summary\n", - " \"The OHC product results from the space geodetic approach also called “altimetry-gravimetry” approach. This file contains variables as 3D grids of ocean heat content anomalies at 1x1° resolution and monthly time step. Error variance-covariance matrices of OHC at regional scale and annual resolution are also provided. See Experimental Dataset Description for details.\"\n", + " version\n", + " \"2.0\"\n", "
  • \n", " \n", " \n", @@ -1563,8 +1650,8 @@ " \n", " \n", "
  • \n", - " version\n", - " \"2.0\"\n", + " conventions\n", + " \"CF-1.8\"\n", "
  • \n", " \n", " \n", @@ -1572,41 +1659,80 @@ " \n", " \n", "
  • \n", - " conventions\n", - " \"CF-1.8\"\n", + " contact\n", + " \"robin.fraudeau(at)magellium.fr\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " start_datetime\n", + " \"2002-04-15T00:00:00Z\"\n", "
  • \n", " \n", " \n", " \n", " \n", " \n", + "
  • \n", + " end_datetime\n", + " \"2022-12-16T00:00:00Z\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " cube:dimensions\n", + "
      \n", + " \n", + " \n", + " \n", "
    • \n", - " variable_ohc\n", + " time\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " extent[] 2 items\n", + " \n", "
          \n", " \n", " \n", " \n", "
        • \n", - " standard_name\n", - " \"sea_water_potential_temperature_expressed_as_heat_content\"\n", + " 0\n", + " \"2002-04-15T18:07:12.000001Z\"\n", "
        • \n", " \n", " \n", " \n", + "
        \n", + " \n", + "
          \n", + " \n", " \n", " \n", "
        • \n", - " units\n", - " \"J m-2\"\n", + " 1\n", + " \"2022-12-16T18:59:59.999998Z\"\n", "
        • \n", " \n", " \n", " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", " \n", " \n", "
      • \n", - " unit_long\n", - " \"joules per square meter\"\n", + " description\n", + " \"time\"\n", "
      • \n", " \n", " \n", @@ -1614,24 +1740,35 @@ " \n", " \n", "
      • \n", - " long_name\n", - " \"ocean heat content\"\n", + " type\n", + " \"temporal\"\n", "
      • \n", " \n", " \n", " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " longitude\n", + "
        \n", + " \n", " \n", " \n", "
      • \n", - " comment\n", - " \"regional ocean heat content from the space geodetic approach - derived from the regional thermosteric sea level change using a regional expansion efficiency of heat coefficients\"\n", + " axis\n", + " \"x\"\n", "
      • \n", " \n", " \n", " \n", " \n", "
      • \n", - " actual_range[] 2 items\n", + " extent[] 2 items\n", " \n", "
          \n", " \n", @@ -1639,7 +1776,7 @@ " \n", "
        • \n", " 0\n", - " -14159462583.173119\n", + " -99.5\n", "
        • \n", " \n", " \n", @@ -1652,7 +1789,7 @@ " \n", "
        • \n", " 1\n", - " 138967666293.89273\n", + " 24.5\n", "
        • \n", " \n", " \n", @@ -1662,22 +1799,11 @@ "
      • \n", " \n", " \n", - "
      \n", - "
    • \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    • \n", - " variable_ohc_var_covar_matrix_local\n", - "
        \n", - " \n", " \n", " \n", "
      • \n", - " units\n", - " \"J2 m-4\"\n", + " step\n", + " 1.0\n", "
      • \n", " \n", " \n", @@ -1685,8 +1811,8 @@ " \n", " \n", "
      • \n", - " unit_long\n", - " \"square joules per meter to the power of 4\"\n", + " description\n", + " \"longitude\"\n", "
      • \n", " \n", " \n", @@ -1694,24 +1820,35 @@ " \n", " \n", "
      • \n", - " long_name\n", - " \"variance covariance matrix of errors on regional ocean heat content\"\n", + " type\n", + " \"spatial\"\n", "
      • \n", " \n", " \n", " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " latitude\n", + "
        \n", + " \n", " \n", " \n", "
      • \n", - " comment\n", - " \"variance covariance matrix of errors on regional ocean heat content time-series\"\n", + " axis\n", + " \"y\"\n", "
      • \n", " \n", " \n", " \n", " \n", "
      • \n", - " actual_range[] 2 items\n", + " extent[] 2 items\n", " \n", "
          \n", " \n", @@ -1719,7 +1856,7 @@ " \n", "
        • \n", " 0\n", - " -3.90411988493089e+19\n", + " -89.5\n", "
        • \n", " \n", " \n", @@ -1732,7 +1869,7 @@ " \n", "
        • \n", " 1\n", - " 4.79409851441767e+19\n", + " 89.5\n", "
        • \n", " \n", " \n", @@ -1742,22 +1879,11 @@ "
      • \n", " \n", " \n", - "
      \n", - "
    • \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    • \n", - " variable_ohc_mask\n", - "
        \n", - " \n", " \n", " \n", "
      • \n", - " long_name\n", - " \"ocean_heat_content_mask\"\n", + " step\n", + " 1.0\n", "
      • \n", " \n", " \n", @@ -1765,8 +1891,8 @@ " \n", " \n", "
      • \n", - " units\n", - " \"1\"\n", + " description\n", + " \"latitude\"\n", "
      • \n", " \n", " \n", @@ -1774,8 +1900,8 @@ " \n", " \n", "
      • \n", - " comment\n", - " \"mask to apply on OHC data for masking interpolated data ( 1 for observed data and 0 for extrapolated data)\"\n", + " type\n", + " \"spatial\"\n", "
      • \n", " \n", " \n", @@ -1785,44 +1911,28 @@ " \n", " \n", " \n", - " \n", - " \n", - "
      • \n", - " datetime\n", - " \"2025-02-05T00:00:00Z\"\n", - "
      • \n", - " \n", - " \n", - " \n", "
      \n", "
    • \n", " \n", - " \n", " \n", - " \n", - "
    • \n", - " links[] 0 items\n", " \n", - "
    • \n", - " \n", " \n", " \n", - " \n", "
    • \n", - " assets\n", + " cube:variables\n", "
        \n", " \n", " \n", " \n", "
      • \n", - " OHC Atlantic Dataset\n", + " crs\n", "
          \n", " \n", " \n", " \n", "
        • \n", - " href\n", - " \"/d/4datlantic-ohc/../../data/OHC_4DATLANTIC_200204_202212_V2-0.nc\"\n", + " type\n", + " \"data\"\n", "
        • \n", " \n", " \n", @@ -1830,51 +1940,931 @@ " \n", " \n", "
        • \n", - " type\n", - " \"application/x-netcdf\"\n", + " description\n", + " \"Coordinate Reference System\"\n", "
        • \n", " \n", " \n", " \n", " \n", "
        • \n", - " roles[] 1 items\n", + " dimensions[] 0 items\n", + " \n", + "
        • \n", + " \n", " \n", + " \n", + " \n", + "
        • \n", + " attrs\n", "
            \n", " \n", " \n", " \n", "
          • \n", - " 0\n", - " \"data\"\n", + " long_name\n", + " \"Coordinate Reference System\"\n", "
          • \n", " \n", " \n", " \n", - "
          \n", + " \n", + " \n", + "
        • \n", + " grid_mapping\n", + " \"crs\"\n", + "
        • \n", + " \n", + " \n", " \n", - "
        • \n", + " \n", + " \n", + "
        • \n", + " grid_mapping_name\n", + " \"latitude_longitude\"\n", + "
        • \n", + " \n", " \n", " \n", - "
        \n", - "
      • \n", + " \n", + " \n", + "
      • \n", + " longitude_of_prime_meridian\n", + " 0.0\n", + "
      • \n", " \n", " \n", " \n", - "
      \n", - "
    • \n", + " \n", + " \n", + "
    • \n", + " semi_major_axis\n", + " 6378137.0\n", + "
    • \n", " \n", + " \n", + " \n", + " \n", " \n", + "
    • \n", + " inverse_flattening\n", + " 298.257223563\n", + "
    • \n", + " \n", " \n", - "
    \n", - " \n", - "" - ], - "text/plain": [ - "" + " \n", + " \n", + " \n", + "
  • \n", + " comment\n", + " \"This is a container variable that describes the grid_mapping used by the data in this file. This variable does not contain any data;only information about the geographic coordinate system.\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " shape[] 0 items\n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " cell_surface\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"data\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Informs on the surface of each grid cell\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " dimensions[] 2 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"latitude\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"longitude\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " unit\n", + " \"m2\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " attrs\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " standard_name\n", + " \"cell_area\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " long_name\n", + " \"cell surface of the grid\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " units\n", + " \"m2\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Informs on the surface of each grid cell\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " shape[] 2 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " 180\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " 125\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " ohc\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"data\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"ocean heat content\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " dimensions[] 3 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"time\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"latitude\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " \"longitude\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " unit\n", + " \"J m-2\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " attrs\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " standard_name\n", + " \"sea_water_potential_temperature_expressed_as_heat_content\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " units\n", + " \"J m-2\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " unit_long\n", + " \"joules per square meter\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " long_name\n", + " \"ocean heat content\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " comment\n", + " \"regional ocean heat content from the space geodetic approach - derived from the regional thermosteric sea level change using a regional expansion efficiency of heat coefficients\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " actual_range[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " -14159462583.173119\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " 138967666293.89273\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " shape[] 3 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " 249\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " 180\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " 125\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " ohc_mask\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"data\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"ocean_heat_content_mask\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " dimensions[] 1 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"time\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " unit\n", + " \"1\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " attrs\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " long_name\n", + " \"ocean_heat_content_mask\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " units\n", + " \"1\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " comment\n", + " \"mask to apply on OHC data for masking interpolated data ( 1 for observed data and 0 for extrapolated data)\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " shape[] 1 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " 249\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " ohc_var_covar_matrix_local\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"data\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"variance covariance matrix of errors on regional ocean heat content\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " dimensions[] 4 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"time_covar\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"time_covar_2\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " \"latitude\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 3\n", + " \"longitude\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " unit\n", + " \"J2 m-4\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " attrs\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " units\n", + " \"J2 m-4\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " unit_long\n", + " \"square joules per meter to the power of 4\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " long_name\n", + " \"variance covariance matrix of errors on regional ocean heat content\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " comment\n", + " \"variance covariance matrix of errors on regional ocean heat content time-series\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " actual_range[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " -3.90411988493089e+19\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " 4.79409851441767e+19\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " shape[] 4 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " 21\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " 21\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " 180\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 3\n", + " 125\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " datetime\n", + " None\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " links[] 0 items\n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " data\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"./4datlantic-ohc/OHC_4DATLANTIC_200204_202212_V2-0.nc\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/x-netcdf\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"OHC 4D Atlantic\"\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", + "" + ], + "text/plain": [ + "" ] }, - "execution_count": 7, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -1895,7 +2885,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 11, "id": "a2afb86e", "metadata": {}, "outputs": [ @@ -1970,10 +2960,10 @@ "" ], "text/plain": [ - ">" + ">" ] }, - "execution_count": 8, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -1994,7 +2984,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "id": "eba7b73a", "metadata": {}, "outputs": [], @@ -2007,7 +2997,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "id": "1affe3d2-28a0-4029-9a6f-a171cff8e419", "metadata": {}, "outputs": [ @@ -2111,7 +3101,7 @@ " \n", "
  • \n", " href\n", - " \"/home/krasen/examples/OSC/example_4datlantic/collection.json\"\n", + " \"/home/krasen/examples/PRR/example_4datlantic/collection.json\"\n", "
  • \n", " \n", " \n", @@ -2162,7 +3152,7 @@ " \n", "
  • \n", " href\n", - " \"/home/krasen/examples/OSC/example_4datlantic/4datlantic-ohcv2/4datlantic-ohcv2.json\"\n", + " \"/home/krasen/examples/PRR/example_4datlantic/4datlantic-ohc-ohc_4datlantic/4datlantic-ohc-ohc_4datlantic.json\"\n", "
  • \n", " \n", " \n", @@ -2204,7 +3194,7 @@ " \n", "
  • \n", " href\n", - " \"/home/krasen/examples/OSC/example_4datlantic/collection.json\"\n", + " \"/home/krasen/examples/PRR/example_4datlantic/collection.json\"\n", "
  • \n", " \n", " \n", @@ -2401,7 +3391,7 @@ "" ] }, - "execution_count": 10, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -2436,9 +3426,9 @@ ], "metadata": { "kernelspec": { - "display_name": "pangeo", + "display_name": "Python [conda env:micromamba-pangeo] *", "language": "python", - "name": "python3" + "name": "conda-env-micromamba-pangeo-py" }, "language_info": { "codemirror_mode": { diff --git a/PRR/TCCAS_v2.ipynb b/PRR/TCCAS_v2.ipynb index e67052e..8422f4e 100644 --- a/PRR/TCCAS_v2.ipynb +++ b/PRR/TCCAS_v2.ipynb @@ -5,7 +5,7 @@ "id": "1f92ff5a", "metadata": {}, "source": [ - "# ESA Project Results Repository: Generating STAC collections with multiple assets\n", + "# Generating STAC metadatas for the TCCAS dataset\n", "\n", "This notebook shows how to generate a valid STAC collection, which is a requirement to upload research outcomes to the [ESA Project Results Repository (PRR)](https://eoresults.esa.int/). It focuses on generating metadata for a project with multiple data files of different types. \n", "\n", diff --git a/PRR/index.md b/PRR/index.md index 62a4929..955c71e 100644 --- a/PRR/index.md +++ b/PRR/index.md @@ -1,6 +1,6 @@ # ESA Project Results Repository -The [ESA Project Results Repository (PRR)](https://eoresults.esa.int/) provides long term storage for research outcomes. It provides access to data, workflows, experiments and documentation from ESA Projects organised across Collections, accessible via the [STAC API](https://github.com/radiantearth/stac-api-spec). Each Collection contains [STAC Items](https://github.com/radiantearth/stac-spec/blob/master/item-spec/item-spec.md), with their related Assets stored within the PRR storage. Scientists/commercial companies can access the PRR via the [EarthCODE](https://earthcode.esa.int/) and [APEx](https://esa-apex.github.io/apex_documentation/) projects. +The [ESA Project Results Repository (PRR)](https://eoresults.esa.int/) provides long term storage for research outcomes. It provides access to data, workflows, experiments and documentation from ESA Projects organised across Collections, accessible via the [STAC API](https://github.com/radiantearth/stac-api-spec). Each Collection contains [STAC Items](https://github.com/radiantearth/stac-spec/blob/master/item-spec/item-spec.md), with their related Assets stored within the PRR storage. Scientists/commercial companies can upload data to the PRR via the [EarthCODE](https://earthcode.esa.int/) and [APEx](https://esa-apex.github.io/apex_documentation/) projects. Most data in the PRR is open access and anyone can download and use it, subject to the dataset's particular license. # Uploading data to the PRR diff --git a/PRR/prr_zarr.ipynb b/PRR/prr_zarr.ipynb index b83bcae..21307f7 100644 --- a/PRR/prr_zarr.ipynb +++ b/PRR/prr_zarr.ipynb @@ -5,7 +5,7 @@ "id": "1f92ff5a", "metadata": {}, "source": [ - "# ESA Project Results Repository: Generating STAC collections with zarr files\n", + "# Generating STAC metadata for the YIPEEO project\n", "\n", "This notebook shows how to generate a valid STAC collection, which is a requirement to upload research outcomes to the [ESA Project Results Repository (PRR)](https://eoresults.esa.int/). It focuses on generating metadata for a project with zarr data. The product has two zarr files, covering different regions, created using Sentinel 1 and Sentinel 2 data respectively.\n", "\n", @@ -316,9 +316,9 @@ ], "metadata": { "kernelspec": { - "display_name": "pangeo", + "display_name": "Python [conda env:interactive_dendrogram]", "language": "python", - "name": "python3" + "name": "conda-env-interactive_dendrogram-py" }, "language_info": { "codemirror_mode": { @@ -330,7 +330,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.3" + "version": "3.13.2" } }, "nbformat": 4, diff --git a/myst.yml b/myst.yml index dee66d3..4ccdeac 100644 --- a/myst.yml +++ b/myst.yml @@ -21,9 +21,9 @@ project: - file: PRR/PRR_STAC_introduction.ipynb - file: PRR/prr_zarr.ipynb - file: PRR/Creating STAC Catalog_from_PRR_example.ipynb - - file: PRR/PRR_STAC_download_example.ipynb - file: PRR/TCCAS_v2.ipynb - file: PRR/CareHeat_v2.ipynb + - file: PRR/PRR_STAC_download_example.ipynb - title: Open Science Catalog (OSC) file: OSC/index.md