diff --git a/docs/source/science/ESA_CCI/ESA_CCI_V4.ipynb b/docs/source/science/ESA_CCI/ESA_CCI_V4.ipynb
new file mode 100644
index 00000000..27727306
--- /dev/null
+++ b/docs/source/science/ESA_CCI/ESA_CCI_V4.ipynb
@@ -0,0 +1,1590 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "657e3281",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "## ESA CCI v4 Access and Visualize"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "eac6b82d",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "Authors: Emile Tenezakis (DevSeed), Rajat Shinde (UAH)\n",
+ "\n",
+ "Date: October 2, 2023\n",
+ "\n",
+ "Description: In this tutorial, we explore accessing and visualizing ESA CCI Version 4 data from the MAAP STAC catalog. We make use of the [stackstac package](https://github.com/gjoseph92/stackstac) that allows us to turn a stack collection imported from the catalog with the [`pystac_client`](https://pystac-client.readthedocs.io/en/stable/) to an xarray dataset, and we plot the time series of the mean aboveground biomass for a selected tile of the dataset across the available temporal range.\n",
+ "\n",
+ "### Run This Notebook\n",
+ "To access and run this tutorial within MAAP's Algorithm Development Environment (ADE), please refer to the [\"Getting started with the MAAP\"](https://docs.maap-project.org/en/latest/getting_started/getting_started.html) section of our documentation.\n",
+ "\n",
+ "Disclaimer: it is highly recommended to run a tutorial within MAAP's ADE, which already includes packages specific to MAAP, such as maap-py. Running the tutorial outside of the MAAP ADE may lead to errors. \n",
+ "\n",
+ "### About The Dataset\n",
+ "This dataset comprises estimates of forest Above-Ground Biomass (AGB) for the years 2017, 2018, 2019 and 2020, version 4. They are derived from a combination of Earth Observation (EO) data, depending on the year, from the Copernicus Sentinel-1 mission, Envisat’s ASAR instrument and JAXA’s Advanced Land Observing Satellite (ALOS-1 and ALOS-2), along with additional information from Earth observation sources. The data has been produced as part of the European Space Agency's (ESA's) Climate Change Initiative (CCI) programme by the Biomass CCI team.\n",
+ "\n",
+ "### Additional Resources\n",
+ "* [ESA’s Climate Change Initiative Biomass project](https://climate.esa.int/en/odp/#/project/biomass)\n",
+ "* [xarray Documentation](https://docs.xarray.dev/en/stable/index.html)\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "445b69f2-13ab-4a03-aa41-4fde92c270fa",
+ "metadata": {},
+ "source": [
+ "### Importing and Installing Packages\n",
+ "First off, we will install and import the required Python packages if they are not already installed in the workspace."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "aea4eb22-0867-4876-bd2b-fe74f5dd7bab",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# !mamba install -y -c conda-forge stackstac\n",
+ "# !pip install pystac_client"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "bcc3b0ba",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from stackstac import stack, mosaic\n",
+ "import pystac_client"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e96d41e2-919c-4fc2-9e3e-0fa0f8d692dc",
+ "metadata": {},
+ "source": [
+ "### Accessing and Filtering the Items"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "26a45833",
+ "metadata": {},
+ "source": [
+ "After installing the require packages, we create a client to access the STAC test catalog."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "e6917d57",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "URL = \"https://stac.maap-project.org\"\n",
+ "catalog = pystac_client.Client.open(URL)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "69ac94df-819e-4be5-9893-3f3d3c519c37",
+ "metadata": {},
+ "source": [
+ "### Creating an AOI"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "df045dc1",
+ "metadata": {},
+ "source": [
+ "Now, we define a bounding box of interest to find the tile that covers a small region around Manaus, Brazil (Amazon rainforest)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "73868a97",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# BBox for filtering the items in the collection\n",
+ "bbox = [-55,-6,-54.8,-5.8]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6b7e1326-debd-4bb5-8068-c6ba89c8e140",
+ "metadata": {},
+ "source": [
+ "We proceed to an item search in the catalog using the `pystac-client`, filtering items covering our area of interest."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "7bb997f0",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "stac_collection = catalog.search(\n",
+ " collections=[\"ESACCI_Biomass_L4_AGB_V4_100m\"],\n",
+ " bbox=bbox\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "3281f4e8-da53-4fcc-bb3f-bebb43e5143d",
+ "metadata": {},
+ "source": [
+ "Let's take a quick look at the results of the search. We can access the link of the location where the data is stored using `href` attribute as shown below."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "c73362b3-cfb5-48cd-a018-58ca5feb6ef4",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/opt/conda/lib/python3.10/site-packages/pystac_client/item_search.py:850: FutureWarning: get_all_items() is deprecated, use item_collection() instead.\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "'s3://nasa-maap-data-store/file-staging/nasa-map/ESACCI_Biomass_L4_AGB_V4_100m_2020/N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2020-fv4.0.tif'"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "stac_collection.get_all_items()[0].assets['estimates'].href"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c26df930-3bd2-4bc1-9941-bc7215f3fa22",
+ "metadata": {},
+ "source": [
+ "We turn the resulting set of items (we expect one item here in the result, given the size of our bounding box) into an xarray DataArray using `stackstac`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "46bf720c-18d7-4d80-960b-998abd4a5255",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/opt/conda/lib/python3.10/site-packages/stackstac/prepare.py:408: UserWarning: The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
+ " times = pd.to_datetime(\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Creating a stack of the filtered items\n",
+ "arr = stack(stac_collection.get_all_items())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "86a57e55-3d3a-473f-85e5-cbf6b17d198a",
+ "metadata": {},
+ "source": [
+ "We can see that our array has the following dimensions : `time` (we have four data points, one for each year - 2017, 2018, 2019 and 2020), `latitude`, `longitude` and `band` (we have two bands : `estimates` with the AGB estimate values, and `std_dev` storing the AGB standard deviation values)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "ed6f411a-4643-40a6-b263-f2169845af6a",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
<xarray.DataArray 'stackstac-5517ee4c53a7b2c13f76bf727c00d1fc' (time: 4,\n",
+ " band: 2,\n",
+ " y: 11250,\n",
+ " x: 11251)>\n",
+ "dask.array<fetch_raster_window, shape=(4, 2, 11250, 11251), dtype=float64, chunksize=(1, 1, 1024, 1024), chunktype=numpy.ndarray>\n",
+ "Coordinates: (12/13)\n",
+ " * time (time) datetime64[ns] 2017-01-01 2018-01-01 ... 2020-01-01\n",
+ " id (time) <U52 'N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-20...\n",
+ " * band (band) <U18 'estimates' 'standard_deviation'\n",
+ " * x (x) float64 -60.0 -60.0 -60.0 -60.0 ... -50.0 -50.0 -50.0\n",
+ " * y (y) float64 0.0 -0.0008889 -0.001778 ... -9.998 -9.999\n",
+ " proj:epsg int64 4326\n",
+ " ... ...\n",
+ " proj:transform object {0.0, 1.0, -60.0, -0.00088888888888, 0.00088888888...\n",
+ " proj:shape object {11250}\n",
+ " proj:geometry object {'type': 'Polygon', 'coordinates': [[[-60.0, -9.99...\n",
+ " title (band) <U49 'Cloud Optimized GeoTIFF of AGB estimates' 'C...\n",
+ " description (band) <U49 'Cloud Optimized GeoTIFF of AGB estimates' 'C...\n",
+ " epsg int64 4326\n",
+ "Attributes:\n",
+ " spec: RasterSpec(epsg=4326, bounds=(-60.00088888828888, -9.9999999...\n",
+ " crs: epsg:4326\n",
+ " transform: | 0.00, 0.00,-60.00|\\n| 0.00,-0.00, 0.00|\\n| 0.00, 0.00, 1.00|\n",
+ " resolution: 0.00088888888888 dask.array<chunksize=(1, 1, 1024, 1024), meta=np.ndarray>
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " Array \n",
+ " Chunk \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " Bytes \n",
+ " 7.54 GiB \n",
+ " 8.00 MiB \n",
+ " \n",
+ " \n",
+ " \n",
+ " Shape \n",
+ " (4, 2, 11250, 11251) \n",
+ " (1, 1, 1024, 1024) \n",
+ " \n",
+ " \n",
+ " Dask graph \n",
+ " 968 chunks in 3 graph layers \n",
+ " \n",
+ " \n",
+ " Data type \n",
+ " float64 numpy.ndarray \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " 4 \n",
+ " 1 \n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " 11251 \n",
+ " 11250 \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " \n",
+ "
Coordinates: (13)
time
(time)
datetime64[ns]
2017-01-01 ... 2020-01-01
array(['2017-01-01T00:00:00.000000000', '2018-01-01T00:00:00.000000000',\n",
+ " '2019-01-01T00:00:00.000000000', '2020-01-01T00:00:00.000000000'],\n",
+ " dtype='datetime64[ns]') id
(time)
<U52
'N00W060_ESACCI-BIOMASS-L4-AGB-M...
array(['N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2017-fv4.0',\n",
+ " 'N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2018-fv4.0',\n",
+ " 'N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2019-fv4.0',\n",
+ " 'N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2020-fv4.0'],\n",
+ " dtype='<U52') band
(band)
<U18
'estimates' 'standard_deviation'
array(['estimates', 'standard_deviation'], dtype='<U18') x
(x)
float64
-60.0 -60.0 -60.0 ... -50.0 -50.0
array([-60.000889, -60. , -59.999111, ..., -50.002667, -50.001778,\n",
+ " -50.000889]) y
(y)
float64
0.0 -0.0008889 ... -9.998 -9.999
array([ 0.000000e+00, -8.888889e-04, -1.777778e-03, ..., -9.997333e+00,\n",
+ " -9.998222e+00, -9.999111e+00]) proj:epsg
()
int64
4326
proj:bbox
()
object
{0.0, -60.0, -50.0000000001, -9....
array({0.0, -60.0, -50.0000000001, -9.9999999999}, dtype=object) proj:transform
()
object
{0.0, 1.0, -60.0, -0.00088888888...
array({0.0, 1.0, -60.0, -0.00088888888888, 0.00088888888888}, dtype=object) proj:shape
()
object
{11250}
array({11250}, dtype=object) proj:geometry
()
object
{'type': 'Polygon', 'coordinates...
array({'type': 'Polygon', 'coordinates': [[[-60.0, -9.9999999999], [-50.0000000001, -9.9999999999], [-50.0000000001, 0.0], [-60.0, 0.0], [-60.0, -9.9999999999]]]},\n",
+ " dtype=object) title
(band)
<U49
'Cloud Optimized GeoTIFF of AGB ...
array(['Cloud Optimized GeoTIFF of AGB estimates',\n",
+ " 'Cloud Optimized GeoTIFF of AGB standard deviation'], dtype='<U49') description
(band)
<U49
'Cloud Optimized GeoTIFF of AGB ...
array(['Cloud Optimized GeoTIFF of AGB estimates',\n",
+ " 'Cloud Optimized GeoTIFF of AGB standard deviation'], dtype='<U49') epsg
()
int64
4326
Indexes: (4)
PandasIndex
PandasIndex(DatetimeIndex(['2017-01-01', '2018-01-01', '2019-01-01', '2020-01-01'], dtype='datetime64[ns]', name='time', freq=None)) PandasIndex
PandasIndex(Index(['estimates', 'standard_deviation'], dtype='object', name='band')) PandasIndex
PandasIndex(Index([ -60.00088888828888, -59.999999999399996, -59.999111110511116,\n",
+ " -59.998222221622235, -59.997333332733355, -59.996444443844474,\n",
+ " -59.995555554955594, -59.99466666606671, -59.99377777717784,\n",
+ " -59.99288888828896,\n",
+ " ...\n",
+ " -50.008888888388796, -50.007999999499916, -50.007111110611035,\n",
+ " -50.006222221722155, -50.005333332833274, -50.0044444439444,\n",
+ " -50.00355555505552, -50.00266666616664, -50.00177777727776,\n",
+ " -50.00088888838888],\n",
+ " dtype='float64', name='x', length=11251)) PandasIndex
PandasIndex(Index([ 0.0, -0.00088888888888, -0.00177777777776,\n",
+ " -0.00266666666664, -0.00355555555552, -0.0044444444444,\n",
+ " -0.00533333333328, -0.00622222222216, -0.00711111111104,\n",
+ " -0.00799999999992,\n",
+ " ...\n",
+ " -9.9911111110112, -9.991999999900079, -9.99288888878896,\n",
+ " -9.99377777767784, -9.99466666656672, -9.9955555554556,\n",
+ " -9.99644444434448, -9.99733333323336, -9.99822222212224,\n",
+ " -9.99911111101112],\n",
+ " dtype='float64', name='y', length=11250)) Attributes: (4)
spec : RasterSpec(epsg=4326, bounds=(-60.00088888828888, -9.9999999999, -49.9999999995, 0.0), resolutions_xy=(0.00088888888888, 0.00088888888888)) crs : epsg:4326 transform : | 0.00, 0.00,-60.00|\n",
+ "| 0.00,-0.00, 0.00|\n",
+ "| 0.00, 0.00, 1.00| resolution : 0.00088888888888 "
+ ],
+ "text/plain": [
+ "\n",
+ "dask.array\n",
+ "Coordinates: (12/13)\n",
+ " * time (time) datetime64[ns] 2017-01-01 2018-01-01 ... 2020-01-01\n",
+ " id (time) \n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "<xarray.DataArray 'stackstac-5517ee4c53a7b2c13f76bf727c00d1fc' (time: 4,\n",
+ " band: 2,\n",
+ " y: 225, x: 225)>\n",
+ "dask.array<getitem, shape=(4, 2, 225, 225), dtype=float64, chunksize=(1, 1, 225, 225), chunktype=numpy.ndarray>\n",
+ "Coordinates: (12/13)\n",
+ " * time (time) datetime64[ns] 2017-01-01 2018-01-01 ... 2020-01-01\n",
+ " id (time) <U52 'N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-20...\n",
+ " * band (band) <U18 'estimates' 'standard_deviation'\n",
+ " * x (x) float64 -55.0 -55.0 -55.0 -55.0 ... -54.8 -54.8 -54.8\n",
+ " * y (y) float64 -5.801 -5.802 -5.803 ... -5.998 -5.999 -6.0\n",
+ " proj:epsg int64 4326\n",
+ " ... ...\n",
+ " proj:transform object {0.0, 1.0, -60.0, -0.00088888888888, 0.00088888888...\n",
+ " proj:shape object {11250}\n",
+ " proj:geometry object {'type': 'Polygon', 'coordinates': [[[-60.0, -9.99...\n",
+ " title (band) <U49 'Cloud Optimized GeoTIFF of AGB estimates' 'C...\n",
+ " description (band) <U49 'Cloud Optimized GeoTIFF of AGB estimates' 'C...\n",
+ " epsg int64 4326\n",
+ "Attributes:\n",
+ " spec: RasterSpec(epsg=4326, bounds=(-60.00088888828888, -9.9999999...\n",
+ " crs: epsg:4326\n",
+ " transform: | 0.00, 0.00,-60.00|\\n| 0.00,-0.00, 0.00|\\n| 0.00, 0.00, 1.00|\n",
+ " resolution: 0.00088888888888 dask.array<chunksize=(1, 1, 225, 225), meta=np.ndarray>
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " Array \n",
+ " Chunk \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " Bytes \n",
+ " 3.09 MiB \n",
+ " 395.51 kiB \n",
+ " \n",
+ " \n",
+ " \n",
+ " Shape \n",
+ " (4, 2, 225, 225) \n",
+ " (1, 1, 225, 225) \n",
+ " \n",
+ " \n",
+ " Dask graph \n",
+ " 8 chunks in 4 graph layers \n",
+ " \n",
+ " \n",
+ " Data type \n",
+ " float64 numpy.ndarray \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " 4 \n",
+ " 1 \n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " 225 \n",
+ " 225 \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " \n",
+ "
Coordinates: (13)
time
(time)
datetime64[ns]
2017-01-01 ... 2020-01-01
array(['2017-01-01T00:00:00.000000000', '2018-01-01T00:00:00.000000000',\n",
+ " '2019-01-01T00:00:00.000000000', '2020-01-01T00:00:00.000000000'],\n",
+ " dtype='datetime64[ns]') id
(time)
<U52
'N00W060_ESACCI-BIOMASS-L4-AGB-M...
array(['N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2017-fv4.0',\n",
+ " 'N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2018-fv4.0',\n",
+ " 'N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2019-fv4.0',\n",
+ " 'N00W060_ESACCI-BIOMASS-L4-AGB-MERGED-100m-2020-fv4.0'],\n",
+ " dtype='<U52') band
(band)
<U18
'estimates' 'standard_deviation'
array(['estimates', 'standard_deviation'], dtype='<U18') x
(x)
float64
-55.0 -55.0 -55.0 ... -54.8 -54.8
array([-55. , -54.999111, -54.998222, ..., -54.802667, -54.801778,\n",
+ " -54.800889]) y
(y)
float64
-5.801 -5.802 ... -5.999 -6.0
array([-5.800889, -5.801778, -5.802667, ..., -5.998222, -5.999111, -6. ]) proj:epsg
()
int64
4326
proj:bbox
()
object
{0.0, -60.0, -50.0000000001, -9....
array({0.0, -60.0, -50.0000000001, -9.9999999999}, dtype=object) proj:transform
()
object
{0.0, 1.0, -60.0, -0.00088888888...
array({0.0, 1.0, -60.0, -0.00088888888888, 0.00088888888888}, dtype=object) proj:shape
()
object
{11250}
array({11250}, dtype=object) proj:geometry
()
object
{'type': 'Polygon', 'coordinates...
array({'type': 'Polygon', 'coordinates': [[[-60.0, -9.9999999999], [-50.0000000001, -9.9999999999], [-50.0000000001, 0.0], [-60.0, 0.0], [-60.0, -9.9999999999]]]},\n",
+ " dtype=object) title
(band)
<U49
'Cloud Optimized GeoTIFF of AGB ...
array(['Cloud Optimized GeoTIFF of AGB estimates',\n",
+ " 'Cloud Optimized GeoTIFF of AGB standard deviation'], dtype='<U49') description
(band)
<U49
'Cloud Optimized GeoTIFF of AGB ...
array(['Cloud Optimized GeoTIFF of AGB estimates',\n",
+ " 'Cloud Optimized GeoTIFF of AGB standard deviation'], dtype='<U49') epsg
()
int64
4326
Indexes: (4)
PandasIndex
PandasIndex(DatetimeIndex(['2017-01-01', '2018-01-01', '2019-01-01', '2020-01-01'], dtype='datetime64[ns]', name='time', freq=None)) PandasIndex
PandasIndex(Index(['estimates', 'standard_deviation'], dtype='object', name='band')) PandasIndex
PandasIndex(Index([ -54.99999999945, -54.99911111056112, -54.998222221672236,\n",
+ " -54.997333332783356, -54.996444443894475, -54.995555555005595,\n",
+ " -54.994666666116714, -54.993777777227834, -54.99288888833896,\n",
+ " -54.99199999945008,\n",
+ " ...\n",
+ " -54.808888888340796, -54.807999999451916, -54.807111110563035,\n",
+ " -54.806222221674155, -54.80533333278528, -54.8044444438964,\n",
+ " -54.80355555500752, -54.80266666611864, -54.80177777722976,\n",
+ " -54.80088888834088],\n",
+ " dtype='float64', name='x', length=225)) PandasIndex
PandasIndex(Index([ -5.80088888883088, -5.80177777771976, -5.80266666660864,\n",
+ " -5.80355555549752, -5.8044444443864, -5.80533333327528,\n",
+ " -5.80622222216416, -5.80711111105304, -5.80799999994192,\n",
+ " -5.8088888888308,\n",
+ " ...\n",
+ " -5.99199999994008, -5.9928888888289595, -5.99377777771784,\n",
+ " -5.99466666660672, -5.9955555554956, -5.99644444438448,\n",
+ " -5.99733333327336, -5.99822222216224, -5.99911111105112,\n",
+ " -5.99999999994],\n",
+ " dtype='float64', name='y', length=225)) Attributes: (4)
spec : RasterSpec(epsg=4326, bounds=(-60.00088888828888, -9.9999999999, -49.9999999995, 0.0), resolutions_xy=(0.00088888888888, 0.00088888888888)) crs : epsg:4326 transform : | 0.00, 0.00,-60.00|\n",
+ "| 0.00,-0.00, 0.00|\n",
+ "| 0.00, 0.00, 1.00| resolution : 0.00088888888888 "
+ ],
+ "text/plain": [
+ "\n",
+ "dask.array\n",
+ "Coordinates: (12/13)\n",
+ " * time (time) datetime64[ns] 2017-01-01 2018-01-01 ... 2020-01-01\n",
+ " id (time) , , )` function checks a condition and performs specific directives if the condition results in `True` or `False`. In the resulting xarray, all the values less than 10 are going to be `nan` (the default value used if the filtering condition is `True`). We can also replace `nan` by any other value by mentioning it in the ``."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "91ab0e4d-47c5-4ffb-a602-719c2bb29f76",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[[222., 132., 193., ..., 360., 246., 271.],\n",
+ " [153., 113., 152., ..., 331., 180., 261.],\n",
+ " [189., 112., 173., ..., 381., 269., 260.],\n",
+ " ...,\n",
+ " [231., 193., 310., ..., 145., 392., 392.],\n",
+ " [333., 255., 297., ..., 133., 392., 348.],\n",
+ " [370., 189., 266., ..., 251., 293., 338.]],\n",
+ "\n",
+ " [[219., 100., 138., ..., 363., 271., 198.],\n",
+ " [188., 114., 101., ..., 345., 198., 254.],\n",
+ " [142., 144., 179., ..., 325., 306., 372.],\n",
+ " ...,\n",
+ " [353., 302., 379., ..., 162., 385., 385.],\n",
+ " [332., 348., 321., ..., 151., 385., 314.],\n",
+ " [375., 243., 283., ..., 201., 336., 342.]],\n",
+ "\n",
+ " [[271., 255., 219., ..., 363., 278., 286.],\n",
+ " [253., 321., 116., ..., 226., 333., 233.],\n",
+ " [222., 277., 176., ..., 169., 355., 190.],\n",
+ " ...,\n",
+ " [304., 336., 275., ..., 318., 308., 234.],\n",
+ " [340., 234., 348., ..., 315., 356., 330.],\n",
+ " [243., 323., 264., ..., 288., 307., 318.]],\n",
+ "\n",
+ " [[157., 217., 171., ..., 206., 161., 253.],\n",
+ " [190., 229., 226., ..., 214., 210., 314.],\n",
+ " [269., 212., 152., ..., 268., 402., 324.],\n",
+ " ...,\n",
+ " [247., 292., 246., ..., 373., 321., 159.],\n",
+ " [329., 200., 318., ..., 278., 284., 255.],\n",
+ " [237., 361., 238., ..., 245., 292., 316.]]])"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "arr_masked_lt = arr_est.where(arr_est >= 10)\n",
+ "arr_masked_lt.values"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1f511c71-5098-4aa2-9d0c-da089c967b7e",
+ "metadata": {},
+ "source": [
+ "Similarly, we could also show filtering values greater than 10 (and keeping values less than 10) based on above approach and updating the condition to `arr_masked_lt = arr_est.where(arr_est <= 10)`."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "cfeeec10-e023-4234-b528-aa7dc87c7e05",
+ "metadata": {},
+ "source": [
+ "#### Plotting Mean Time-Series for the AGB Estimates\n",
+ "\n",
+ "Below we plot the mean time-series of the masked array."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "1d960b78-e15b-4e2a-970f-a07239a49272",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "arr_masked_lt.mean(['x','y']).plot()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.10.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}