From 9b5d6e5f3facabc4e5880bd5fd80919abe376017 Mon Sep 17 00:00:00 2001 From: Krasen Samardzhiev Date: Wed, 29 Oct 2025 11:24:52 +0000 Subject: [PATCH 1/2] smart ch4 --- PRR/smartch4_signatures_modified.ipynb | 11404 +++++++++++++++++++++++ 1 file changed, 11404 insertions(+) create mode 100644 PRR/smartch4_signatures_modified.ipynb diff --git a/PRR/smartch4_signatures_modified.ipynb b/PRR/smartch4_signatures_modified.ipynb new file mode 100644 index 0000000..cddb1b9 --- /dev/null +++ b/PRR/smartch4_signatures_modified.ipynb @@ -0,0 +1,11404 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1f92ff5a", + "metadata": {}, + "source": [ + "# SmartCH4 project - δ13CH4 signatures\n", + "\n", + "This notebook shows how to \n", + "\n", + "1) Combine a number of .nc files into a .zarr\n", + "2) 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 **SMART-CH4**. The focus of SMART-CH4 is to build upon previous experience and projects in satellite-based methane quantification, aiming to enhance emission products derived from satellites.\n", + "\n", + "\n", + "Check the [EarthCODE documentation](https://earthcode.esa.int/), and [PRR STAC introduction example](https://esa-earthcode.github.io/tutorials/prr-stac-introduction) for a more general introduction to STAC and the ESA PRR.\n", + "\n", + "\n", + "\n", + "🔗 Check the project website: [SMART-CH4 – Website](https://smart-ch4.lsce.ipsl.fr/) \n", + "\n", + "\n", + "🔗 Check the eo4society page: [SMART-CH4 – eo4society](https://eo4society.esa.int/projects/smart-ch4/)\n", + "\n", + "\n", + "#### Acknowledgment \n", + "We gratefully acknowledge the **SMART-CH4** for providing access to the data used in this example, as well as their support in creating it." + ] + }, + { + "cell_type": "markdown", + "id": "a77cab24", + "metadata": {}, + "source": [ + "# 1. Combine the data into a single .zarr file" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "3333ec9c", + "metadata": {}, + "outputs": [], + "source": [ + "# import libraries\n", + "import xarray as xr\n", + "from pystac import Item, Collection\n", + "import pystac\n", + "from datetime import datetime\n", + "from shapely.geometry import box, mapping\n", + "from xstac import xarray_to_stac\n", + "import glob\n", + "import json\n", + "import shapely\n", + "import numpy as np\n", + "import geopandas as gpd\n", + "import pandas as pd\n", + "import os\n", + "import scipy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bdd14f3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-agw',\n", + " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-bb',\n", + " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-ff',\n", + " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-nat',\n", + " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-subsectors',\n", + " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-wet']" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import glob\n", + "datadir = '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/*'\n", + "subdirectories = glob.glob(datadir)\n", + "subdirectories" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "81575763", + "metadata": {}, + "outputs": [], + "source": [ + "agw_files = glob.glob('/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw' + '/*')\n", + "bb_files = glob.glob('/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb' + '/*')\n", + "ff_files = glob.glob('/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff' + '/*')\n", + "nat_files = glob.glob('/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat' + '/*')\n", + "wet_files = glob.glob('/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet' + '/*')\n", + "\n", + "short_names = [\"agw\", \"bb\", \"ffg\", \"nat\", \"wet\"]\n", + "long_names = [\n", + " \"agricultural and waste\",\n", + " \"biomass burning\",\n", + " \"fossil fuel and geological\",\n", + " \"natural non-wetland\",\n", + " \"wetlands\"\n", + "]\n", + "\n", + "subsector_files = glob.glob('/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-subsectors' + '/*')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6ac4b6ff", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2022.1x1.nc']\n", + "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2022.1x1.nc']\n", + "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2022.1x1.nc']\n", + "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2022.1x1.nc']\n", + "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2022.1x1.nc']\n" + ] + } + ], + "source": [ + "dss = []\n", + "\n", + "for sname,lname,files in zip(short_names, long_names, [agw_files, bb_files, ff_files, nat_files, wet_files]):\n", + " print(files)\n", + " ds = xr.open_mfdataset(\n", + " files,\n", + " concat_dim=\"time\",\n", + " combine=\"nested\",\n", + " compat=\"equals\",\n", + " join=\"exact\"\n", + " )\n", + " # replace acronym with long name\n", + " ds.sign_d13c.attrs['long_name'] = ds.sign_d13c.long_name.replace(sname.upper(), lname)\n", + " # assign all the sigma values to each variable\n", + " ds.sign_d13c.attrs.update({k:v for k,v in ds.attrs.items() if k.startswith('sigma_')})\n", + " # rename sign_d13c to have accronym extension\n", + " ds = ds.rename_vars({'sign_d13c': f'sign_d13c_{sname}'})\n", + "\n", + " ds.attrs = {\n", + " \"title\": \"d13C(CH4) isotopic signature\",\n", + " \"history\": \"Sub-sectors aggregated into sectors (flux-weighted). NaN values filled with flux-weighted global mean.\",\n", + " \"time_period\": \"Monthly data for 1998-2022\",\n", + " \"fluxes_source_for_flux_weighted\": \"AGRICULTURAL_WASTE, BIOFUELS, BIOMASS, COAL, LANDFILLS, LIVESTOCK, OILGASIND, RICE, WASTE_WATER: EDGARv8 (Crippa et al. 2023), GEOLOGICAL, OCEANIC, TERMITES, WETLAND: Prior fluxes provided with the Global Methane budget inversion protocol (Martinez et al. 2024)\",\n", + " \"signature_source\" : \"LIVESTOCK, BIOFUELS, BIOMASS: LAN ET. AL (2021), WASTE_WATER, LANDFILLS, AGRICULTURAL_WASTE, RICE: MENOUD ET AL. (2022), COAL, OILGASIND: LAN ET. AL (2021), MENOUD ET AL. (2022), WETLAND: OH ET AL. (2022), OCEANIC: SANSONE ET AL. (2001), TERMITES: THOMPSON ET AL. (2018), GEOLOGICAL: ETIOPE ET AL. (2019)\",\n", + " \"created_by\": \"Emeline Tapin on 29 September 2025\",\n", + " \"creator_email\": \"emeline.tapin@lsce.ipsl.fr\",\n", + " \"institution\": \"LSCE (Laboratoire des Sciences du Climat et de l’Environnement)\",\n", + " \"conventions\": \"CF-1.9\"\n", + " }\n", + " \n", + " dss.append(ds)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "9045a7da", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 778MB\n",
+       "Dimensions:        (time: 300, latitude: 180, longitude: 360)\n",
+       "Coordinates:\n",
+       "  * latitude       (latitude) float64 1kB -89.5 -88.5 -87.5 ... 87.5 88.5 89.5\n",
+       "  * longitude      (longitude) float64 3kB -179.5 -178.5 -177.5 ... 178.5 179.5\n",
+       "  * time           (time) datetime64[ns] 2kB 1998-01-01 ... 2022-12-01\n",
+       "Data variables:\n",
+       "    sign_d13c_agw  (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 180, 360), meta=np.ndarray>\n",
+       "    sign_d13c_bb   (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 180, 360), meta=np.ndarray>\n",
+       "    sign_d13c_ffg  (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 180, 360), meta=np.ndarray>\n",
+       "    sign_d13c_nat  (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 180, 360), meta=np.ndarray>\n",
+       "    sign_d13c_wet  (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 180, 360), meta=np.ndarray>\n",
+       "Attributes:\n",
+       "    title:                            d13C(CH4) isotopic signature\n",
+       "    history:                          Sub-sectors aggregated into sectors (fl...\n",
+       "    time_period:                      Monthly data for 1998-2022\n",
+       "    fluxes_source_for_flux_weighted:  AGRICULTURAL_WASTE, BIOFUELS, BIOMASS, ...\n",
+       "    signature_source:                 LIVESTOCK, BIOFUELS, BIOMASS: LAN ET. A...\n",
+       "    created_by:                       Emeline Tapin on 29 September 2025\n",
+       "    creator_email:                    emeline.tapin@lsce.ipsl.fr\n",
+       "    institution:                      LSCE (Laboratoire des Sciences du Clima...\n",
+       "    conventions:                      CF-1.9
" + ], + "text/plain": [ + " Size: 778MB\n", + "Dimensions: (time: 300, latitude: 180, longitude: 360)\n", + "Coordinates:\n", + " * latitude (latitude) float64 1kB -89.5 -88.5 -87.5 ... 87.5 88.5 89.5\n", + " * longitude (longitude) float64 3kB -179.5 -178.5 -177.5 ... 178.5 179.5\n", + " * time (time) datetime64[ns] 2kB 1998-01-01 ... 2022-12-01\n", + "Data variables:\n", + " sign_d13c_agw (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_bb (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_ffg (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_nat (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_wet (time, latitude, longitude) float64 156MB dask.array\n", + "Attributes:\n", + " title: d13C(CH4) isotopic signature\n", + " history: Sub-sectors aggregated into sectors (fl...\n", + " time_period: Monthly data for 1998-2022\n", + " fluxes_source_for_flux_weighted: AGRICULTURAL_WASTE, BIOFUELS, BIOMASS, ...\n", + " signature_source: LIVESTOCK, BIOFUELS, BIOMASS: LAN ET. A...\n", + " created_by: Emeline Tapin on 29 September 2025\n", + " creator_email: emeline.tapin@lsce.ipsl.fr\n", + " institution: LSCE (Laboratoire des Sciences du Clima...\n", + " conventions: CF-1.9" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds = xr.merge(dss)\n", + "ds" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "33c40d1a", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/krasen/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/api.py:741: RuntimeWarning: 'argo' fails while guessing\n", + " engine = plugins.guess_engine(filename_or_obj)\n" + ] + }, + { + "ename": "ValueError", + "evalue": "did not find a match in any of xarray's currently installed IO backends ['netcdf4', 'h5netcdf', 'scipy', 'argo', 'cfgrib', 'gini', 'kerchunk', 'pydap', 'rasterio', 'stac', 'zarr']. Consider explicitly selecting one of the installed engines via the ``engine`` parameter, or installing additional IO dependencies, see:\nhttps://docs.xarray.dev/en/stable/getting-started-guide/installing.html\nhttps://docs.xarray.dev/en/stable/user-guide/io.html", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[14], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mxr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-subsectors/d13c.wetlands.oh2022.1x1.nc\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/api.py:741\u001b[0m, in \u001b[0;36mopen_dataset\u001b[0;34m(filename_or_obj, engine, chunks, cache, decode_cf, mask_and_scale, decode_times, decode_timedelta, use_cftime, concat_characters, decode_coords, drop_variables, create_default_indexes, inline_array, chunked_array_type, from_array_kwargs, backend_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 738\u001b[0m kwargs\u001b[38;5;241m.\u001b[39mupdate(backend_kwargs)\n\u001b[1;32m 740\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m engine \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 741\u001b[0m engine \u001b[38;5;241m=\u001b[39m \u001b[43mplugins\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mguess_engine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 743\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m from_array_kwargs \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 744\u001b[0m from_array_kwargs \u001b[38;5;241m=\u001b[39m {}\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/plugins.py:199\u001b[0m, in \u001b[0;36mguess_engine\u001b[0;34m(store_spec)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 192\u001b[0m error_msg \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 193\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfound the following matches with the input file in xarray\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124ms IO \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 194\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbackends: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcompatible_engines\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. But their dependencies may not be installed, see:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps://docs.xarray.dev/en/stable/user-guide/io.html \u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps://docs.xarray.dev/en/stable/getting-started-guide/installing.html\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 197\u001b[0m )\n\u001b[0;32m--> 199\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(error_msg)\n", + "\u001b[0;31mValueError\u001b[0m: did not find a match in any of xarray's currently installed IO backends ['netcdf4', 'h5netcdf', 'scipy', 'argo', 'cfgrib', 'gini', 'kerchunk', 'pydap', 'rasterio', 'stac', 'zarr']. Consider explicitly selecting one of the installed engines via the ``engine`` parameter, or installing additional IO dependencies, see:\nhttps://docs.xarray.dev/en/stable/getting-started-guide/installing.html\nhttps://docs.xarray.dev/en/stable/user-guide/io.html" + ] + } + ], + "source": [ + "xr.open_dataset('/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-subsectors/d13c.wetlands.oh2022.1x1.nc')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "01dda59a", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "9d12443f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing subsector: agricultural_waste\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/krasen/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/api.py:741: RuntimeWarning: 'argo' fails while guessing\n", + " engine = plugins.guess_engine(filename_or_obj)\n" + ] + }, + { + "ename": "ValueError", + "evalue": "did not find a match in any of xarray's currently installed IO backends ['netcdf4', 'h5netcdf', 'scipy', 'argo', 'cfgrib', 'gini', 'kerchunk', 'pydap', 'rasterio', 'stac', 'zarr']. Consider explicitly selecting one of the installed engines via the ``engine`` parameter, or installing additional IO dependencies, see:\nhttps://docs.xarray.dev/en/stable/getting-started-guide/installing.html\nhttps://docs.xarray.dev/en/stable/user-guide/io.html", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[24], line 12\u001b[0m\n\u001b[1;32m 9\u001b[0m subsector_name \u001b[38;5;241m=\u001b[39m filename\u001b[38;5;241m.\u001b[39msplit(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m'\u001b[39m)[\u001b[38;5;241m1\u001b[39m]\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mProcessing subsector: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00msubsector_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 12\u001b[0m subsector_ds \u001b[38;5;241m=\u001b[39m \u001b[43mxr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 13\u001b[0m \u001b[43m \u001b[49m\u001b[43msubsector_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 14\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtime\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m12\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlatitude\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m180\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlongitude\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m360\u001b[39;49m\u001b[43m}\u001b[49m\n\u001b[1;32m 15\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 16\u001b[0m \u001b[38;5;66;03m# Check and align the time dimension\u001b[39;00m\n\u001b[1;32m 17\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtime\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01min\u001b[39;00m subsector_ds\u001b[38;5;241m.\u001b[39mdims:\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/api.py:741\u001b[0m, in \u001b[0;36mopen_dataset\u001b[0;34m(filename_or_obj, engine, chunks, cache, decode_cf, mask_and_scale, decode_times, decode_timedelta, use_cftime, concat_characters, decode_coords, drop_variables, create_default_indexes, inline_array, chunked_array_type, from_array_kwargs, backend_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 738\u001b[0m kwargs\u001b[38;5;241m.\u001b[39mupdate(backend_kwargs)\n\u001b[1;32m 740\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m engine \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 741\u001b[0m engine \u001b[38;5;241m=\u001b[39m \u001b[43mplugins\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mguess_engine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 743\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m from_array_kwargs \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 744\u001b[0m from_array_kwargs \u001b[38;5;241m=\u001b[39m {}\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/plugins.py:199\u001b[0m, in \u001b[0;36mguess_engine\u001b[0;34m(store_spec)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 192\u001b[0m error_msg \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 193\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfound the following matches with the input file in xarray\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124ms IO \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 194\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbackends: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcompatible_engines\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. But their dependencies may not be installed, see:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps://docs.xarray.dev/en/stable/user-guide/io.html \u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps://docs.xarray.dev/en/stable/getting-started-guide/installing.html\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 197\u001b[0m )\n\u001b[0;32m--> 199\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(error_msg)\n", + "\u001b[0;31mValueError\u001b[0m: did not find a match in any of xarray's currently installed IO backends ['netcdf4', 'h5netcdf', 'scipy', 'argo', 'cfgrib', 'gini', 'kerchunk', 'pydap', 'rasterio', 'stac', 'zarr']. Consider explicitly selecting one of the installed engines via the ``engine`` parameter, or installing additional IO dependencies, see:\nhttps://docs.xarray.dev/en/stable/getting-started-guide/installing.html\nhttps://docs.xarray.dev/en/stable/user-guide/io.html" + ] + } + ], + "source": [ + "### Process subsectors\n", + "\n", + "# Load and process all subsector datasets\n", + "subsector_datasets = []\n", + "\n", + "for subsector_file in subsector_files:\n", + " # Extract filename and subsector name\n", + " filename = os.path.basename(subsector_file)\n", + " subsector_name = filename.split('.')[1]\n", + " print(f\"Processing subsector: {subsector_name}\")\n", + "\n", + " subsector_ds = xr.open_dataset(\n", + " subsector_file,\n", + " chunks={\"time\": 12, \"latitude\": 180, \"longitude\": 360}\n", + " )\n", + " # Check and align the time dimension\n", + " if 'time' in subsector_ds.dims:\n", + " if len(subsector_ds.time) == 24: # for annual data\n", + " subsector_ds = subsector_ds.reindex(\n", + " time=ds.time, method=None, fill_value=np.nan\n", + " )\n", + " subsector_ds = subsector_ds.ffill(dim='time')\n", + "\n", + " else: \n", + " subsector_ds = subsector_ds.interp(time=ds.time, method='linear')\n", + " else:\n", + " # Replicate the data along the main dataset time dimension\n", + " subsector_ds_list = [subsector_ds for _ in range(len(ds.time))]\n", + " subsector_ds = xr.concat(subsector_ds_list, dim='time')\n", + " subsector_ds = subsector_ds.assign_coords(time=ds.time)\n", + "\n", + " # Reorder dimensions to match (time, latitude, longitude)\n", + " subsector_ds = subsector_ds.transpose(\"time\", \"latitude\", \"longitude\")\n", + "\n", + " # Define standardized variable name\n", + " var_name = f'sign_d13c_sub_sector_{subsector_name}'\n", + " subsector_ds = subsector_ds.rename({'sign_d13c': var_name})\n", + "\n", + " # Harmonize variable attributes\n", + " subsector_ds[var_name].attrs['long_name'] = f\"Monthly δ13C(CH4) isotopic signature for {subsector_name.replace('_', ' ')}\"\n", + " subsector_ds[var_name].attrs.update({k:v for k,v in subsector_ds.attrs.items() if k.startswith('std_')})\n", + " subsector_datasets.append(subsector_ds)\n", + "\n", + "# Clean and consistent merge with main dataset\n", + "print(\"\\nMerging subsector data with main dataset...\")\n", + "for subsector_ds in subsector_datasets:\n", + " ds = xr.merge([ds, subsector_ds], compat='override', join='exact')\n", + " \n", + "# Rechunk all variables to the same chunk size\n", + "ds = ds.chunk({\"time\": 12, \"latitude\": 90, \"longitude\": 180})\n", + "\n", + "# Final verification\n", + "print(f\"\\n Final dataset now contains {len(ds.data_vars)} variables:\")\n", + "for var in ds.data_vars:\n", + " v = ds[var]\n", + " print(f\" - {var}: {v.dims}, dtype={v.dtype}, chunks={getattr(v.data, 'chunks', None)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "ed3e5d5c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-subsectors/d13c.agricultural_waste.menoud2022.1x1.nc'" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subsector_file" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "f2ce0757", + "metadata": {}, + "outputs": [ + { + "ename": "OSError", + "evalue": "[Errno -51] NetCDF: Unknown file format: '/'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/file_manager.py:211\u001b[0m, in \u001b[0;36mCachingFileManager._acquire_with_cache_info\u001b[0;34m(self, needs_lock)\u001b[0m\n\u001b[1;32m 210\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 211\u001b[0m file \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_cache\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_key\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 212\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/lru_cache.py:56\u001b[0m, in \u001b[0;36mLRUCache.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock:\n\u001b[0;32m---> 56\u001b[0m value \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_cache\u001b[49m\u001b[43m[\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cache\u001b[38;5;241m.\u001b[39mmove_to_end(key)\n", + "\u001b[0;31mKeyError\u001b[0m: [, ('/',), 'r', (('clobber', True), ('diskless', False), ('format', 'NETCDF4'), ('persist', False)), '0414c2dc-6b91-4b3b-bb28-2742564dfc84']", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[27], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mxr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\u001b[43msubsector_file\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43mengine\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mnetcdf4\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdecode_cf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(ds)\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28mprint\u001b[39m(ds\u001b[38;5;241m.\u001b[39mattrs)\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/api.py:760\u001b[0m, in \u001b[0;36mopen_dataset\u001b[0;34m(filename_or_obj, engine, chunks, cache, decode_cf, mask_and_scale, decode_times, decode_timedelta, use_cftime, concat_characters, decode_coords, drop_variables, create_default_indexes, inline_array, chunked_array_type, from_array_kwargs, backend_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 748\u001b[0m decoders \u001b[38;5;241m=\u001b[39m _resolve_decoders_kwargs(\n\u001b[1;32m 749\u001b[0m decode_cf,\n\u001b[1;32m 750\u001b[0m open_backend_dataset_parameters\u001b[38;5;241m=\u001b[39mbackend\u001b[38;5;241m.\u001b[39mopen_dataset_parameters,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 756\u001b[0m decode_coords\u001b[38;5;241m=\u001b[39mdecode_coords,\n\u001b[1;32m 757\u001b[0m )\n\u001b[1;32m 759\u001b[0m overwrite_encoded_chunks \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124moverwrite_encoded_chunks\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[0;32m--> 760\u001b[0m backend_ds \u001b[38;5;241m=\u001b[39m \u001b[43mbackend\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 761\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 762\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 763\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdecoders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 764\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 765\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 766\u001b[0m ds \u001b[38;5;241m=\u001b[39m _dataset_from_backend_dataset(\n\u001b[1;32m 767\u001b[0m backend_ds,\n\u001b[1;32m 768\u001b[0m filename_or_obj,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 779\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[1;32m 780\u001b[0m )\n\u001b[1;32m 781\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/netCDF4_.py:682\u001b[0m, in \u001b[0;36mNetCDF4BackendEntrypoint.open_dataset\u001b[0;34m(self, filename_or_obj, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, use_cftime, decode_timedelta, group, mode, format, clobber, diskless, persist, auto_complex, lock, autoclose)\u001b[0m\n\u001b[1;32m 660\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mopen_dataset\u001b[39m(\n\u001b[1;32m 661\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 662\u001b[0m filename_or_obj: T_PathFileOrDataStore,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 679\u001b[0m autoclose\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 680\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Dataset:\n\u001b[1;32m 681\u001b[0m filename_or_obj \u001b[38;5;241m=\u001b[39m _normalize_path(filename_or_obj)\n\u001b[0;32m--> 682\u001b[0m store \u001b[38;5;241m=\u001b[39m \u001b[43mNetCDF4DataStore\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 683\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 684\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 685\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mformat\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mformat\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 686\u001b[0m \u001b[43m \u001b[49m\u001b[43mgroup\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 687\u001b[0m \u001b[43m \u001b[49m\u001b[43mclobber\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mclobber\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 688\u001b[0m \u001b[43m \u001b[49m\u001b[43mdiskless\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdiskless\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 689\u001b[0m \u001b[43m \u001b[49m\u001b[43mpersist\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpersist\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 690\u001b[0m \u001b[43m \u001b[49m\u001b[43mauto_complex\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mauto_complex\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 691\u001b[0m \u001b[43m \u001b[49m\u001b[43mlock\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlock\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 692\u001b[0m \u001b[43m \u001b[49m\u001b[43mautoclose\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mautoclose\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 693\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 695\u001b[0m store_entrypoint \u001b[38;5;241m=\u001b[39m StoreBackendEntrypoint()\n\u001b[1;32m 696\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m close_on_error(store):\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/netCDF4_.py:468\u001b[0m, in \u001b[0;36mNetCDF4DataStore.open\u001b[0;34m(cls, filename, mode, format, group, clobber, diskless, persist, auto_complex, lock, lock_maker, autoclose)\u001b[0m\n\u001b[1;32m 464\u001b[0m kwargs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mauto_complex\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m auto_complex\n\u001b[1;32m 465\u001b[0m manager \u001b[38;5;241m=\u001b[39m CachingFileManager(\n\u001b[1;32m 466\u001b[0m netCDF4\u001b[38;5;241m.\u001b[39mDataset, filename, mode\u001b[38;5;241m=\u001b[39mmode, kwargs\u001b[38;5;241m=\u001b[39mkwargs\n\u001b[1;32m 467\u001b[0m )\n\u001b[0;32m--> 468\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mcls\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mmanager\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgroup\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlock\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlock\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mautoclose\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mautoclose\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/netCDF4_.py:398\u001b[0m, in \u001b[0;36mNetCDF4DataStore.__init__\u001b[0;34m(self, manager, group, mode, lock, autoclose)\u001b[0m\n\u001b[1;32m 396\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_group \u001b[38;5;241m=\u001b[39m group\n\u001b[1;32m 397\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_mode \u001b[38;5;241m=\u001b[39m mode\n\u001b[0;32m--> 398\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mformat \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mds\u001b[49m\u001b[38;5;241m.\u001b[39mdata_model\n\u001b[1;32m 399\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_filename \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mds\u001b[38;5;241m.\u001b[39mfilepath()\n\u001b[1;32m 400\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mis_remote \u001b[38;5;241m=\u001b[39m is_remote_uri(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_filename)\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/netCDF4_.py:477\u001b[0m, in \u001b[0;36mNetCDF4DataStore.ds\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 475\u001b[0m \u001b[38;5;129m@property\u001b[39m\n\u001b[1;32m 476\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mds\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m--> 477\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_acquire\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/netCDF4_.py:471\u001b[0m, in \u001b[0;36mNetCDF4DataStore._acquire\u001b[0;34m(self, needs_lock)\u001b[0m\n\u001b[1;32m 470\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_acquire\u001b[39m(\u001b[38;5;28mself\u001b[39m, needs_lock\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[0;32m--> 471\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mwith\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_manager\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43macquire_context\u001b[49m\u001b[43m(\u001b[49m\u001b[43mneeds_lock\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mas\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mroot\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 472\u001b[0m \u001b[43m \u001b[49m\u001b[43mds\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m_nc4_require_group\u001b[49m\u001b[43m(\u001b[49m\u001b[43mroot\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_group\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_mode\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 473\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/contextlib.py:141\u001b[0m, in \u001b[0;36m_GeneratorContextManager.__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39margs, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkwds, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfunc\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgen\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m:\n\u001b[1;32m 143\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mgenerator didn\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt yield\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/file_manager.py:199\u001b[0m, in \u001b[0;36mCachingFileManager.acquire_context\u001b[0;34m(self, needs_lock)\u001b[0m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;129m@contextlib\u001b[39m\u001b[38;5;241m.\u001b[39mcontextmanager\n\u001b[1;32m 197\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21macquire_context\u001b[39m(\u001b[38;5;28mself\u001b[39m, needs_lock\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[1;32m 198\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Context manager for acquiring a file.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 199\u001b[0m file, cached \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_acquire_with_cache_info\u001b[49m\u001b[43m(\u001b[49m\u001b[43mneeds_lock\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 200\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 201\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m file\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/xarray/backends/file_manager.py:217\u001b[0m, in \u001b[0;36mCachingFileManager._acquire_with_cache_info\u001b[0;34m(self, needs_lock)\u001b[0m\n\u001b[1;32m 215\u001b[0m kwargs \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[1;32m 216\u001b[0m kwargs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmode\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_mode\n\u001b[0;32m--> 217\u001b[0m file \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_opener\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 218\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_mode \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 219\u001b[0m \u001b[38;5;66;03m# ensure file doesn't get overridden when opened again\u001b[39;00m\n\u001b[1;32m 220\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_mode \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ma\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", + "File \u001b[0;32msrc/netCDF4/_netCDF4.pyx:2521\u001b[0m, in \u001b[0;36mnetCDF4._netCDF4.Dataset.__init__\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32msrc/netCDF4/_netCDF4.pyx:2158\u001b[0m, in \u001b[0;36mnetCDF4._netCDF4._ensure_nc_success\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mOSError\u001b[0m: [Errno -51] NetCDF: Unknown file format: '/'" + ] + } + ], + "source": [ + "ds = xr.open_dataset(subsector_file[0],\n", + " engine=\"netcdf4\", decode_cf=False, mask_and_scale=False)\n", + "print(ds)\n", + "print(ds.attrs)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "a3386686", + "metadata": {}, + "outputs": [ + { + "ename": "OSError", + "evalue": "Unable to synchronously open file (file signature not found)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[31], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mh5py\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[43mh5py\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mFile\u001b[49m\u001b[43m(\u001b[49m\u001b[43msubsector_file\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mr\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m f:\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mwalk\u001b[39m(name, obj):\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, h5py\u001b[38;5;241m.\u001b[39mDataset):\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/h5py/_hl/files.py:564\u001b[0m, in \u001b[0;36mFile.__init__\u001b[0;34m(self, name, mode, driver, libver, userblock_size, swmr, rdcc_nslots, rdcc_nbytes, rdcc_w0, track_order, fs_strategy, fs_persist, fs_threshold, fs_page_size, page_buf_size, min_meta_keep, min_raw_keep, locking, alignment_threshold, alignment_interval, meta_block_size, **kwds)\u001b[0m\n\u001b[1;32m 555\u001b[0m fapl \u001b[38;5;241m=\u001b[39m make_fapl(driver, libver, rdcc_nslots, rdcc_nbytes, rdcc_w0,\n\u001b[1;32m 556\u001b[0m locking, page_buf_size, min_meta_keep, min_raw_keep,\n\u001b[1;32m 557\u001b[0m alignment_threshold\u001b[38;5;241m=\u001b[39malignment_threshold,\n\u001b[1;32m 558\u001b[0m alignment_interval\u001b[38;5;241m=\u001b[39malignment_interval,\n\u001b[1;32m 559\u001b[0m meta_block_size\u001b[38;5;241m=\u001b[39mmeta_block_size,\n\u001b[1;32m 560\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds)\n\u001b[1;32m 561\u001b[0m fcpl \u001b[38;5;241m=\u001b[39m make_fcpl(track_order\u001b[38;5;241m=\u001b[39mtrack_order, fs_strategy\u001b[38;5;241m=\u001b[39mfs_strategy,\n\u001b[1;32m 562\u001b[0m fs_persist\u001b[38;5;241m=\u001b[39mfs_persist, fs_threshold\u001b[38;5;241m=\u001b[39mfs_threshold,\n\u001b[1;32m 563\u001b[0m fs_page_size\u001b[38;5;241m=\u001b[39mfs_page_size)\n\u001b[0;32m--> 564\u001b[0m fid \u001b[38;5;241m=\u001b[39m \u001b[43mmake_fid\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muserblock_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfapl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfcpl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mswmr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mswmr\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 566\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(libver, \u001b[38;5;28mtuple\u001b[39m):\n\u001b[1;32m 567\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_libver \u001b[38;5;241m=\u001b[39m libver\n", + "File \u001b[0;32m~/micromamba/envs/pangeo/lib/python3.13/site-packages/h5py/_hl/files.py:238\u001b[0m, in \u001b[0;36mmake_fid\u001b[0;34m(name, mode, userblock_size, fapl, fcpl, swmr)\u001b[0m\n\u001b[1;32m 236\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m swmr \u001b[38;5;129;01mand\u001b[39;00m swmr_support:\n\u001b[1;32m 237\u001b[0m flags \u001b[38;5;241m|\u001b[39m\u001b[38;5;241m=\u001b[39m h5f\u001b[38;5;241m.\u001b[39mACC_SWMR_READ\n\u001b[0;32m--> 238\u001b[0m fid \u001b[38;5;241m=\u001b[39m \u001b[43mh5f\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mflags\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfapl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfapl\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 239\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m mode \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mr+\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[1;32m 240\u001b[0m fid \u001b[38;5;241m=\u001b[39m h5f\u001b[38;5;241m.\u001b[39mopen(name, h5f\u001b[38;5;241m.\u001b[39mACC_RDWR, fapl\u001b[38;5;241m=\u001b[39mfapl)\n", + "File \u001b[0;32mh5py/_objects.pyx:54\u001b[0m, in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mh5py/_objects.pyx:55\u001b[0m, in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mh5py/h5f.pyx:102\u001b[0m, in \u001b[0;36mh5py.h5f.open\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mOSError\u001b[0m: Unable to synchronously open file (file signature not found)" + ] + } + ], + "source": [ + "import h5py\n", + "\n", + "with h5py.File(subsector_file, \"r\") as f:\n", + " def walk(name, obj):\n", + " if isinstance(obj, h5py.Dataset):\n", + " print(\"DATASET\", name, obj.shape, obj.dtype, obj.compression)\n", + " elif isinstance(obj, h5py.Group):\n", + " print(\"GROUP\", name)\n", + " f.visititems(walk)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "34b52b0d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c7261add", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "6161e2c3", + "metadata": {}, + "source": [ + "## 2. Generate metadata\n", + "\n", + "The root STAC Collection provides a general description of all project outputs which will be stored on the PRR.\n", + "The PRR STAC Collection template enforces some required fields that you need to provide in order to build its valid description. Most of these metadata fields should already be available and can be extracted from your data.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 237, + "id": "4029fcb4-4298-4236-8413-923d6bf64c11", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Collection id=d13c-ch4-signatures-smart-ch4>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 237, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# create the parent collection\n", + "collectionid = \"d13c-ch4-signatures-smart-ch4\"\n", + "\n", + "\n", + "collection = Collection.from_dict(\n", + " \n", + "{\n", + " \"type\": \"Collection\",\n", + " \"id\": collectionid,\n", + " \"stac_version\": \"1.1.0\",\n", + " \"title\": \"Global delta-13C(CH4) Source Signatures\",\n", + " \"description\": \"This dataset provides monthly gridded δ13C(CH₄) isotopic signatures (‰ vs V-PDB) for five methane emission sectors: Agricultural & Waste (AGW), Fossil Fuel & Geological (FFG), Biomass Burning (BB), Natural non-wetland (NAT), and Wetlands (WET), and their subsequent sub-sectors, at 1°×1° spatial resolution for the period 1998–2022. Each sector file contains monthly flux-weighted δ13C(CH₄) signatures computed from prior CH₄ emissions used in the Global Methane Budget inversion protocol (Martinez et al., 2024), EDGARv8 (Crippa et al., 2023), and GFED4s (van Wees et al., 2022). Sub-sector δ13C-CH₄ source values are derived from recent literature (Lan et al., 2021; Menoud et al., 2022; Oh et al., 2022; Thompson et al., 2018; Etiope et al., 2019; Sansone et al., 2001). The dataset also includes uncertainty components: propagated (σprop), aggregation (σagg), and total (σtotal), expressed in ‰ vs V-PDB. Data are suitable for use in atmospheric inversion and isotope modeling frameworks.\",\n", + " \"extent\": {\n", + " \"spatial\": {\n", + " \"bbox\": [\n", + " [-180, -90, 180, 90]\n", + " ]\n", + " },\n", + " \"temporal\": {\n", + " \"interval\": [\n", + " [\n", + " \"1998-01-01T00:00:00Z\",\n", + " \"2022-12-31T23:59:59Z\"\n", + " ]\n", + " ]\n", + " }\n", + " },\n", + " \"license\": \"CC-BY-4.0\",\n", + " \"links\": []\n", + "\n", + "}\n", + "\n", + ")\n", + "\n", + "collection # visualise the metadata of your collection " + ] + }, + { + "cell_type": "markdown", + "id": "2ab07efc", + "metadata": {}, + "source": [ + "## Create STAC Items and STAC Assets from original dataset \n", + "\n", + "The second step is to describe the different files as STAC Items and Assets. Take your time to decide how your data should be categorised to improve usability of the data, and ensure intuitive navigation through different items in the collections. There are multiple strategies for doing this and this tutorial demonstrate one of the possible ways of doing that. Examples of how other ESA projects are doing this are available in the [EarthCODE documentation](https://esa-earthcode.github.io/tutorials/prr-stac-introduction) ." + ] + }, + { + "cell_type": "code", + "execution_count": 238, + "id": "f3030914-50f9-493e-abfd-4f7cca4fb1ab", + "metadata": {}, + "outputs": [], + "source": [ + "bbox = [-180, -90, 180, 90]\n", + "geometry = json.loads(json.dumps(shapely.box(*bbox).__geo_interface__))" + ] + }, + { + "cell_type": "code", + "execution_count": 239, + "id": "ee61a0f7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Link rel=item target=<Item id=d13c-ch4-signatures-smart-ch4-zarr>>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + ">" + ] + }, + "execution_count": 239, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "template = {\n", + "\n", + " \"id\": f\"{collectionid}-zarr\",\n", + " \"type\": \"Feature\",\n", + " \"stac_version\": \"1.0.0\",\n", + " \"properties\": {\n", + " \"title\": 'd13C(CH4) isotopic signatures',\n", + " \"history\":ds.attrs['history'],\n", + " 'time_period': \"Monthly data from 1998 to 2022\",\n", + " \"fluxes_source_for_flux_weighted\": ds.attrs['fluxes_source_for_flux_weighted'],\n", + " \"signature_source\": ds.attrs['signature_source'],\n", + " \"start_datetime\": \"1998-01-01T00:00:00Z\",\n", + " \"end_datetime\": \"2022-12-31T23:59:59Z\",\n", + " \"license\": \"CC-BY-4.0\",\n", + " 'Conventions': 'CF-1.9',\n", + " \"references\": [\n", + " \"Lan et al. (2021)\",\n", + " \"Menoud et al. (2022)\",\n", + " \"Oh et al. (2022)\",\n", + " \"Thompson et al. (2018)\",\n", + " \"Etiope et al. (2019)\",\n", + " \"Sansone et al. (2001)\",\n", + " \"Crippa et al. (2023)\",\n", + " \"Martinez et al. (2024)\"\n", + " ],\n", + " },\n", + " \"geometry\": geometry,\n", + " \"bbox\": bbox,\n", + " \"assets\": {\n", + " \"data\": {\n", + " \"href\": f\"./{collectionid}/ds.zarr\", # or local path\n", + " \"type\": \"application/vnd+zarr\",\n", + " \"roles\": [\"data\"],\n", + " \"title\": \"Zarr Store of d13C(CH4) signatures\"\n", + " }\n", + " }\n", + "}\n", + "# 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", + ")\n", + "\n", + "# validate and add the STAC Item to the collection\n", + "item.validate()\n", + "collection.add_item(item)" + ] + }, + { + "cell_type": "code", + "execution_count": 240, + "id": "2c2ee4de-afd1-41fb-9afd-73ccbfe8ef98", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Collection id=d13c-ch4-signatures-smart-ch4>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 240, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "collection" + ] + }, + { + "cell_type": "code", + "execution_count": 241, + "id": "3c358a3e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Item id=d13c-ch4-signatures-smart-ch4-zarr>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 241, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item" + ] + }, + { + "cell_type": "code", + "execution_count": 242, + "id": "66fe3b40", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 3GB\n",
+       "Dimensions:                                  (latitude: 180, longitude: 360,\n",
+       "                                              time: 300)\n",
+       "Coordinates:\n",
+       "  * latitude                                 (latitude) float64 1kB -89.5 ......\n",
+       "  * longitude                                (longitude) float64 3kB -179.5 ....\n",
+       "  * time                                     (time) datetime64[ns] 2kB 1998-0...\n",
+       "Data variables: (12/17)\n",
+       "    sign_d13c_agw                            (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_bb                             (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_ffg                            (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_nat                            (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_wet                            (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_sub_sector_geological          (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    ...                                       ...\n",
+       "    sign_d13c_sub_sector_agricultural_waste  (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_sub_sector_livestock           (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_sub_sector_wetlands            (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_sub_sector_biomassbiofuels     (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_sub_sector_waste_water         (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "    sign_d13c_sub_sector_oilandgas           (time, latitude, longitude) float64 156MB dask.array<chunksize=(12, 90, 180), meta=np.ndarray>\n",
+       "Attributes:\n",
+       "    title:                            d13C(CH4) isotopic signature\n",
+       "    history:                          Sub-sectors aggregated into sectors (fl...\n",
+       "    time_period:                      Monthly data for 1998-2022\n",
+       "    fluxes_source_for_flux_weighted:  AGRICULTURAL_WASTE, BIOFUELS, BIOMASS, ...\n",
+       "    signature_source:                 LIVESTOCK, BIOFUELS, BIOMASS: LAN ET. A...\n",
+       "    created_by:                       Emeline Tapin on 29 September 2025\n",
+       "    creator_email:                    emeline.tapin@lsce.ipsl.fr\n",
+       "    institution:                      LSCE (Laboratoire des Sciences du Clima...\n",
+       "    conventions:                      CF-1.9
" + ], + "text/plain": [ + " Size: 3GB\n", + "Dimensions: (latitude: 180, longitude: 360,\n", + " time: 300)\n", + "Coordinates:\n", + " * latitude (latitude) float64 1kB -89.5 ......\n", + " * longitude (longitude) float64 3kB -179.5 ....\n", + " * time (time) datetime64[ns] 2kB 1998-0...\n", + "Data variables: (12/17)\n", + " sign_d13c_agw (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_bb (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_ffg (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_nat (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_wet (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_sub_sector_geological (time, latitude, longitude) float64 156MB dask.array\n", + " ... ...\n", + " sign_d13c_sub_sector_agricultural_waste (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_sub_sector_livestock (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_sub_sector_wetlands (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_sub_sector_biomassbiofuels (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_sub_sector_waste_water (time, latitude, longitude) float64 156MB dask.array\n", + " sign_d13c_sub_sector_oilandgas (time, latitude, longitude) float64 156MB dask.array\n", + "Attributes:\n", + " title: d13C(CH4) isotopic signature\n", + " history: Sub-sectors aggregated into sectors (fl...\n", + " time_period: Monthly data for 1998-2022\n", + " fluxes_source_for_flux_weighted: AGRICULTURAL_WASTE, BIOFUELS, BIOMASS, ...\n", + " signature_source: LIVESTOCK, BIOFUELS, BIOMASS: LAN ET. A...\n", + " created_by: Emeline Tapin on 29 September 2025\n", + " creator_email: emeline.tapin@lsce.ipsl.fr\n", + " institution: LSCE (Laboratoire des Sciences du Clima...\n", + " conventions: CF-1.9" + ] + }, + "execution_count": 242, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds" + ] + }, + { + "cell_type": "code", + "execution_count": 243, + "id": "0520979f", + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "Type is not JSON serializable: numpy.float64", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[243], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# save the full self-contained collection\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[43mcollection\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnormalize_and_save\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mroot_href\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43mf\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m../../prr_preview/\u001b[39;49m\u001b[38;5;132;43;01m{\u001b[39;49;00m\u001b[43mcollectionid\u001b[49m\u001b[38;5;132;43;01m}\u001b[39;49;00m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mcatalog_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpystac\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mCatalogType\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mSELF_CONTAINED\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pystac/catalog.py:742\u001b[0m, in \u001b[0;36mCatalog.normalize_and_save\u001b[0;34m(self, root_href, catalog_type, strategy, stac_io, skip_unresolved)\u001b[0m\n\u001b[1;32m 714\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Normalizes link HREFs to the given root_href, and saves the catalog.\u001b[39;00m\n\u001b[1;32m 715\u001b[0m \n\u001b[1;32m 716\u001b[0m \u001b[38;5;124;03mThis is a convenience method that simply calls :func:`Catalog.normalize_hrefs\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 737\u001b[0m \u001b[38;5;124;03m objects.\u001b[39;00m\n\u001b[1;32m 738\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 739\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnormalize_hrefs(\n\u001b[1;32m 740\u001b[0m root_href, strategy\u001b[38;5;241m=\u001b[39mstrategy, skip_unresolved\u001b[38;5;241m=\u001b[39mskip_unresolved\n\u001b[1;32m 741\u001b[0m )\n\u001b[0;32m--> 742\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msave\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcatalog_type\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstac_io\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstac_io\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pystac/catalog.py:1002\u001b[0m, in \u001b[0;36mCatalog.save\u001b[0;34m(self, catalog_type, dest_href, stac_io)\u001b[0m\n\u001b[1;32m 996\u001b[0m item\u001b[38;5;241m.\u001b[39msave_object(\n\u001b[1;32m 997\u001b[0m include_self_link\u001b[38;5;241m=\u001b[39mitems_include_self_link,\n\u001b[1;32m 998\u001b[0m dest_href\u001b[38;5;241m=\u001b[39mitem_dest_href,\n\u001b[1;32m 999\u001b[0m stac_io\u001b[38;5;241m=\u001b[39mstac_io,\n\u001b[1;32m 1000\u001b[0m )\n\u001b[1;32m 1001\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1002\u001b[0m \u001b[43mitem\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msave_object\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1003\u001b[0m \u001b[43m \u001b[49m\u001b[43minclude_self_link\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mitems_include_self_link\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstac_io\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstac_io\u001b[49m\n\u001b[1;32m 1004\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1006\u001b[0m include_self_link \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 1007\u001b[0m \u001b[38;5;66;03m# include a self link if this is the root catalog\u001b[39;00m\n\u001b[1;32m 1008\u001b[0m \u001b[38;5;66;03m# or if ABSOLUTE_PUBLISHED catalog\u001b[39;00m\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pystac/stac_object.py:480\u001b[0m, in \u001b[0;36mSTACObject.save_object\u001b[0;34m(self, include_self_link, dest_href, stac_io)\u001b[0m\n\u001b[1;32m 475\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m STACError(\n\u001b[1;32m 476\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSelf HREF must be set before saving without an explicit dest_href.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 477\u001b[0m )\n\u001b[1;32m 478\u001b[0m dest_href \u001b[38;5;241m=\u001b[39m self_href\n\u001b[0;32m--> 480\u001b[0m \u001b[43mstac_io\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msave_json\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdest_href\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_dict\u001b[49m\u001b[43m(\u001b[49m\u001b[43minclude_self_link\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minclude_self_link\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pystac/stac_io.py:260\u001b[0m, in \u001b[0;36mStacIO.save_json\u001b[0;34m(self, dest, json_dict, *args, **kwargs)\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21msave_json\u001b[39m(\n\u001b[1;32m 241\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 242\u001b[0m dest: HREF,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 245\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Any,\n\u001b[1;32m 246\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 247\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Write a dict to the given URI as JSON.\u001b[39;00m\n\u001b[1;32m 248\u001b[0m \n\u001b[1;32m 249\u001b[0m \u001b[38;5;124;03m See :func:`StacIO.write_text ` for usage of\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 258\u001b[0m \u001b[38;5;124;03m :meth:`StacIO.json_dumps`.\u001b[39;00m\n\u001b[1;32m 259\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 260\u001b[0m txt \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjson_dumps\u001b[49m\u001b[43m(\u001b[49m\u001b[43mjson_dict\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 261\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mwrite_text(dest, txt)\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pystac/stac_io.py:128\u001b[0m, in \u001b[0;36mStacIO.json_dumps\u001b[0;34m(self, json_dict, *args, **kwargs)\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Method used internally by :class:`StacIO` instances to serialize a dictionary\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03mto a JSON string.\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;124;03m json_dict : The dictionary to serialize\u001b[39;00m\n\u001b[1;32m 126\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 127\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m orjson \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 128\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43morjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdumps\u001b[49m\u001b[43m(\u001b[49m\u001b[43mjson_dict\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moption\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43morjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mOPT_INDENT_2\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mdecode(\n\u001b[1;32m 129\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf-8\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 130\u001b[0m )\n\u001b[1;32m 131\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m json\u001b[38;5;241m.\u001b[39mdumps(json_dict, \u001b[38;5;241m*\u001b[39margs, indent\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "\u001b[0;31mTypeError\u001b[0m: Type is not JSON serializable: numpy.float64" + ] + } + ], + "source": [ + "# save the full self-contained collection\n", + "collection.normalize_and_save(\n", + " root_href=f'../../prr_preview/{collectionid}',\n", + " catalog_type=pystac.CatalogType.SELF_CONTAINED\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6114f728-d75a-4447-87a9-673bf7b219ef", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Collection id=d13c-ch4-signatures-smart-ch4>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "collection" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e530c429", + "metadata": {}, + "outputs": [], + "source": [ + "# verify data is correctly aligned" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb635e98", + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "\"not all values found in index 'time'. Try setting the `method` keyword argument (example: method='nearest').\"", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32mpandas/_libs/index.pyx:627\u001b[0m, in \u001b[0;36mpandas._libs.index.DatetimeEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:2606\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.Int64HashTable.get_item\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:2630\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.Int64HashTable.get_item\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: 988675200000000000", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3812\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3811\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 3812\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3813\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n", + "File \u001b[0;32mpandas/_libs/index.pyx:595\u001b[0m, in \u001b[0;36mpandas._libs.index.DatetimeEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mpandas/_libs/index.pyx:629\u001b[0m, in \u001b[0;36mpandas._libs.index.DatetimeEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: Timestamp('2001-05-01 00:00:00')", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pandas/core/indexes/datetimes.py:630\u001b[0m, in \u001b[0;36mDatetimeIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 629\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 630\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mIndex\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 631\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3819\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3818\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[0;32m-> 3819\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m 3820\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[1;32m 3821\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[1;32m 3822\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[1;32m 3823\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n", + "\u001b[0;31mKeyError\u001b[0m: Timestamp('2001-05-01 00:00:00')", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/xarray/core/indexes.py:859\u001b[0m, in \u001b[0;36mPandasIndex.sel\u001b[0;34m(self, labels, method, tolerance)\u001b[0m\n\u001b[1;32m 858\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 859\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlabel_value\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 860\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/pandas/core/indexes/datetimes.py:632\u001b[0m, in \u001b[0;36mDatetimeIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 631\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m--> 632\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(orig_key) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01merr\u001b[39;00m\n", + "\u001b[0;31mKeyError\u001b[0m: '2001-05-01'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[173], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m np\u001b[38;5;241m.\u001b[39misclose(\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m#original data\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m \u001b[43mxr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\u001b[43mff_files\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msign_d13c\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m2001-05-01\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mvalues,\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# data from the zarr store\u001b[39;00m\n\u001b[1;32m 5\u001b[0m ds\u001b[38;5;241m.\u001b[39msign_d13c_ffg\u001b[38;5;241m.\u001b[39msel(time\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m2001-05-01\u001b[39m\u001b[38;5;124m'\u001b[39m)\u001b[38;5;241m.\u001b[39mvalues\n\u001b[1;32m 6\u001b[0m )\u001b[38;5;241m.\u001b[39mall()\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/xarray/core/dataarray.py:1664\u001b[0m, in \u001b[0;36mDataArray.sel\u001b[0;34m(self, indexers, method, tolerance, drop, **indexers_kwargs)\u001b[0m\n\u001b[1;32m 1548\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21msel\u001b[39m(\n\u001b[1;32m 1549\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 1550\u001b[0m indexers: Mapping[Any, Any] \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1554\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mindexers_kwargs: Any,\n\u001b[1;32m 1555\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Self:\n\u001b[1;32m 1556\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Return a new DataArray whose data is given by selecting index\u001b[39;00m\n\u001b[1;32m 1557\u001b[0m \u001b[38;5;124;03m labels along the specified dimension(s).\u001b[39;00m\n\u001b[1;32m 1558\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1662\u001b[0m \u001b[38;5;124;03m Dimensions without coordinates: points\u001b[39;00m\n\u001b[1;32m 1663\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 1664\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_to_temp_dataset\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msel\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1665\u001b[0m \u001b[43m \u001b[49m\u001b[43mindexers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindexers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1666\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1667\u001b[0m \u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1668\u001b[0m \u001b[43m \u001b[49m\u001b[43mtolerance\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtolerance\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1669\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mindexers_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1670\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1671\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_from_temp_dataset(ds)\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/xarray/core/dataset.py:2912\u001b[0m, in \u001b[0;36mDataset.sel\u001b[0;34m(self, indexers, method, tolerance, drop, **indexers_kwargs)\u001b[0m\n\u001b[1;32m 2844\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Returns a new dataset with each array indexed by tick labels\u001b[39;00m\n\u001b[1;32m 2845\u001b[0m \u001b[38;5;124;03malong the specified dimension(s).\u001b[39;00m\n\u001b[1;32m 2846\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2909\u001b[0m \n\u001b[1;32m 2910\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2911\u001b[0m indexers \u001b[38;5;241m=\u001b[39m either_dict_or_kwargs(indexers, indexers_kwargs, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msel\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 2912\u001b[0m query_results \u001b[38;5;241m=\u001b[39m \u001b[43mmap_index_queries\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2913\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindexers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindexers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtolerance\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtolerance\u001b[49m\n\u001b[1;32m 2914\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2916\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m drop:\n\u001b[1;32m 2917\u001b[0m no_scalar_variables \u001b[38;5;241m=\u001b[39m {}\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/xarray/core/indexing.py:197\u001b[0m, in \u001b[0;36mmap_index_queries\u001b[0;34m(obj, indexers, method, tolerance, **indexers_kwargs)\u001b[0m\n\u001b[1;32m 195\u001b[0m results\u001b[38;5;241m.\u001b[39mappend(IndexSelResult(labels))\n\u001b[1;32m 196\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 197\u001b[0m results\u001b[38;5;241m.\u001b[39mappend(\u001b[43mindex\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlabels\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 199\u001b[0m merged \u001b[38;5;241m=\u001b[39m merge_sel_results(results)\n\u001b[1;32m 201\u001b[0m \u001b[38;5;66;03m# drop dimension coordinates found in dimension indexers\u001b[39;00m\n\u001b[1;32m 202\u001b[0m \u001b[38;5;66;03m# (also drop multi-index if any)\u001b[39;00m\n\u001b[1;32m 203\u001b[0m \u001b[38;5;66;03m# (.sel() already ensures alignment)\u001b[39;00m\n", + "File \u001b[0;32m~/Téléchargements/.venv/lib/python3.10/site-packages/xarray/core/indexes.py:861\u001b[0m, in \u001b[0;36mPandasIndex.sel\u001b[0;34m(self, labels, method, tolerance)\u001b[0m\n\u001b[1;32m 859\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mindex\u001b[38;5;241m.\u001b[39mget_loc(label_value)\n\u001b[1;32m 860\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m--> 861\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(\n\u001b[1;32m 862\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnot all values found in index \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcoord_name\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 863\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTry setting the `method` keyword argument (example: method=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mnearest\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m).\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 864\u001b[0m ) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 866\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m label_array\u001b[38;5;241m.\u001b[39mdtype\u001b[38;5;241m.\u001b[39mkind \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 867\u001b[0m indexer \u001b[38;5;241m=\u001b[39m label_array\n", + "\u001b[0;31mKeyError\u001b[0m: \"not all values found in index 'time'. Try setting the `method` keyword argument (example: method='nearest').\"" + ] + } + ], + "source": [ + "assert np.isclose(\n", + " #original data\n", + " xr.open_dataset(ff_files[3]).sign_d13c.sel(time='2001-05-01').values,\n", + " # data from the zarr store\n", + " ds.sign_d13c_ffg.sel(time='2001-05-01').values\n", + ").all()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5b716252", + "metadata": {}, + "outputs": [], + "source": [ + "ds.to_zarr('../../data/d13c-ch4-signatures-smart-ch4.zarr', mode='w')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pangeo", + "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.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From a7c5ec3d4d5b612dbdfdceb50ab8ab7f267d140b Mon Sep 17 00:00:00 2001 From: Krasen Samardzhiev Date: Wed, 29 Oct 2025 17:12:09 +0000 Subject: [PATCH 2/2] smart-ch4 --- PRR/smartch4_signatures_modified.ipynb | 339 +++++-------------------- myst.yml | 1 + 2 files changed, 70 insertions(+), 270 deletions(-) mode change 100644 => 100755 PRR/smartch4_signatures_modified.ipynb diff --git a/PRR/smartch4_signatures_modified.ipynb b/PRR/smartch4_signatures_modified.ipynb old mode 100644 new mode 100755 index cddb1b9..c299541 --- a/PRR/smartch4_signatures_modified.ipynb +++ b/PRR/smartch4_signatures_modified.ipynb @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 244, "id": "3333ec9c", "metadata": {}, "outputs": [], @@ -68,29 +68,25 @@ { "data": { "text/plain": [ - "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-agw',\n", - " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-bb',\n", - " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-ff',\n", - " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-nat',\n", - " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-subsectors',\n", - " '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/smart_CH4_d13c_ch4-wet']" + "['/home/etapin/Téléchargements/5_zipped/data',\n", + " '/home/etapin/Téléchargements/5_zipped/metadata']" ] }, - "execution_count": 3, + "execution_count": 245, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import glob\n", - "datadir = '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4_v20251021/5_zipped/data/*'\n", + "datadir = '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/*'\n", "subdirectories = glob.glob(datadir)\n", "subdirectories" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "81575763", "metadata": {}, "outputs": [], @@ -115,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "6ac4b6ff", "metadata": {}, "outputs": [ @@ -123,11 +119,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2022.1x1.nc']\n", - "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2022.1x1.nc']\n", - "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2022.1x1.nc']\n", - "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2022.1x1.nc']\n", - "['/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.1998.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.1999.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2000.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2001.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2002.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2003.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2004.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2005.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2006.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2007.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2008.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2009.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2010.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2011.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2012.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2013.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2014.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2015.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2016.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2017.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2018.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2019.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2020.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2021.1x1.nc', '/mnt/c/Users/krase/Downloads/smart_CH4_d13c_ch4/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2022.1x1.nc']\n" + "['/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2022.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2021.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2020.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2002.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2016.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2011.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2017.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2013.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2001.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2008.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2009.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2012.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2000.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.1998.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2006.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2018.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2004.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2005.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2010.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2003.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2007.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2014.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2019.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.1999.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-agw/d13c.AGW.2015.1x1.nc']\n", + "['/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2020.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2016.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2010.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2003.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2019.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2014.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2007.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2021.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2005.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2002.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2000.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2017.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2009.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2008.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2011.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.1999.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2001.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2013.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2004.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2022.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.1998.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2015.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2012.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2006.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-bb/d13c.BB.2018.1x1.nc']\n", + "['/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2004.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2005.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2001.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2015.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2006.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2021.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2009.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2020.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2008.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2014.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2016.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2010.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2019.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.1999.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2017.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2022.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.1998.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2012.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2013.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2003.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2000.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2002.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2018.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2011.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-ff/d13c.FF.2007.1x1.nc']\n", + "['/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2012.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.1998.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2013.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2015.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2008.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2009.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2004.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2001.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2021.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2014.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2016.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2006.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2019.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2018.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2010.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2003.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2000.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2022.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2017.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2007.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.1999.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2011.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2020.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2002.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-nat/d13c.NAT.2005.1x1.nc']\n", + "['/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2015.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2003.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2018.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2000.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2008.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2006.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2010.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2002.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2014.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2022.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2020.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2004.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.1998.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2001.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2021.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2009.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2019.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2011.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.1999.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2007.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2013.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2016.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2005.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2012.1x1.nc', '/home/etapin/Téléchargements/5_zipped/data/smart_CH4_d13c_ch4-wet/d13c.WET.2017.1x1.nc']\n" ] } ], @@ -167,7 +163,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 248, "id": "9045a7da", "metadata": {}, "outputs": [ @@ -618,7 +614,7 @@ " stroke-width: 0.8px;\n", "}\n", "
<xarray.Dataset> Size: 778MB\n",
-       "Dimensions:        (time: 300, latitude: 180, longitude: 360)\n",
+       "Dimensions:        (latitude: 180, longitude: 360, time: 300)\n",
        "Coordinates:\n",
        "  * latitude       (latitude) float64 1kB -89.5 -88.5 -87.5 ... 87.5 88.5 89.5\n",
        "  * longitude      (longitude) float64 3kB -179.5 -178.5 -177.5 ... 178.5 179.5\n",
@@ -638,7 +634,7 @@
        "    created_by:                       Emeline Tapin on 29 September 2025\n",
        "    creator_email:                    emeline.tapin@lsce.ipsl.fr\n",
        "    institution:                      LSCE (Laboratoire des Sciences du Clima...\n",
-       "    conventions:                      CF-1.9