diff --git a/cog_transformation/cms-global-map-mangrove-canopy.ipynb b/cog_transformation/cms-global-map-mangrove-canopy.ipynb new file mode 100644 index 000000000..aa8a6241b --- /dev/null +++ b/cog_transformation/cms-global-map-mangrove-canopy.ipynb @@ -0,0 +1,894 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Code used to transform [Global Mangrove Distribution, Aboveground Biomass, and Canopy Height](https://daac.ornl.gov/CMS/guides/CMS_Global_Map_Mangrove_Canopy.html) from .tif to Cloud Optimized Geotiff.\n", + "\n", + "-Author: Kyle Lesinger" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "import json\n", + "import tempfile\n", + "import boto3\n", + "import rasterio\n", + "import rioxarray as rxr\n", + "import s3fs\n", + "from rasterio.warp import calculate_default_transform, reproject, Resampling\n", + "import botocore\n", + "from pathlib import Path\n", + "from dotenv import load_dotenv" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "config = {\n", + " \"data_acquisition_method\": \"s3\",\n", + " \"raw_data_bucket\" : \"ghgc-data-store-dev\",\n", + " \"raw_data_prefix\": \"coastal-observatory/data\",\n", + " \"cog_data_bucket\": \"ghgc-data-store-dev\",\n", + " \"cog_data_prefix\": \"transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass\",\n", + " \"local_output_dir\": \"output/cms-global-map-mangrove-biomass\", # Local directory to save COGs\n", + " \"transformation\": {}\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Load environment variables from .env file\n", + "load_dotenv()\n", + "\n", + "# AWS Credentials from environment variables\n", + "AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')\n", + "AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')\n", + "AWS_SESSION_TOKEN = os.getenv('AWS_SESSION_TOKEN')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Approach\n", + "\n", + "1.) Read .tif files from S3 bucket\n", + "2.) Convert to COGs on local drive\n", + "3.) Move converted COGs to their final S3 location" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "session = boto3.session.Session()\n", + "s3_client = boto3.client(\n", + " 's3',\n", + " aws_access_key_id=AWS_ACCESS_KEY_ID,\n", + " aws_secret_access_key=AWS_SECRET_ACCESS_KEY,\n", + " aws_session_token = AWS_SESSION_TOKEN\n", + "\n", + ")\n", + "\n", + "bucket_name = config[\"cog_data_bucket\"]\n", + "raw_data_bucket = config[\"raw_data_bucket\"]\n", + "raw_data_prefix= config[\"raw_data_prefix\"]\n", + "\n", + "cog_data_bucket = config['cog_data_bucket']\n", + "cog_data_prefix= config[\"cog_data_prefix\"]\n", + "\n", + "fs = s3fs.S3FileSystem()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['coastal-observatory/data/Mangrove_agb_AndamanAndNicobar.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Angola.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Anguilla.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_AntiguaAndBarbuda.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Aruba.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Australia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Bahamas.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Bahrain.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Bangladesh.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Barbados.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Belize.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Benin.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Brazil.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_BritishVirginIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Brunei.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Cambodia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Cameroon.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_CarribeanCaymanIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_China.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Colombia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Comoros.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_CostaRica.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_CoteDivoire.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Cuba.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_DemocraticRepublicOfCongo.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Djibouti.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_DominicanRepublic.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_EcuadorWithGalapagos.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Egypt.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_ElSalvador.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_EquatorialGuinea.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Eritrea.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_EuropaIsland.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Fiji.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Fiji2.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_FrenchGuyana.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_FrenchPolynesia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Gabon.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Gambia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Ghana.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Grenada.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Guadeloupe.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Guam.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Guatemala.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Guinea.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_GuineaBissau.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Guyana.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Haiti.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Hawaii.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Honduras.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_HongKong.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_India.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Indonesia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Iran.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Jamaica.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Japan.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Kenya.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Liberia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Macau.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Madagascar.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Malaysia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Martinique.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Mauritania.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Mayotte.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Mexico.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Micronesia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Mozambique.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Myanmar.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_NewCaledonia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Newzealand.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Nicaragua.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Nigeria.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_NorthernMarianaIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Oman.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Pakistan.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Palau.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Panama.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_PapuaNewGuinea.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Peru.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Philipines.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_PuertoRico.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Qatar.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_ReunionAndMauritius.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_SaintKittsAndNevis.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_SaintLucia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_SaintVincentAndTheGrenadines.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Samoa.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_SaudiArabia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Senegal.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Seychelles.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_SierraLeone.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Singapore.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_SolomonIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Somalia.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Somalia2.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Soudan.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_SouthAfrica.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_SriLanka.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Suriname.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Taiwan.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Tanzania.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Thailand.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_TimorLeste.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Togo.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Tonga.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_TrinidadAndTobago.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_TurksAndCaicosIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Tuvalu.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_UnitedArabEmirates.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_UnitedStates.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Vanuatu.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Venezuela.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Vietnam.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_VirginIslandsUs.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_WallisAndFutuna.tif',\n", + " 'coastal-observatory/data/Mangrove_agb_Yemen.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_AndamanAndNicobar.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Angola.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Anguilla.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_AntiguaAndBarbuda.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Aruba.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Australia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Bahamas.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Bahrain.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Bangladesh.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Barbados.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Belize.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Benin.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Brazil.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_BritishVirginIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Brunei.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Cambodia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Cameroon.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_CarribeanCaymanIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_China.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Colombia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Comoros.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_CostaRica.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Cote.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_CotedIvoire.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Cuba.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_DemocraticRepublicOfCongo.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Djibouti.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_DominicanRepublic.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_EcuadorWithGalapagos.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Egypt.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_ElSalvador.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_EquatorialGuinea.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Eritrea.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_EuropaIsland.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Fiji.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Fiji2.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_FrenchGuiana.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_FrenchPolynesia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Gabon.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Gambia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Ghana.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Grenada.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Guadeloupe.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Guam.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Guatemala.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Guinea.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_GuineaBissau.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Guyana.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Haiti.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Hawaii.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Honduras.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_HongKong.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_India.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Indonesia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Iran.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Jamaica.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Japan.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Kenya.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Liberia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Macau.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Madagascar.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Malaysia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Martinique.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Mauritania.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Mayotte.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Mexico.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Micronesia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Mozambique.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Myanmar.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_NewCaledonia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_NewZealand.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Nicaragua.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Nigeria.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_NorthernMarianaIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Oman.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Pakistan.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Palau.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Panama.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_PapuaNewGuinea.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Peru.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Philipines.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_PuertoRico.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Qatar.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_ReunionAndMauritius.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_SaintKittsAndNevis.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_SaintLucia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_SaintVincentAndTheGrenadines.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Samoa.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_SaudiArabia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Senegal.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Seychelles.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_SierraLeone.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Singapore.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_SolomonIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Somalia.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_SouthAfrica.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_SriLanka.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Sudan.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Suriname.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Taiwan.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Tanzania.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Thailand.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_TimorLeste.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Togo.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Tonga.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_TrinidadAndTobago.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_TurksAndCaicosIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Tuvalu.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_UnitedArabEmirates.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_UnitedStates.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Vanuatu.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Venezuela.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Vietnam.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_VirginIslandsUs.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_WallisAndFutuna.tif',\n", + " 'coastal-observatory/data/Mangrove_hba95_Yemen.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_AndamanAndNicobar.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Angola.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Anguilla.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_AntiguaAndBarbuda.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Aruba.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Australia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Bahamas.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Bahrain.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Bangladesh.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Barbados.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Belize.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Benin.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Brazil.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_BritishVirginIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Brunei.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Cambodia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Cameroon.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_CarribeanCaymanIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_China.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Colombia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Comoros.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_CostaRica.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_CoteDivoire.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Cuba.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_DemocraticRepublicOfCongo.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Djibouti.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_DominicanRepublic.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_EcuadorWithGalapagos.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Egypt.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_ElSalvador.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_EquatorialGuinea.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Eritrea.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_EuropaIsland.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Fiji.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Fiji2.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_FrenchGuyana.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_FrenchPolynesia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Gabon.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Gambia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Ghana.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Grenada.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Guadeloupe.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Guam.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Guatemala.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Guinea.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_GuineaBissau.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Guyana.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Haiti.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Hawaii.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Honduras.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_HongKong.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_India.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Indonesia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Iran.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Jamaica.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Japan.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Kenya.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Liberia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Macau.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Madagascar.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Malaysia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Martinique.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Mauritania.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Mayotte.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Mexico.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Micronesia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Mozambique.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Myanmar.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_NewCaledonia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Newzealand.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Nicaragua.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Nigeria.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_NorthernMarianaIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Oman.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Pakistan.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Palau.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Panama.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_PapuaNewGuinea.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Peru.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Philipines.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_PuertoRico.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Qatar.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_ReunionAndMauritius.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_SaintKittsAndNevis.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_SaintLucia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_SaintVincentAndTheGrenadines.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Samoa.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_SaudiArabia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Senegal.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Seychelles.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_SierraLeone.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Singapore.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_SolomonIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Somalia.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Somalia2.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Soudan.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_SouthAfrica.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_SriLanka.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Suriname.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Taiwan.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Tanzania.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Thailand.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_TimorLeste.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Togo.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Tonga.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_TrinidadAndTobago.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_TurksAndCaicosIslands.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Tuvalu.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_UnitedArabEmirates.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_UnitedStates.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Vanuatu.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Venezuela.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Vietnam.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_VirginIslandsUs.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_WallisAndFutuna.tif',\n", + " 'coastal-observatory/data/Mangrove_hmax95_Yemen.tif']" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def get_all_s3_keys(bucket, model_name, ext):\n", + " \"\"\"Get a list of all keys in an S3 bucket.\"\"\"\n", + " keys = []\n", + "\n", + " kwargs = {\"Bucket\": bucket, \"Prefix\": f\"{model_name}/\"}\n", + " while True:\n", + " resp = s3_client.list_objects_v2(**kwargs)\n", + " for obj in resp[\"Contents\"]:\n", + " if obj[\"Key\"].endswith(ext) and \"historical\" not in obj[\"Key\"]:\n", + " keys.append(obj[\"Key\"])\n", + "\n", + " try:\n", + " kwargs[\"ContinuationToken\"] = resp[\"NextContinuationToken\"]\n", + " except KeyError:\n", + " break\n", + "\n", + " return keys\n", + "\n", + "keys = get_all_s3_keys(raw_data_bucket, raw_data_prefix, \".tif\")\n", + "keys" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def create_cog_filename(f):\n", + " \n", + " f = Path(f).stem\n", + " # Example: \"Mangrove_agb_AndamanAndNicobar.tif\" -> \"Mangrove_agb_AndamanAndNicobar_2000year.tif\"\n", + " # Example: \"Mangrove_hmax95_Yemen.tif\" -> \"Mangrove_hmax95_Yemen_2000year.tif\"\n", + " \n", + " # Simply append 2000year to the stem\n", + " cog_filename = f\"{f}_2000year.tif\"\n", + " return cog_filename" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Define COG profile for rasterio\n", + "COG_PROFILE = {\n", + " \"driver\": \"COG\",\n", + " \"compress\": \"DEFLATE\",\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "def convert_to_proper_CRS_and_cogify(name, cog_filename, cog_data_bucket, cog_data_prefix, local_output_dir=None):\n", + " s3_key = f\"{cog_data_prefix}/{cog_filename}\"\n", + " reproject_filename = f\"reproj/{cog_filename}\"\n", + " \n", + " # Create a temporary file for the downloaded S3 object\n", + " temp_input_file = f\"temp_{os.path.basename(name)}\"\n", + "\n", + " try:\n", + " # Download the file from S3 first\n", + " print(f\"[DOWNLOAD] Downloading {name} from S3...\")\n", + " s3_client.download_file(raw_data_bucket, name, temp_input_file)\n", + " \n", + " # Reproject using the local file\n", + " print(f\"[REPROJECT] {name} → {reproject_filename} (EPSG:4326)\")\n", + " with rasterio.open(temp_input_file) as src:\n", + " dst_crs = \"EPSG:4326\"\n", + " transform, width, height = calculate_default_transform(\n", + " src.crs, dst_crs, src.width, src.height, *src.bounds\n", + " )\n", + " kwargs = src.meta.copy()\n", + " kwargs.update({\n", + " \"driver\": \"COG\", # write a COG instead of plain GTiff\n", + " \"compress\": \"DEFLATE\", # or \"LZW\"\n", + " \"crs\": dst_crs,\n", + " \"transform\": transform,\n", + " \"width\": width,\n", + " \"height\": height\n", + " })\n", + "\n", + " with rasterio.open(f\"{reproject_filename}\", \"w\", **kwargs) as dst:\n", + " reproject(\n", + " source=rasterio.band(src, 1),\n", + " destination=rasterio.band(dst, 1),\n", + " src_transform=src.transform,\n", + " src_crs=src.crs,\n", + " dst_transform=transform,\n", + " dst_crs=dst_crs,\n", + " resampling=Resampling.nearest,\n", + " wrapdateline=True\n", + " )\n", + "\n", + " # 3) COGify & upload\n", + " print(f\"[COGIFY] {reproject_filename} → s3://{cog_data_bucket}/{s3_key}\")\n", + " ds = rxr.open_rasterio(reproject_filename)\n", + " ds = ds.rename({\"y\": \"lat\", \"x\": \"lon\"})\n", + " ds.rio.set_spatial_dims(\"lon\", \"lat\", inplace=True)\n", + " ds.rio.write_nodata(-9999, inplace=True)\n", + "\n", + " with tempfile.NamedTemporaryFile() as tmp:\n", + " ds.rio.to_raster(tmp.name, **COG_PROFILE)\n", + " \n", + " # Upload to S3\n", + " s3_client.upload_file(\n", + " Filename = tmp.name, \n", + " Bucket = cog_data_bucket, \n", + " Key = s3_key)\n", + " print(f\"[SUCCESS] Uploaded to s3://{cog_data_bucket}/{s3_key}\")\n", + " \n", + " # Save locally if output directory is specified\n", + " if local_output_dir:\n", + " os.makedirs(local_output_dir, exist_ok=True)\n", + " local_path = os.path.join(local_output_dir, cog_filename)\n", + " \n", + " # Copy the COG file to local directory\n", + " import shutil\n", + " shutil.copy(tmp.name, local_path)\n", + " print(f\"[LOCAL SAVE] Saved COG to {local_path}\")\n", + " \n", + " except Exception as e:\n", + " print(f\"[ERROR] Failed to process {name}: {str(e)}\")\n", + " raise\n", + " \n", + " finally:\n", + " # Clean up temporary input file\n", + " if os.path.exists(temp_input_file):\n", + " os.remove(temp_input_file)\n", + " print(f\"[CLEANUP] removed temporary input file {temp_input_file}\")\n", + " \n", + " # Clean up local intermediate\n", + " if os.path.exists(reproject_filename):\n", + " os.remove(reproject_filename)\n", + " print(f\"[CLEANUP] removed intermediate {reproject_filename}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Local COGs will be saved to: output/cms-global-map-mangrove\n", + "\n", + "Processing: coastal-observatory/data/Mangrove_agb_AndamanAndNicobar.tif\n", + "Output filename: Mangrove_agb_AndamanAndNicobar_2000-01-01day_2009-12-31.tif\n", + "[DOWNLOAD] Downloading coastal-observatory/data/Mangrove_agb_AndamanAndNicobar.tif from S3...\n", + "[REPROJECT] coastal-observatory/data/Mangrove_agb_AndamanAndNicobar.tif → reproj/Mangrove_agb_AndamanAndNicobar_2000-01-01day_2009-12-31.tif (EPSG:4326)\n", + "[COGIFY] reproj/Mangrove_agb_AndamanAndNicobar_2000-01-01day_2009-12-31.tif → s3://ghgc-data-store-dev/transformed_cogs/CMS_Global_Map_Mangrove_Canopy/Mangrove_agb_AndamanAndNicobar_2000-01-01day_2009-12-31.tif\n" + ] + } + ], + "source": [ + "# Initialize DataFrame to track processed files\n", + "files_processed = pd.DataFrame(columns=[\"file_name\", \"COGs_created\"])\n", + "\n", + "# Get local output directory from config\n", + "local_output_dir = config.get(\"local_output_dir\")\n", + "\n", + "# Create output directories\n", + "if local_output_dir:\n", + " os.makedirs(local_output_dir, exist_ok=True)\n", + " print(f\"Local COGs will be saved to: {local_output_dir}\")\n", + "\n", + "# Process all files\n", + "for name in sorted(keys):\n", + " cog_filename = create_cog_filename(name, start_str, end_str)\n", + " print(f\"\\nProcessing: {name}\")\n", + " print(f\"Output filename: {cog_filename}\")\n", + " \n", + " # Process the file with local output directory\n", + " convert_to_proper_CRS_and_cogify(name, cog_filename, cog_data_bucket, cog_data_prefix, local_output_dir)\n", + " \n", + " # Add to tracking DataFrame\n", + " files_processed = files_processed._append(\n", + " {\"file_name\": name, \"COGs_created\": cog_filename},\n", + " ignore_index=True,\n", + " )\n", + " print(f\"Generated and saved COG: {cog_filename}\")\n", + "\n", + "print(\"\\nDone generating COGs\")\n", + "if local_output_dir:\n", + " print(f\"COGs saved locally to: {local_output_dir}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Save metadata if there are processed files\n", + "if len(files_processed) > 0:\n", + " # Get metadata from one of the processed files\n", + " sample_file = files_processed.iloc[0]['file_name']\n", + " temp_sample_file = f\"temp_{os.path.basename(sample_file)}\"\n", + " \n", + " # Download sample file to extract metadata\n", + " s3_client.download_file(raw_data_bucket, sample_file, temp_sample_file)\n", + " \n", + " with rasterio.open(temp_sample_file) as src:\n", + " metadata = {\n", + " \"description\": src.tags(),\n", + " \"driver\": src.driver,\n", + " \"dtype\": str(src.dtypes[0]),\n", + " \"nodata\": src.nodata,\n", + " \"width\": src.width,\n", + " \"height\": src.height,\n", + " \"count\": src.count,\n", + " \"crs\": str(src.crs),\n", + " \"transform\": list(src.transform),\n", + " \"bounds\": list(src.bounds),\n", + " \"total_files_processed\": len(files_processed),\n", + " \"year\": \"2000\"\n", + " }\n", + " \n", + " # Upload metadata\n", + " with tempfile.NamedTemporaryFile(mode=\"w+\") as fp:\n", + " json.dump(metadata, fp, indent=2)\n", + " fp.flush()\n", + " \n", + " s3_client.upload_file(\n", + " Filename=fp.name,\n", + " Bucket=bucket_name,\n", + " Key=f\"{cog_data_prefix}/metadata.json\",\n", + " )\n", + " print(f\"Uploaded metadata to s3://{bucket_name}/{cog_data_prefix}/metadata.json\")\n", + " \n", + " # Clean up sample file\n", + " if os.path.exists(temp_sample_file):\n", + " os.remove(temp_sample_file)\n", + "\n", + "# Save the files_processed DataFrame to CSV using the same s3_client\n", + "with tempfile.NamedTemporaryFile(mode=\"w+\", suffix=\".csv\") as fp:\n", + " files_processed.to_csv(fp.name, index=False)\n", + " fp.flush()\n", + " \n", + " s3_client.upload_file(\n", + " Filename=fp.name,\n", + " Bucket=bucket_name,\n", + " Key=f\"{cog_data_prefix}/files_converted.csv\",\n", + " )\n", + " print(f\"Saved processing log to s3://{bucket_name}/{cog_data_prefix}/files_converted.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Processing Summary:\n", + "Total files found: 348\n", + "Files processed: 348\n", + "\n", + "Processed files:\n" + ] + }, + { + "data": { + "text/html": [ + "
\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", + "
file_nameCOGs_created
0coastal-observatory/data/Mangrove_agb_AndamanA...Mangrove_agb_AndamanAndNicobar_2000-01-01day_2...
1coastal-observatory/data/Mangrove_agb_Angola.tifMangrove_agb_Angola_2000-01-01day_2009-12-31.tif
2coastal-observatory/data/Mangrove_agb_Anguilla...Mangrove_agb_Anguilla_2000-01-01day_2009-12-31...
3coastal-observatory/data/Mangrove_agb_AntiguaA...Mangrove_agb_AntiguaAndBarbuda_2000-01-01day_2...
4coastal-observatory/data/Mangrove_agb_Aruba.tifMangrove_agb_Aruba_2000-01-01day_2009-12-31.tif
.........
343coastal-observatory/data/Mangrove_hmax95_Venez...Mangrove_hmax95_Venezuela_2000-01-01day_2009-1...
344coastal-observatory/data/Mangrove_hmax95_Vietn...Mangrove_hmax95_Vietnam_2000-01-01day_2009-12-...
345coastal-observatory/data/Mangrove_hmax95_Virgi...Mangrove_hmax95_VirginIslandsUs_2000-01-01day_...
346coastal-observatory/data/Mangrove_hmax95_Walli...Mangrove_hmax95_WallisAndFutuna_2000-01-01day_...
347coastal-observatory/data/Mangrove_hmax95_Yemen...Mangrove_hmax95_Yemen_2000-01-01day_2009-12-31...
\n", + "

348 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " file_name \\\n", + "0 coastal-observatory/data/Mangrove_agb_AndamanA... \n", + "1 coastal-observatory/data/Mangrove_agb_Angola.tif \n", + "2 coastal-observatory/data/Mangrove_agb_Anguilla... \n", + "3 coastal-observatory/data/Mangrove_agb_AntiguaA... \n", + "4 coastal-observatory/data/Mangrove_agb_Aruba.tif \n", + ".. ... \n", + "343 coastal-observatory/data/Mangrove_hmax95_Venez... \n", + "344 coastal-observatory/data/Mangrove_hmax95_Vietn... \n", + "345 coastal-observatory/data/Mangrove_hmax95_Virgi... \n", + "346 coastal-observatory/data/Mangrove_hmax95_Walli... \n", + "347 coastal-observatory/data/Mangrove_hmax95_Yemen... \n", + "\n", + " COGs_created \n", + "0 Mangrove_agb_AndamanAndNicobar_2000-01-01day_2... \n", + "1 Mangrove_agb_Angola_2000-01-01day_2009-12-31.tif \n", + "2 Mangrove_agb_Anguilla_2000-01-01day_2009-12-31... \n", + "3 Mangrove_agb_AntiguaAndBarbuda_2000-01-01day_2... \n", + "4 Mangrove_agb_Aruba_2000-01-01day_2009-12-31.tif \n", + ".. ... \n", + "343 Mangrove_hmax95_Venezuela_2000-01-01day_2009-1... \n", + "344 Mangrove_hmax95_Vietnam_2000-01-01day_2009-12-... \n", + "345 Mangrove_hmax95_VirginIslandsUs_2000-01-01day_... \n", + "346 Mangrove_hmax95_WallisAndFutuna_2000-01-01day_... \n", + "347 Mangrove_hmax95_Yemen_2000-01-01day_2009-12-31... \n", + "\n", + "[348 rows x 2 columns]" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Display summary\n", + "print(f\"\\nProcessing Summary:\")\n", + "print(f\"Total files found: {len(keys)}\")\n", + "print(f\"Files processed: {len(files_processed)}\")\n", + "print(f\"\\nProcessed files:\")\n", + "files_processed" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "gdal", + "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.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/generating_statistics_for_validation/cms-global-map-mangrove/cms-global-map-mangrove-generate-statistics.ipynb b/generating_statistics_for_validation/cms-global-map-mangrove/cms-global-map-mangrove-generate-statistics.ipynb new file mode 100644 index 000000000..89cbf7437 --- /dev/null +++ b/generating_statistics_for_validation/cms-global-map-mangrove/cms-global-map-mangrove-generate-statistics.ipynb @@ -0,0 +1,580 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CMS Global Map Mangrove Canopy - Statistics Generation\n", + "\n", + "Compares original GeoTIFF files with transformed COGs using chunked processing for memory efficiency.\n", + "\n", + "Outputs:\n", + "- `detailed_stats.json` - Detailed statistics for each file\n", + "- `overall_stats.json` - Overall statistics for all 3 variables (agb, hmax95, hba95)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Setup and Configuration\n", + "import os\n", + "import json\n", + "import boto3\n", + "import numpy as np\n", + "import pandas as pd\n", + "import rasterio\n", + "from rasterio.windows import Window\n", + "from pathlib import Path\n", + "import tempfile\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from dotenv import load_dotenv\n", + "import gc\n", + "from tqdm import tqdm\n", + "\n", + "load_dotenv()\n", + "\n", + "# Configuration\n", + "reprocess = True # Set to True to reprocess all files, False to load existing results\n", + "BUCKET_NAME = \"ghgc-data-store-develop\"\n", + "ORIGINAL_PREFIX = \"coastal-observatory/data\"\n", + "COG_PREFIX = \"cms-mangrove-agb-canopyheight-grid-v1.3\"\n", + "VALID_DATA_TYPES = [\"agb\", \"hmax95\", \"hba95\"]\n", + "NODATA_VALUE = 0\n", + "DEFAULT_CHUNK_SIZE = 1024\n", + "output_dir = os.path.dirname(os.path.abspath(\"__file__\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [], + "source": [ + "# S3 Helper Functions\n", + "def get_s3_client():\n", + " return boto3.Session(\n", + " aws_access_key_id=os.environ.get(\"AWS_ACCESS_KEY_ID\"),\n", + " aws_secret_access_key=os.environ.get(\"AWS_SECRET_ACCESS_KEY\"),\n", + " aws_session_token=os.environ.get(\"AWS_SESSION_TOKEN\"),\n", + " region_name=\"us-west-2\"\n", + " ).client(\"s3\")\n", + "\n", + "def list_s3_files(bucket, prefix, extension=\".tif\"):\n", + " s3_client = get_s3_client()\n", + " files = []\n", + " paginator = s3_client.get_paginator(\"list_objects_v2\")\n", + " for page in paginator.paginate(Bucket=bucket, Prefix=prefix):\n", + " if \"Contents\" in page:\n", + " files.extend([obj[\"Key\"] for obj in page[\"Contents\"] if obj[\"Key\"].endswith(extension)])\n", + " return sorted(files)\n", + "\n", + "def download_s3_file(bucket, key, local_path):\n", + " get_s3_client().download_file(bucket, key, local_path)\n", + "\n", + "def extract_metadata_from_filename(filename):\n", + " parts = Path(filename).stem.split(\"_\")\n", + " return {\n", + " \"data_type\": parts[1] if len(parts) > 1 else \"unknown\",\n", + " \"region\": \"_\".join(parts[2:]).replace(\"_2000year\", \"\") if len(parts) > 2 else \"unknown\"\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "# Chunked Statistics Computation\n", + "class IncrementalStats:\n", + " def __init__(self):\n", + " self.n = 0\n", + " self.mean = 0.0\n", + " self.M2 = 0.0\n", + " self.min_val = float('inf')\n", + " self.max_val = float('-inf')\n", + " \n", + " def update(self, values):\n", + " if len(values) == 0:\n", + " return\n", + " self.min_val = min(self.min_val, np.nanmin(values))\n", + " self.max_val = max(self.max_val, np.nanmax(values))\n", + " for value in values:\n", + " self.n += 1\n", + " delta = value - self.mean\n", + " self.mean += delta / self.n\n", + " self.M2 += delta * (value - self.mean)\n", + " \n", + " def get_stats(self):\n", + " if self.n == 0:\n", + " return {\"min\": None, \"max\": None, \"mean\": None, \"std\": None, \"count\": 0}\n", + " return {\n", + " \"min\": float(self.min_val),\n", + " \"max\": float(self.max_val),\n", + " \"mean\": float(self.mean),\n", + " \"std\": float(np.sqrt(self.M2 / self.n) if self.n > 1 else 0),\n", + " \"count\": self.n\n", + " }\n", + "\n", + "def compute_raster_statistics_chunked(file_path):\n", + " try:\n", + " with rasterio.open(file_path) as src:\n", + " width, height = src.width, src.height\n", + " total_pixels = width * height\n", + " chunk_size = min(DEFAULT_CHUNK_SIZE, width, height)\n", + " \n", + " stats_calc = IncrementalStats()\n", + " valid_pixels = 0\n", + " \n", + " # Process in chunks\n", + " for row_off in range(0, height, chunk_size):\n", + " for col_off in range(0, width, chunk_size):\n", + " window = Window(col_off, row_off, \n", + " min(chunk_size, width - col_off),\n", + " min(chunk_size, height - row_off))\n", + " chunk = src.read(1, window=window)\n", + " valid_mask = (chunk != NODATA_VALUE) & np.isfinite(chunk)\n", + " valid_data = chunk[valid_mask]\n", + " valid_pixels += np.sum(valid_mask)\n", + " if len(valid_data) > 0:\n", + " stats_calc.update(valid_data)\n", + " \n", + " stats = stats_calc.get_stats()\n", + " stats.update({\n", + " \"valid_pixels\": int(valid_pixels),\n", + " \"total_pixels\": int(total_pixels),\n", + " \"coverage_percent\": float(valid_pixels / total_pixels * 100),\n", + " \"crs\": str(src.crs),\n", + " \"width\": width,\n", + " \"height\": height,\n", + " \"bounds\": list(src.bounds)\n", + " })\n", + " return stats\n", + " except Exception as e:\n", + " return {\"error\": str(e)}" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "# File Processing Functions\n", + "def process_file_pair(original_key, cog_key, bucket):\n", + " result = {\n", + " \"original_file\": original_key,\n", + " \"cog_file\": cog_key,\n", + " \"metadata\": extract_metadata_from_filename(original_key)\n", + " }\n", + " \n", + " with tempfile.TemporaryDirectory() as tmpdir:\n", + " # Process original file\n", + " original_path = os.path.join(tmpdir, \"original.tif\")\n", + " download_s3_file(bucket, original_key, original_path)\n", + " result[\"original_stats\"] = compute_raster_statistics_chunked(original_path)\n", + " \n", + " # Process COG file\n", + " if cog_key:\n", + " cog_path = os.path.join(tmpdir, \"cog.tif\")\n", + " download_s3_file(bucket, cog_key, cog_path)\n", + " result[\"cog_stats\"] = compute_raster_statistics_chunked(cog_path)\n", + " else:\n", + " result[\"cog_stats\"] = None\n", + " \n", + " gc.collect()\n", + " return result\n", + "\n", + "def calculate_overall_statistics(results):\n", + " overall_stats = {\"original\": {}, \"cog\": {}}\n", + " \n", + " for data_type in VALID_DATA_TYPES:\n", + " for stat_type in [\"original\", \"cog\"]:\n", + " values = {\"mins\": [], \"maxs\": [], \"means\": [], \"stds\": [], \"counts\": []}\n", + " \n", + " for result in results:\n", + " if result[\"metadata\"][\"data_type\"] == data_type:\n", + " stats_key = f\"{stat_type}_stats\"\n", + " if result.get(stats_key) and \"mean\" in result[stats_key]:\n", + " stats = result[stats_key]\n", + " values[\"mins\"].append(stats[\"min\"])\n", + " values[\"maxs\"].append(stats[\"max\"])\n", + " values[\"means\"].append(stats[\"mean\"])\n", + " values[\"stds\"].append(stats[\"std\"])\n", + " values[\"counts\"].append(stats[\"count\"])\n", + " \n", + " if values[\"means\"]:\n", + " total_pixels = sum(values[\"counts\"])\n", + " weighted_mean = sum(m * c for m, c in zip(values[\"means\"], values[\"counts\"])) / total_pixels\n", + " \n", + " # Calculate combined std\n", + " pooled_var = sum((c-1)*s*s + c*(m-weighted_mean)**2 \n", + " for m, s, c in zip(values[\"means\"], values[\"stds\"], values[\"counts\"]))\n", + " combined_std = np.sqrt(pooled_var / (total_pixels - 1)) if total_pixels > 1 else 0\n", + " \n", + " overall_stats[stat_type][data_type] = {\n", + " \"min_value\": float(np.min(values[\"mins\"])),\n", + " \"max_value\": float(np.max(values[\"maxs\"])),\n", + " \"mean_value\": float(weighted_mean),\n", + " \"std_value\": float(combined_std)\n", + " }\n", + " \n", + " return overall_stats" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reprocess flag is True - deleting existing results...\n", + "Deleted detailed_stats.json\n", + "Deleted overall_stats.json\n", + "Starting fresh processing...\n" + ] + } + ], + "source": [ + "# Check for existing results and handle reprocess flag\n", + "results_loaded = False\n", + "overall_stats_loaded = False\n", + "\n", + "# If reprocess is True, delete existing files and force reprocessing\n", + "if reprocess:\n", + " print(\"Reprocess flag is True - deleting existing results...\")\n", + " for filename in [\"detailed_stats.json\", \"overall_stats.json\"]:\n", + " filepath = os.path.join(output_dir, filename)\n", + " if os.path.exists(filepath):\n", + " os.remove(filepath)\n", + " print(f\"Deleted {filename}\")\n", + " print(\"Starting fresh processing...\")\n", + "else:\n", + " # Try to load existing results\n", + " if os.path.exists(os.path.join(output_dir, \"detailed_stats.json\")):\n", + " try:\n", + " with open(os.path.join(output_dir, \"detailed_stats.json\"), 'r') as f:\n", + " results = json.load(f)\n", + " print(f\"Loaded {len(results)} existing results\")\n", + " results_loaded = True\n", + " \n", + " # Load overall stats\n", + " if os.path.exists(os.path.join(output_dir, \"overall_stats.json\")):\n", + " with open(os.path.join(output_dir, \"overall_stats.json\"), 'r') as f:\n", + " lines = f.readlines()\n", + " if len(lines) >= 4:\n", + " raw_stats = json.loads(lines[1].strip())\n", + " cog_stats = json.loads(lines[3].strip())\n", + " overall_stats = {\"original\": raw_stats, \"cog\": cog_stats}\n", + " overall_stats_loaded = True\n", + " print(\"Loaded overall statistics\")\n", + " except Exception as e:\n", + " print(f\"Error loading existing results: {e}\")\n", + " print(\"Proceeding with normal processing...\")\n", + " results_loaded = False\n", + " else:\n", + " print(\"No existing results found - proceeding with processing...\")" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Listing files...\n", + "Found 348 original files and 348 COG files\n", + "[348/348] Processing Mangrove_hmax95_Yemen.tif...una.tif..........tif...\n", + "Completed processing 348 files\n", + "Saved detailed_stats.json\n" + ] + } + ], + "source": [ + "# Main Processing\n", + "if not results_loaded:\n", + " # List files\n", + " print(\"Listing files...\")\n", + " original_files = [f for f in list_s3_files(BUCKET_NAME, ORIGINAL_PREFIX) \n", + " if any(dt in f for dt in VALID_DATA_TYPES)]\n", + " cog_files = list_s3_files(BUCKET_NAME, COG_PREFIX)\n", + " print(f\"Found {len(original_files)} original files and {len(cog_files)} COG files\")\n", + " \n", + " # Process files\n", + " results = []\n", + " for idx, orig_file in enumerate(original_files, 1):\n", + " print(f\"\\r[{idx}/{len(original_files)}] Processing {Path(orig_file).name}...\", end=\"\")\n", + " \n", + " # Find matching COG\n", + " orig_meta = extract_metadata_from_filename(orig_file)\n", + " cog_match = None\n", + " for cog_file in cog_files:\n", + " cog_meta = extract_metadata_from_filename(cog_file)\n", + " if (cog_meta[\"data_type\"] == orig_meta[\"data_type\"] and \n", + " cog_meta[\"region\"] == orig_meta[\"region\"]):\n", + " cog_match = cog_file\n", + " break\n", + " \n", + " try:\n", + " result = process_file_pair(orig_file, cog_match, BUCKET_NAME)\n", + " results.append(result)\n", + " except Exception as e:\n", + " results.append({\n", + " \"original_file\": orig_file,\n", + " \"cog_file\": cog_match,\n", + " \"metadata\": orig_meta,\n", + " \"error\": str(e)\n", + " })\n", + " \n", + " print(f\"\\nCompleted processing {len(results)} files\")\n", + " \n", + " # Save detailed results\n", + " with open(os.path.join(output_dir, \"detailed_stats.json\"), \"w\") as f:\n", + " json.dump(results, f, indent=2)\n", + " print(\"Saved detailed_stats.json\")" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saved overall_stats.json\n", + "\n", + "============================================================\n", + "OVERALL STATISTICS\n", + "============================================================\n", + "\n", + "Original TIF files:\n", + "\n", + "AGB:\n", + " min_value: 0.284488\n", + " max_value: 910.475891\n", + " mean_value: 130.237788\n", + " std_value: 108.868964\n", + "\n", + "HMAX95:\n", + " min_value: 0.848500\n", + " max_value: 62.789001\n", + " mean_value: 16.388412\n", + " std_value: 11.190709\n", + "\n", + "HBA95:\n", + " min_value: 0.537700\n", + " max_value: 39.789799\n", + " mean_value: 10.468337\n", + " std_value: 7.126196\n", + "\n", + "COG files:\n", + "\n", + "AGB:\n", + " min_value: 0.284488\n", + " max_value: 910.475891\n", + " mean_value: 130.237788\n", + " std_value: 108.868964\n", + "\n", + "HMAX95:\n", + " min_value: 0.848500\n", + " max_value: 62.789001\n", + " mean_value: 16.388412\n", + " std_value: 11.190709\n", + "\n", + "HBA95:\n", + " min_value: 0.537700\n", + " max_value: 39.789799\n", + " mean_value: 10.468337\n", + " std_value: 7.126196\n" + ] + } + ], + "source": [ + "# Calculate and save overall statistics\n", + "if 'overall_stats' not in locals() or not overall_stats_loaded:\n", + " overall_stats = calculate_overall_statistics(results)\n", + " \n", + " # Save in special format\n", + " with open(os.path.join(output_dir, \"overall_stats.json\"), \"w\") as f:\n", + " f.write('\"Stats for raw tif files.\"\\n')\n", + " json.dump(overall_stats[\"original\"], f)\n", + " f.write('\\n\"Stats for transformed COG files.\"\\n')\n", + " json.dump(overall_stats[\"cog\"], f)\n", + " print(\"Saved overall_stats.json\")\n", + "\n", + "# Display overall statistics\n", + "print(\"\\n\" + \"=\"*60)\n", + "print(\"OVERALL STATISTICS\")\n", + "print(\"=\"*60)\n", + "for stat_type, label in [(\"original\", \"Original TIF\"), (\"cog\", \"COG\")]:\n", + " print(f\"\\n{label} files:\")\n", + " for var_type in VALID_DATA_TYPES:\n", + " if var_type in overall_stats[stat_type]:\n", + " stats = overall_stats[stat_type][var_type]\n", + " print(f\"\\n{var_type.upper()}:\")\n", + " for key, value in stats.items():\n", + " print(f\" {key}: {value:.6f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "SUMMARY:\n", + "Total files processed: 348\n", + "Files with errors: 0\n", + "\n", + "By data type:\n", + " agb: 116 files\n", + " hmax95: 116 files\n", + " hba95: 116 files\n" + ] + } + ], + "source": [ + "# Generate summary statistics\n", + "summary = {\n", + " \"total_files\": len(results),\n", + " \"by_data_type\": {},\n", + " \"errors\": sum(1 for r in results if \"error\" in r.get(\"original_stats\", {}))\n", + "}\n", + "\n", + "for data_type in VALID_DATA_TYPES:\n", + " type_results = [r for r in results if r[\"metadata\"][\"data_type\"] == data_type]\n", + " summary[\"by_data_type\"][data_type] = len(type_results)\n", + "\n", + "print(\"\\nSUMMARY:\")\n", + "print(f\"Total files processed: {summary['total_files']}\")\n", + "print(f\"Files with errors: {summary['errors']}\")\n", + "print(\"\\nBy data type:\")\n", + "for dt, count in summary[\"by_data_type\"].items():\n", + " print(f\" {dt}: {count} files\")" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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kat1v6R48XfQ149BcaPiKGFsnOftJRtpQF/fAHXq1EGNGiZ5D1BNvuYxJ0U83gWPx7xgFfbjLYuvqPue8jcAvCteHC/19WFUvDiMS5TI07YyPqZAX18fderUgUmNGvkUYcEr7Nfat4bHu+DxmBe8wnzMs5u/WUQnIiKifPf7779j48aN+PPPP+Hp6QkAKFu2LB48eCC33OvXrxUeEc8OLS2tXH/5ysu6WW1TQwOA7F9eaQAaGl8nVnX4VvajqODxLng85gWLx/vr+d7yt2y7GtCAhsanf3mhoaEBDWh8M+/Rb2U/igoe74LHY17wivIxZxGdiIiI8tXChQuxadMmzJ07Fy1bthSn29nZISQkBB8/fhRbr125cgX16tVTV6j0leze/RDJyenQ1dVExYrqjoaIiLKD+ZsA4OHu3Uj98AGvX7wA7O3VHQ4RUaHBIjoRERHlm4cPH2Lx4sXw9fVFvXr1EBsbK85zcnKCubk5JkyYgCFDhuDYsWOIjIxEYGCgGiOmr2Hw4EOIjk5EhQpG2LGjvrrDISKiL2D+JplDgwcjMToaemXKwGP4cHWHQ0RUaLCITkRERPnmyJEjkEqlWLJkCZYsWSI37969e1i8eDEmTZoEHx8fVKlSBYsWLUL58uXVFC0REREBzN9ERERfwiI6ERER5RtfX1/4+vqqnF+lShWsX7++ACMiIiKiL2H+JiIiypqmugMgIiIiIiIiIiIiIiqsWEQnIiIiIiIiIiIiIlKBRXQiIiIiIiIiIiIiIhVYRCciIiIiIiIiIiIiUoFFdCIiIiIiIiIiIiIiFVhEJyIiIiIiIiIiIiJSgUV0IiIiIspXRka6KF5cF0ZGOuoOhYiIiHJA18gIusWLQ0tfX92hEBEVKtrqDoCIiIiIvi137/YHAEilUkRERKg3GCIiIsq2/nfvMn8TESnBluhERERERERERERERCqwiE5EREREREREREREpAKL6EREREREREREREREKrBPdCIiIiLKV2PHHsfbtykoUUIX3bsbqzscIiIiyqbjY8fiY1wc3qelwX71anWHQ0RUaLCITkRERET5auPGu4iOTkSFCkbo3r2+usMhIiKibLq7cSMSo6OhV6aMukMhIipU2J0LEREREREREREREZEKLKITEREREREREREREanAIjoRERERERERERERkQosohMRERERERERERERqcAiOhERERERERERERGRCiyiExERERERERERERGpwCI6EREREREREREREZEKLKITEREREREREREREamgre4AiIiIiOjb0qZNdcTFfUTJknrqDoWIiIhyoHqbNkh+8wYfMjLUHQoRUaHCIjoRERER5atly34AAEilUkRERKg3GCIiIsq2H5YtY/4mIlKC3bkQEREREREREREREanAIjoRERERERERERERkQosohMRERERERERERERqcA+0anQkkqlOH78OM6fP493797Bzc0NWlpa6g6LqEji9UREBcnRcR1iYj6gXDkDLFtmpe5wiIiIKJvWOTriQ0wMNIyNYX/jhrrDISIqNFhEp0IpLCwMfn5+ePLkiTitatWqCAoKgo+Pj/oCIyqCeD0RUUGLifmA6OhEdYdBREREOfQhJgaJ0dHQS0tTdyhERIUKu3OhQicsLAydOnWCjY0NTp8+jZMnT+L06dOwsbFBp06dEBYWpu4QiYoMXk9ERERERERERHnDIjoVKlKpFH5+fvDy8kJ4eDhcXFxgYGAAFxcXhIeHw8vLC2PGjIFUKlV3qESFHq8nIiIiIiIiIqK8YxGdCpVTp07hyZMnmDhxIjQ15d+empqamDBhAh4/foxTp06pKUKiooPXExERERERERFR3rGIToXKixcvAADW1tZK58umy5YjItV4PRERERERERER5R2L6FSomJubAwBu3rypdL5sumw5IlKN1xMRERERERERUd6xiE6FiqurK6pWrYqZM2ciIyNDbl5GRgYCAwNRrVo1uLq6qilCoqKD1xMRERERERERUd6xiE6FipaWFoKCgrB79254e3vj3Llz+PDhA86dOwdvb2/s3r0bc+bMgZaWlrpDJSr0eD0REREREREREeWdtroDIPqcj48Ptm3bBj8/P7kWstWqVcO2bdvg4+OjxuiIihZeT0REREREREREecMiOhVKPj4+8PLyQnBwMC5cuABnZ2cMHz4curq66g6NqMjh9UREBW327KZISkpDsWJaAD6qOxwiIiLKpqazZyMlMRHPY2PVHQoRUaHCIjoVSmFhYfDz88OTJ08AAFu3bsXChQsRFBTElrNEOcTriYgKWvfudQAAUqkUERER6g2GiIiIsq1O9+6QSqWQMn8TEclhn+hU6ISFhaFTp06wsbHB6dOncfLkSZw+fRo2Njbo1KkTwsLC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Fjg6pCLDbDarS5cu2rlzp3XZqVOn9Mwzz6hBgwbq3Lmzfv75Z5t9fvnlF3Xp0kX169dX7969derUqYIOu9A5f/68Bg0apMaNG6tly5YaP368UlJSJNHf+eXkyZN6/vnnFRoaqtatW+uTTz6xrqPP81efPn00YsQI6+MDBw7oscceU/369fXoo49q//79NtuvXr1a7dq1U/369dW/f39dvny5oENGPiF/5x/yd8Egfxc88rfjFPX8TREddvHvv//qscce0+nTpzVt2jStWbNG/fv31+LFi/Xyyy/bFPVuNGPGDD333HPZeo7ly5erc+fO9gwbKLSuXLmixx57TPv379fYsWO1evVqDRw4UB999JHGjh0rSUpISFCPHj20c+dOvfPOO/r+++81cuRIbdq0SU899ZQSExOt7Z0/f17du3fX7t279e6772rdunWaPn26rly5oieffFJxcXGOOlTALiZOnKj9+/frs88+01tvvaWZM2dq7dq1jg6r0EtJSdFrr72mI0eOWJcZhqH+/furdOnSWrFihR5++GENGDDA+oXc2bNn1b9/f0VERGj58uUKDAxUv379xL3us2YYhgYNGqTk5GQtXrxYU6dO1Y8//qhp06bR3/kkLS1Nffr0UalSpfTVV19pzJgxmjNnjr799lv6PJ+tWbNGW7ZssT5OSkpSnz591KhRI61cuVKhoaF66aWXrCcE7Nu3TyNHjtSAAQP05ZdfKi4uTpGRkY4KH3ZG/s4f5O+CQf4ueORvxykW+dsA7ODll182evbsaaSmptosP3PmjNGgQQPjiy++cFBkGe3YscOoWbOmo8MA8mTkyJHGgw8+aFy9etVm+Q8//GAEBwcbx48fN9577z2jffv2RmJios02cXFxRqtWrYz333/fumzQoEFG165djZSUFJttU1NTjQ4dOhjz58/Pv4MB8lliYqIREhJi7Nixw7ps1qxZxlNPPeXAqAq/I0eOGF27djUeeugho2bNmtb+/eWXX4wGDRrY/O15+umnjenTpxuGYRjTpk2z6fukpCQjNDTU5vWBraNHjxo1a9Y0oqOjrcu+/fZbo0WLFvR3Pjl//rwxePBgIz4+3rqsf//+xltvvUWf56MrV64Y999/v/Hoo48aw4cPNwzDMJYtW2aEh4cbaWlphmEYRlpamvHAAw8YK1asMAzDMIYNG2bd1jAM4+zZ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gYGBCgsLo8/tbNGiRfr222+1atUqrVq1SuHh4QoPD9eqVatUv359/fHHH9bP8oZh6Pfff8+yv//991/9+++/9HcRQP4uWOST/EH+Lljk74JV3PI3mQd2MXLkSMXGxurFF1/Ub7/9prNnz2rDhg3q3bu3GjdurB49ety2jV69eunzzz/X+vXrdezYMb3xxhtKSkqy3sk3uwICApSUlKSNGzfq9OnTWrZsWabFRqAwGzhwoBISEvT8889r165d+ueff7Rs2TKNGDFCvXv3Vo0aNTRgwACVLl1avXr10rZt23T27Flt27ZNvXv3VpkyZTRw4EBre6NHj1ZsbKx69eqlLVu2WG/sO2jQIC1btkwNGzZ04NECeePl5aVu3brp7bff1r59+7Rx40YtWLBAvXv3dnRoRVLjxo1Vvnx5RUZG6siRI5o3b5727dun7t27S5IeffRR/f7775o3b56OHDmiyMhIVapUSU2aNHFw5M7r2LFjmj17tl588UWFhYUpOjra+kN/54+QkBDVqVNHb7zxho4ePaotW7Zo0qRJ6tu3L32eDypWrGi9Aq5y5cry8fGRj4+PKleurI4dOyouLk5jx47V0aNHNXbsWCUnJ6tTp06SpCeffFJff/21li1bpkOHDun1119X69atdeeddzr4qJBX5O+Cxd82+yN/Fzzyd8EqdvnbAOzk4sWLxjvvvGO0atXKCAkJMTp37mx88sknxrVr1wzDMIwVK1YYbdq0sdnnqaeeMqZPn259PGvWLKNp06ZGaGio8f777xtt2rQxvv32W8MwDKNNmzbGihUrMt3v1KlTRs2aNY1Tp04ZhmEYM2bMsLbzxBNPGMuXLzeCg4ONc+fOGTt27DBq1qyZr30BFISzZ88akZGRRsuWLY2QkBDjwQcfNBYtWmSkpqZat0lISDCmTJlitGvXzggJCTHatWtnTJ061UhMTMzQXlxcnDFlyhSjffv2Rt26dY0mTZoY/fv3N3bu3FmQhwXki6SkJOP11183GjRoYLRo0cJYuHCho0MqUmrWrGns2LHD+vjvv/82evbsadStW9d48MEHjW3bttlsv3nzZqN9+/ZGvXr1jKefftr4559/CjrkQuWjjz4yatasmemPYdDf+eXcuXNG//79jYYNGxrNmzc35syZY6SlpRmGQZ/nt+HDhxvDhw+3Pt67d6/RrVs3IyQkxOje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tHXr1kzznSRt3bpV0dHR6tatmzw9PdWpUyd99dVXmf5t9PHx0aRJk3ThwgX17t1ba9eu1bvvvmtzxpG/v7/c3Nx09uxZm31jY2MVFxdnvcT30KFDkqTNmzerTZs2qlOnjrp163bbM6p27typ8+fPq3379hnWubq6qkOHDhny9/bt25WSkpLhEvsLFy6oZ8+eSk5O1vvvv6+PP/5YDz74oBYtWqTPP/9c0vWcee+992rChAm6fPmyEhIS9MYbb6hBgwbq27fvLWM1DCPbr+Hbb7+t6dOnq2vXrpo7d646duyocePG3fIzQr9+/fT9999bzzBMTEzU5MmTM2y3e/dubdiwQaNHj7a+fi+//LJSU1PVunVrvfzyy5Kun0GW1eC3VKlSSkxMtObpdP/8848k6fTp05Ku529XV1c999xzatCggRo3bqw333xTCQkJ1n0aNGigtWvX6vLly1qxYoWCgoJUtWpV7d69W3v37r3tGeYdO3bU+fPntWvXrltuBwCFAeNvxt+Mv1HUUERHocYgPCMG4f+HQTiDcADO58yZM6pTp06mP1nNfdm6dWt5eXnZ5K8NGzYoKCgow+Ap3cqVK1WzZk2FhIRIkiIiInT58uVM51aVpNDQUPXu3VsHDhxQu3bt1KlTJ5v1Xl5e6tSpk7744gstX75csbGxOn78uF577TW5uroqOTlZkqzTqkRHR+u9997TzJkzFRQUpL59++qnn37Ksl927Nghf39/Va1aNdP1nTt3znA223fffae2bdtaB37p/vrrL9WqVUsffvihWrdurWbNmmnEiBGqWbOmdu7cKen6gHH8+PEym82aNGmS3n//fcXExGjSpElydXXNMk7p+iXoWb2GNzpx4oT++9//atCgQRo4cKBatGihV199VS+99JI++ugjXblyJUPb27dv186dOzV27Fj16NFDrVu31ty5czNcQi1dv4x63rx5atu2rTp06KB+/frp4sWLOnr0qAIDA62XbdeqVcvmEu4bde3aVSaTSYMGDdKRI0cUFxenb775xlqcSE5OlmEYOnz4sE6ePKm2bdvq448/Vt++fbV69Wr16dNHaWlpkqSBAwdKku677z599NFHmjRpkjw8PDRp0iS9/PLLSklJUf/+/dWpUydNmTLFOkBPV7lyZZUsWVLbt2+/Zf8DgKMw/s6I8ff/YfzN+LuoY050FFrp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7LPPaunSpXrhhRc0d+5cde7cWQsWLMjyBmhTp05VeHi4Jk+erMGDB8vd3V1PPvlkhsu/b6dJkyZq1qyZJk+erAkTJmS6jclk0owZM9SgQQO9+eabGjlypKpVq6bFixfbnFE2ZswY9evXT19//bX69Omjr7/+WoMGDVJkZGSGNi9duqQFCxZoyJAhNsvffvttJScna+jQoWrevLl69uxps37r1q0qU6aMGjZsmKPjBABnx/ib8XdOMP6G0zKAQmj48OFGmzZtslzfpk0bY/jw4dbHTz31lPHUU09ZH5vNZuPee+81unbtmul+V69eNRo1amT06dMny+dITEw0GjRoYDz22GPGuHHjjJo1axpr167NdNv169cbNWvWNF5//XXrsm+//dbo3LmzUa9ePaNjx47G559/nmG//fv3G88995zRuHFjo0GDBsaLL75oHD58OMuYDMMwrl27Ztx3333GRx99ZLO8Zs2axvTp062Po6KijJo1axrvvfeeddmpU6eMmjVrGitWrDAMwzBSUlKMMWPGGM2bNzfq1atndOjQwZg+fboxY8YMo27dukZsbKwxaNAgo0GDBsapU6es7Zw7d85o2LCh8dxzz2UZ582vyc1ujvfatWvGzJkzjbZt2xp16tQx7r//fuOtt94yrly5kmWbMTExxogRI4xGjRoZDRo0MIYMGWKMGTPGCA0NvWUcO3bsMGrWrGns2LHDMAzDSEhIMJ555hmjTp06xosvvphlzNHR0cZrr71mNG7c2GjcuLExcOBA4/jx4zbbpKSkGLNmzTLat29v1K1b12jXrp3x0UcfGRaLJUN7Fy9eNEJDQ429e/faLD99+rTx5JNPGmFhYcbIkSONlJQUm/Xz5s0zmjdvbqSmpmYZKwDA+cyfP99o166dkZaW5uhQHOb06dPG6tWrjeTkZJvlAwcONLp16+agqPJfWlqa8cADDxgLFy50dCgAkAHj76wx/mb8zfi7+DAZxi2uOQFQKC1YsEBLlizR+vXrc/ytb1Fx5swZ7dmzR23btpWnp6d1+aBBg3Tq1Cl99dVXDowu/xiGoQ4dOqhHjx565plnHB0OACAHrl69qgcffFBDhw5Vp06dHB2OQ/z7779q37692rZtq+7du8vV1VU//fSTFixYoPHjx+uRRx5xdIj5Yt26dZo4caLWrFlj87kFAOD8GH8z/mb8XTww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NIbevXurbdu2Sk5OztUxVKpUSY8//rh++eUX/fPPP5Iyjnv/+ecf9e3bV02aNFH9+vX1+OOPW888X7lypSIjIyVJbdu2tebz8PBwjRs3Tk8//bTq1aunkSNHZjkl3MaNG9WhQweFhITosccesxnfZzUty42fHcLDw3XmzBl99dVX1m0z22/btm3q0aOHwsLCrFcO/PvvvzbPVbt2be3du1ePP/64QkJC1KZNG82fPz9XfQvYC0V0wAl17tzZOqVLuoSEBG3dulVdunTJsP3bb7+t6dOnq2vXrpo7d646duyocePGadasWdZtPvjgA82ePVuPP/64PvnkE7377ruKiYnR4MGDbRJ9dHS03nnnHfXu3Vvz5s1TpUqVNHz48FvOCxceHq5SpUrp22+/tVl++fJlbd261XoWenZjyKlff/1VzzzzjDw9PTVt2jS98cYb2rVrl3r37q2rV69Kkj7++GMtWbJE/fv314IFC/Tkk09q/vz5mjNnTq6fFwDg/C5fvqz9+/erTZs2MplMmW4TEBCgZs2a6YcffrBZPnfuXD300EOaPn26OnTokGG/VatWacSIEWrYsKFmz56tDh06qF+/frJYLLeMaf/+/Zo/f74GDRqkWbNmydXVVQMHDlRsbKwk6dChQ3rmmWcUEBCgqVOnas6cOWrUqJFmzpyp77//Ppc9YcvFxUX33Xef9u3bl2FudOn6WX2vv/662rdvr48//liRkZHasWOHhgwZIun6tCm1a9dW7dq19eWXX6pOnTrWfWfOnKnhw4frzTffVGhoaKbP//333+vPP//U+++/r+HDh2vz5s168cUXb9t36erUqaM333xTkvTmm29mOo2LYRjq27evPvnkEz322GPWz0jTpk3LsP26dev0ww8/aNSoUZoyZYouXryogQMHZjseAIBjGIahn3/+Wffdd5+8vLwy3aZz587q37+/vL29c/W5IDY2Vr/++qvatm0rDw+PTPdxc3PT7Nmzdd999+X6WJo3by7peg6+WVpaml566SUlJydr4sSJmj17tgICAvTyyy/r5MmTat26tV5++WVJ1/Nwv379rPsuXrxYISEhmj179i2vEB85cqR69+6tGTNmyMfHRy+++KKioqKyHX/6NDWtWrXKcgqXVatW6bnnnlP58uU1ZcoURUZG6o8//tDjjz+uS5cu2RzvK6+8os6dO2ve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trPGJOm1115TfHy8pk+f7sTsAABAbqjfAAC4Foc00Xv16qVevXopMTFRGzdu1LfffqsHHnhAtWrVUs+ePXXXXXfRQAcAwAm++eYbrVmzJtsHcEm6//77dc899/AhHC5p8U/9nZ0CADgV9Rsl1RPzZzo7BQAoEm6ODObr66vevXtr8eLF2rFjh5588kn9/vvv6tGjh/r27asPPvjAkZsDAADXUaVKFf3www85lm/YsEG1atVyQkYAAOB6qN8AALgWhxyJnhtfX1/dc889uueee7Rz50699tprmjFjhgYOHFhUmwQAAP8ycuRIPffcc9q6dasaNmwoSYqKitLBgwe1ePFiJ2cHAAByQ/0GAMC1FEkT3Wq16pdfftF3332njRs3Kjk5WZ07d9ZLL71UFJsDAAB56NKli9auXau1a9fq+PHjKl++vFq3bq0333xTwcHBzk4PAADkgvoNAIBrcVgTPSMjQz///LO+//57bdq0ScnJyWrfvr3Gjx+v//znP/Lw8ChwzOjoaE2bNk07d+6Up6enunfvrhdeeEGenp46c+aMJkyYoH379ql69eoaO3as2rZt66jdAQCg1AgJCVFkZKTi4+Pl6+srNzc3GQwGZ6cF5OmTuXuUnGCWt5+H+o4Ic3Y6AOAU1G+URDvXfKG05BR5envp1nt7OTsdAHAYhzTRX3rpJW3btk3Jyclq06aNRo0apS5dusjHx6fQMa1Wq0aMGCF/f399+OGHio+P19ixY+Xm5qZRo0Zp6NChatCggdasWaONGzdq2LBh+uabb1S9enVH7BIAAKWC1WrV4sWL9d577ykhIUEbNmzQW2+9JW9vb40fP75QX3IDRW3TR0d0KTpJQVV8aKIDKJOo3yipDmz5QYmXLss3qAJNdAClikMuLHr+/Hk999xz2r59u95++2317t3brga6JJ04cUL79u3TjBkzdNNNN6lVq1YaMWKEvvrqK+3cuVNnzpzRlClTVK9ePT311FNq0aKF1qxZ44jdAQCg1FiwYIG++OILvfrqq7YP3Pfcc49++uknvf76607ODgAA5Ib6DQCAa3FIE/3DDz9U//79FRQU5IhwkqTg4GC98847qlSpUrbliYmJ+v3339W4cWN5e3vbloeFhWnfvn0O2z4AAKXBZ599pilTpqhjx462U8Bvv/12vfbaa1q/fr2TswMAALmhfgMA4FqK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qWrVqrbljzzyiMLCwjRixAjbsrfeekt79+7Ve++9l6/tUb8BAK6OGp4T9RsA4OquV79L7JHojRo1kru7u/bt26dWrVpJkvbs2aPQ0NDrNtAlyd3d3bauPd9kAQDgSFarVZmZmbYviF1dQc4My2vd/JxBloX6DQBwVdTwvFG/AQCuKr/1u2RU91x4eXmpd+/emjRpkqZPn66///5by5cv14wZM/J1fzc3txJxdAAAAK6sSpUqunz5sjIyMmxvOmJiYlS+fHn5+/vnWDc2Nvupe7GxsapcuXK+t0f9BgDAMYqzhlO/AQAlnf0TiDlRZGSkmjRpokceeUSTJ0/W8OHD1bVrV2enBQBAmXH1mWFZ8jozrHnz5tq7d69trjmr1arffvtNzZs3L86UAQCAqOEAABREiZ0THQAAuIaXX35Zv/32m+3MsNGjR2vGjBnq2rWrYmJi5Ofnp/LlyysxMVFdunRRjx491K9fP61evVrffvutvvvuO3l7ezt7NwAAKHOo4QAA5A9NdAAAYJeUlBRNmjRJ3333nXx9ffX4449r0KBBkqSQkBDNmDFDffr0kSTt379fEydO1PHjxxUSEqLJkyercePGTsweAICyixoOAED+0EQHAAAAAAAAACAPJXpOdAAAAAAAAAAAihJNdAAAAAAAAAAA8kATHQAAAAAAAACAPNBEh8P8/fffmjBhgtq2batmzZqpR48eWrZsmTIyMvK8z4ABAzRv3rx8xY+IiNDatWvtznPXrl0KCQmxOw7gbPHx8Xr11VcVERGh5s2b684779R7772nzMxM2zoJCQl67bXX1LFjR4WGhqpLly6aM2eOkpOTc8S7ePGipk+frk6dOik0NFRt27ZVZGSkzp8/X5y7BVxXWlqaxo4dq1atWqlt27Zavny5s1MqVcxms3r27Kldu3bZlp05c0aDBg1SixYt1L17d/34449OzLBki46O1ogRI9S6dWu1a9dOM2bMUFpamiTG2ZFOnTqlxx9/XC1btlSHDh30zjvv2G5jnIvG4MGDNWbMGNvvBw8eVN++fdW8eXPde++9OnDggBOzgyugfhct6nfRon4XD+p38aN+5x9NdDjEX3/9pb59++rs2bOaM2eOvv76aw0dOlQffvihnnnmmWxNvavNmzdPjz32WL628emnn6p79+6OTBsosS5fvqy+ffvqwIEDmjZtmr766isNHz5cS5Ys0bRp0yRJiYmJ6t+/v3bt2qUpU6Zo/fr1GjdunDZv3qyHH35YSUlJtnjR0dG67777tGfPHk2dOlUbNmzQ3LlzdfnyZT344IMymUzO2lUgh9dff10HDhzQ+++/r4kTJ2r+/Pn69ttvnZ1WqZCWlqYXXnhBR48etS2zWq0aOnSoKlWqpDVr1ujuu+/WsGHD+IKtEKxWq0aMGKGUlBR9+OGHevPNN7VlyxbNmTOHcXagzMxMDR48WBUqVNBnn32myZMna9GiRfryyy8Z5yLy9ddfa9u2bbbfk5OTNXjwYLVq1Upr165Vy5Yt9dRTT+X6JT7KDup30aF+Fy3qd/Ggfhc/6ncBWQEHeOaZZ6wPPfSQNSMjI9vyc+fOWVu0aGFduXKlkzLLaefOndYGDRo4Ow3ALuPGjbP26NHDmpqamm35pk2brCEhIdYTJ05YX3nlFWvXrl2tSUlJ2dYxmUzW9u3bW1999VXbshEjRlh79eplTUtLy7ZuRkaGtVu3btZly5YV3c4ABZCUlGQNDQ217ty507ZswYIF1ocfftiJWZUOR48etfbq1ct61113WRs0aGAb459//tnaokWLbK8ljzzyiHXu3LnOSrXEOnbsmLVBgwbWmJgY27Ivv/zS2rZtW8bZgaKjo63PPvusNSEhwbZs6NCh1okTJzLOReDy5cvW//znP9Z7773XOnr0aKvVarV+8skn1oiICGtmZqbVarVaMzMzrV26dLGuWbPGmanCiajfRYf6XfSo38WD+l28qN8Fx5HosFtsbKw2b96sJ598UkajMdtt1atXV58+ffTxxx9r7dq16tevn4YOHaqwsDB98cUXOaZzee+999SuXTvdfPPNeuWVVzRgwADbFC5XT+cyYMAALVq0SI8//riaNWumbt266YcffrDFOXbsmO0UoNDQUPXv31/Hjx8vhtEAip7ZbNbXX3+thx56SJ6entlu69ixo9577z3VqFFDa9eu1cCBA+Xt7Z1tHT8/Pw0cOFBr166VxWJRfHy8Nm7cqGeeeUYeHh7Z1jUajXr33Xc1YMCAIt8vID8OHz6sjIwMtWzZ0rYsLCxMv//+e55nPSF/du/erfDwcH300UfZlv/+++9q3LhxtteSsLAw7du3r5gzLPmCg4P1zjvvqFKlStmWJyYmMs4OVLlyZc2ZM0e+vr6yWq3as2ePfvnlF7Vu3ZpxLgKvvfaa7r77btWvX9+27Pfff1dYWJgMBoMkyWAw6Oabb2acyzDqd9Ghfhc96nfxoH4XL+p3wdFEh93++OMPWa1WhYaG5np7WFiYDh8+LLPZrL1796p+/fr6+OOP1bZt22zrffHFF5o7d67Gjh2rjz76SGfPntUvv/yS53YXL16sHj166KuvvlLDhg01YcIEZWZmKjMzU08//bRq1Kihzz//XKtXr5bFYtHMmTMdut+As5w+fVrJycm5PucMBoNuvfVWnTlzRomJidd8XsbFxen06dM6cOCAMjIy1KpVq1zXrVatmsqVK+fQfQAKKyYmRhUqVMj2hU+lSpWUlpamuLg45yVWCvTv319jx46Vl5dXtuUxMTGqXLlytmUVK1bUhQsXijO9UsHf31/t2rWz/Z6ZmamVK1fq1ltvZZyLSEREhPr376+WLVuqW7dujLOD7dixQ7/++quGDBmSbTnjjH+jfhcd6nfRo34XP+p30aJ+Fw5NdNgtPj5e0pXCkpus5fHx8TIYDHrmmWdUr149BQUFZVvvv//9rx555BHdeeeduummm/Taa6+pfPnyeW63ffv26tOnj2644QY988wz+uuvvxQTE6PU1FT169dPY8aM0Q033KAmTZronnvu0bFjxxy0x4BzZc1P7ufnl+c6WR9GAgICcr0963kZFxeny5cv51j3k08+UcuWLW0/TzzxhCNSB+yWkpKS44yJrN/NZrMzUir18hpzxtt+M2fO1MGDB/X8888zzkVk7ty5Wrx4sQ4dOqQZM2Ywzg6UlpamiRMn6uWXX87xnp1xxr9Rv4sfz8OiQ/0uetTvokP9Ljx3ZyeAki+r8RYbG6uqVavmuP3vv/+2rVexYsU8G+NHjhzR4MGDs8W98cYb89xunTp1bP/39fWVJGVkZMjb21sPPvig1q1bpwMHDujEiRM6ePBgjlOvgJIqMDBQ0v9/gXWtdWJiYlS7du0ct2c9LwMDA5WQkCBJSkhIsH25deedd6p169aSpBUrVujIkSOOSh+wi6enZ443cVm/X+uLVxSep6dnjqMEzWYz422nmTNn6v3339ebb76pBg0aMM5FJOuMrLS0NL344ou69957lZKSkm0dxrlw5s+fr6ZNm2Y7OjNLXq/VjHPZRf0uftSVokH9Lh7U76JD/S48muiwW2hoqIxGow4cOJBrE/3AgQMKCQmRh4dHjvmbr2Y0GmW1WrMt+/fvV8ttegmr1aqkpCTdd999qlChgiIiItSzZ0+dOHFCy5cvL8BeAa7rhhtukJ+fn/744w81a9Ysx+3PPPOMBgwYoMDAQP3xxx+5TtNy4MABBQYGqlatWgoICJDRaNRvv/2mzp07S7ryxVTWl1N5Hc0OOEOVKlV0+fJlZWRkyN39ytuYmJgYlS9fPs8zomCfKlWq5DibKzY2Nsepnsi/qVOnatWqVZo5c6a6desmiXF2pNjYWO3bt89W0ySpfv36Sk9PV3BwsE6cOJFjfca54L7++mvFxsba5rjO+tC9YcMG9ezZU7GxsdnWZ5zLNup38aOuOB71u2hRv4sH9bvwmM4FdgsKClLnzp21cOFCWSyWbLf99ddf+vTTT3X//fdfN079+vX1xx9/2H5PTEzUqVOnCpzP7t279ffff+uDDz7QE088odtuu03nz5+/ZkMeKEnc3d3VvXt3ffjhhzm+Jd68ebM2b96sypUrq0+fPlq2bJmSkpKyrZOYmKh3331Xffr0kbu7u4KCgtSlSxctXbpUGRkZObYXHR1dpPsDFESjRo3k7u6e7eI2e/bsUWhoqNzceFtTFJo3b64//vhDqamptmV79uxR8+bNnZhVyTV//nytXr1as2fPVo8ePWzLGWfHOXv2rIYNG5atfh04cEBBQUEKCwtjnB1kxYoV+vLLL7Vu3TqtW7dOERERioiI0Lp169S8eXPt3bvX9v7barXqt99+Y5zLMOp38aOuOBb1u+hRv4sH9bvwqFZwiHHjxik+Pl5PPvmkfv31V50/f17ff/+9Bg4cqNatW6t///7XjTFgwAB98MEH+u6773T8+HGNHTtWycnJtqsC51dgYKCSk5O1ceNGnT17Vp988kmuzUagJBs+fLgSExP1+OOPa/fu3Tp9+rQ++eQTjRkzRgMHDlT9+vU1bNgwVapUSQMGDNBPP/2k8+fP66efftLAgQMVHBys4cOH2+JNmDBB8fHxGjBggLZt22a7sO+IESP0ySef6Oabb3bi3gL/z8vLS71799akSZO0f/9+bdy4UcuXL9fAgQOdnVqp1bp1a1WrVk2RkZE6evSoli5dqv379+u+++5zdmolzvHjx7Vw4UI9+eSTCgsLU0xMjO2HcXac0NBQNWnSRGPHjtWxY8e0bds2zZw5U08//TTj7EA1atRQ7dq1bT8+Pj7y8fFR7dq1dccdd8hkMmnatGk6duyYpk2bppSUFN15553OThtOQv0ufrzeOQ71u3hQv4sH9bvwmM4FDlGlShV9/PHHWrhwoV588UVdunRJtWrVUr9+/fTII4/k6+iCHj166NSpU5o4caLS0tL0wAMPqEaNGrlO23ItLVu21NChQzV58mSlpaUpJCREL7/8ssaNG8cRtSg1goODtWrVKs2bN08vvvii4uLidMMNN2jEiBF68MEHJUk+Pj5asWKFli5dqkmTJik6OlpVqlRRjx49NHjwYHl7e9viVapUSZ9++qneeecdTZ8+XefPn5ePj49atWqlFStW2OZHB1xBZGSkJk2apEceeUS+vr4aPny4unbt6uy0Si2j0aiFCxdq3Lhx6tOnj2rXrq0FCxaoevXqzk6txNm0aZMsFosWLVqkRYsWZbvtyJEjjLODZD1mp06dqgceeEBeXl4aMGCABg4cKIPBwDgXA19fXy1ZskQTJ07Uxx9/rJCQEC1dujTbew+UPdTv4kX9dhzqd/Ggfjsf9fvaDFbmuICL2L17t2rVqqVq1apJunKR0FtvvVULFixQeHi4k7MDAAAAAAAAUBZxJDpcxsaNG7V3715NnjxZPj4++uCDD+Tr66sWLVo4OzUAAAAAAAAAZRRHosNlJCYmasqUKdq2bZvS0tLUsmVLjRs3TvXr13d2agAAAAAAAADKKJroAAAAAAAAAADk4fpXewQAAAAAAAAAoIyiiQ4AAAAAAAAAQB5oogMAAAAAAAAAkAea6AAAAAAAAAAA5IEmOgAAAAAAAAAAeaCJDgAAABSjkJAQhYSE6Pz58zluW7VqlUJCQjRv3rxizenUqVMKCQnRTz/9lOvtjz76qCZNmnTNGPPmzdOAAQOKIDsAAJyP+g2UbTTRAQAAgGJWrlw5bd68OcfyjRs3ymAwFHs+tWvXVmhoqL777rsct126dEm7du1Sz549iz0vAABcCfUbKLtoogMAAADFrFWrVjk+hCcmJmrv3r1q3LixU3Lq2bOnNm3apMzMzGzLv/vuO1WtWlVhYWFOyQsAAFdB/QbKLproAAAAQDHr1KmTdu/ercTERNuyrVu3qlWrVvLx8cm27urVqxUREaGWLVtqwIABOnLkiO226OhojRgxQrfccouaNm2qe+65R3v27JEknT17ViEhIfruu+/UuXNnhYaG6qmnnlJcXFyuOd155526ePGifvvtt2zL169fr+7du8tgMGjTpk3q3bu3QkND1apVK73wwgtKSkrKEWvt2rWKiIjItmzAgAHZTnO/1n4BAOCKqN/Ub5RdNNEBAACAYtagQQNVqVJF27dvty37/vvv1blz52zrbd68WfPnz9eECRP02WefKSwsTAMHDlR8fLwk6cUXX5TFYtHq1au1bt06ValSJcfcp4sXL9bs2bO1cuVKRUVF6d133801pypVquiWW27Jdkr4xYsX9csvv6hnz546ffq0nn32WfXv31/r16/XnDlz9PPPP+vjjz8u8P5fb78AAHBF1G/qN8oumugAAACAE3Tq1Ml2SrjZbNZPP/2kTp06ZVvnnXfe0VNPPaWOHTuqTp06eu6551SjRg198cUXslqt6ty5syZMmKB69eqpfv36euihh3Ts2LFsMUaMGKFmzZqpefPmuuuuuxQVFZVnTnfddZc2btxo+33Dhg2qV6+eGjZsqMzMTI0fP17333+/atasqbZt2+q2227T0aNHC7zv19ovAABcGfWb+o2yyd3ZCQAAAABlUadOnTRixAhlZGRox44datCggSpWrJhtnePHj2vmzJmaPXu2bVlaWpr+/PNPGQwGPfjgg/rmm2/022+/6eTJkzpw4ECOOVFr165t+7+vr6/S09PzzKlr166aPHmyoqKiFBoaqvXr19suSFanTh15eHho0aJFOnr0qI4ePapjx47p7rvvLvC+X2u/AABwZdRv6jfKJproAAAAgBNkXehrz5492rhxo7p06ZJjHYvForFjx6pNmzbZlvv6+iozM1OPPfaYTCaTunfvroiICKWnp2vYsGHZ1i1Xrly+cwoICFC7du30/fffq1q1atqzZ49mzJghSTp8+LAefPBBRUREqFWrVho0aJDef//9XOMYDIYcyzIyMvK1XwAAuDLqN/UbZRNNdAAAAMAJ3N3d1b59e23evFlbtmzR4MGDc6xz44036sKFC9mORouMjFTnzp1Vq1Yt/fLLL9qxY4eCgoIkSR9++KEkyWq1Fjqvnj17auHChapRo4aaNWummjVrSpI+//xz3XLLLZo1a5Zt3VOnTqlevXo5YpQrVy7bBcusVqvOnj2br/369ynxAAC4Euo39RtlE3OiAwAAAE7SqVMnffLJJ6pYsaJq1aqV4/ZHH31U77//vtat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nZoGAI5CDaeGFxY1nBoOwHmo39TvwqJ+U79LC5rocIqMjIxcf3JjtVptt6enpysmJkazZs2S2WzOcVpOXFycNm/erN69e0uS7rnnHkVFRemPP/7Itl5gYKDOnz+fbVl6err++usvnTlzRpJ0+vRpJSUlKSoqSt26dVOTJk3UrVu3HEXy306cOKEDBw6oa9eu19wXs9ms8+fPa9q0aapUqZLuvPNO23qjRo3SmjVrNHjwYC1fvlyRkZE6evSoRo4cabsoxksvvaTjx49r8uTJevvtt9W4cWONHj3aVvQOHz6sQYMGKTAwUG+++aYWLVqkVq1aaf78+Vq/fv0196EwYypJv/76q/766y8tWLBAI0eOlNFo1KRJkzR37lz16tVLixcv1h133KHp06drwYIFtvu98cYbWrhwoR544AG98847mjp1quLi4vTss88qJSXlujnm9/G0ZMkSTZgwQW3atNHixYv10EMP6e2339aECRPyjP3yyy/r/fff18MPP6wFCxaoUqVKua7/119/aenSpXr22Wc1b948GQwGjRgxQhcvXlSTJk308ssv2+JlnRr5bxUqVJAknTt3Ltvy06dPS5LtsXno0CEFBgZqxIgRCgsLU8uWLfXcc8/p77//tt2nRYsW2rp1q6Kjo7Vx40YlJyeradOmOnPmjNauXasRI0Zca0gVEREhi8Wi77///prrASh7qOHUcGp4TtRwAK6O+k39pn7nRP1GQTCdC4rduXPn1KRJk3yv/8svv+S6/gsvvKB69eplW/bll18qMzNTd999tySpa9eumjJlilavXp3tYhz33nuvFi9erKVLl+q+++5Tamqq5syZo4SEBHl7e0uS7Rvns2fPasyYMXJ3d9e6des0evRomc1m2+lm/5ZVQJs1a5bjtnXr1uV4A2AwGDRz5kzbPFlms1lJSUkaP368unfvLklq3bq1EhMT9eqrryo2NlbBwcHavXu3hg4dapujq3Xr1goMDLR983748GHddtttmjlzptzcrnxfdvvtt2vz5s3atWuXevTokdeQF2pMpSuFdMqUKapataok6eTJk/r444/1wgsvaPDgwZKktm3bymAwaMmSJerfv78qVKigv//+W88//3y2b4c9PT01fPhwHTly5Jqn8uX38ZSQkGB7k5B1elTbtm0VGBio8ePH69FHH83xrfDp06f12WefafTo0Xr00UclSe3atVNsbKx+/PHHbOtmZmZqwYIFtsekp6enBg0apH379qlTp06qX7++JKl+/fq2//9bly5d9MYbb2j06NGaMmWK6tatq19//dV2SmJycrKkK3/b6Oho3X///XrkkUd0/PhxzZ07VwMGDNBnn30mb29vPfzww9q3b586dOggX19fTZ06VVWqVNHIkSN1//33KzAwUGPGjNHevXsVHh6uyMjIbHPseXt7q169etqxY4ceeOCB644vgLKBGr4u2zJqODU8CzUcgCujfq/Ltoz6Tf3OQv1GQdBER7ELDg7WokWLcr3tmWeeybGsSZMmmjx5sqQr3yKbTCZt375db775ppKTk/X888/b1l2zZo3Cw8Pl4eEhk8kk6cq3eV999ZVGjx4tX19fSdLw4cNlsVg0d+5czZo1S+XKlVPfvn3VqVMn2+k8t9xyixYvXqzw8HBbUW/Xrp0uXbqkuXPnqm/fvrmeynbmzBn5+/vbLi5xtY4dO2ro0KG2fbl06ZLWr1+vF198USkpKbr//vvl4eFhe8GOjo7WyZMn9eeff2rLli2SrhR46crpRfPmzdPBgwfVrl07tW/fPtvcdL1791bv3r2VlpamkydP6tSpUzp06JAsFovS09Pz/Pv8W37HVLpydEFW8ZauvJmxWq2KiIjI9q10RESEFi1apD179qhz586aNWuWpCunx504cUKnTp3Ksb95ye/jae/evUpNTc01F0n66aefchTwXbt2yWq16o477si2vGfPnjkKeIUKFbK9oaxZs6akK28c8isoKEjLly/X2LFjbfPd1a5dW88//7xGjx5tK7BTp06V0Wi0vUls1aqV6tevr/79+2vdunXq37+/ypcvr/nz5ys1NdV22uWBAwf0ww8/6LvvvtOcOXN04cIFLVy4UJMnT9bcuXNzzG1Yo0aNHKfLASjbqOHUcGp47qjhAFwZ9Zv6Tf3OHfUbBUETHcXOw8NDoaGhed72bz4+PjnWb9u2rZKTk/XOO+9o4MCBqlixog4ePGj75vqWW27JEeeLL75Q//79JUnu7u568cUXNXz4cJ05c0aVK1eWv7+/HnroIdv8aBUrVlTHjh1zxGnfvr1+/vln27fR/5aYmJjnVbMDAwNz7EuHDh30999/a+bMmbr33ntlNBr1ww8/aPr06Tpx4oR8fHzUsGFD25uIrFPJ3nzzTS1evFjr16/Xhg0b5Obmpttuu01TpkxRjRo1lJqaqqlTp+rzzz9XRkaGatasqZYtW8rd3d0W43oKMqbSlb/V1eLi4iQpz2/co6OjJUlRUVGaPHmyoqKi5OXlpfr166t69erZ9jcv+X08ZeWS9W38v119GlaWrLnI/n117Nyulp3198mS9eauoHPfhYaG6ssvv1R0dLRSUlJUu3Zt25EVWY/Nli1b5rhfWFiY/Pz8bBc8yVK+fHnb/2fOnKnHH39cgYGB2rBhg0aNGqV69eqpX79+tm/fr+bl5VWgNyAASj9qODU8CzU8J2o4AFdF/aZ+Z6F+50T9Rn7RREeJ1bRpU33yySc6e/asKlasqLVr18rb21sLFy60nTqV5eWXX9ZHH31kKza7du2S2WxWu3btbKf1ZGRk6H//+5/uueceSVfmFjtz5ozt9yxpaWkyGo25XoxEuvJtaEFf9Jo2baqff/5Zly9fVnJysu0UsSVLlqhWrVoyGAz68MMP9cMPP9ju4+fnp5deekkvvfSSTpw4oU2bNtm+0Vy6dKmmTZumDRs2aM6cObrttttsBaZNmzb5zqsgY5qbrCMB3n///RzFXZKqV6+uxMREPfHEEwoJCdHXX3+tunXrys3NTdu2bdOGDRvynev1ZOXyxhtvqE6dOjlur1SpUo5lVapUkSTFxsba3lBIKrILfVy+fFlbt25V+/btbduWrryRMhgMatSokRISErRhwwY1a9ZMDRo0sK2TmZmp9PR02ymJ/7Z9+3YdP35cixcvliRdvHhRgYGBkq68MYiNjc1xH5PJZJsjDgAciRpODS8Iajg1HIBroH5TvwuC+k39Lm24sChKrP3798toNKpWrVoym8368ssvFRERoTZt2ig8PDzbT+/evXX48GHt27dPkrRhwwZNmDAh2ylVa9askclkss1vtnPnTo0ZM0YnT560rZOZmakNGzaoZcuWeV71u3r16kpOTlZ8fHy+9yUqKkoBAQGqUKGCDhw4oLS0NA0ePFg33HCD7dvUrOJttVp17tw5tW/fXt9++60kqW7dunryySd122232S7WsmfPHoWHh6tz58624n3gwAFdunQpX9/MFnRMc9OqVStJVwpTaGio7efSpUt66623FBcXpxMnTiguLk4DBw5U/fr1bW8Utm/fLqng3yLnpXnz5ipXrpyio6Oz5eLu7q7Zs2fnespUWFiYjEZjjgt7fPfddwXevtFovO46VqtVkZGR2eInJSXp448/1i233KKAgAB5eHho6tSpWrJkSbb7bt68WampqQoPD88RNzMzU2+88YaGDRtmO0KjYsWKiomJkSTFxMTk+s3+hQsXVKNGjQLtJwDkBzWcGl4Q1HBqOADXQP2mfhcE9Zv6XdpwJDpcXmJiYrYiYTabtXnzZq1Zs0YPPPCAgoKC9M033yguLk49e/bMNcbdd9+tt956S6tXr1aLFi3Ur18/ffzxxxozZozuu+8+HT58WLNmzVL37t3VunVrSVK/fv20evVqPf3003r22Wfl5eWl//73v/rf//6nDz/8MM98b7/9dklXCmjWXF9ZLl26lG1fUlJStG7dOu3YsUMvvPCCjEajmjRpInd3d82cOVOPPfaYzGaz1q5dq61bt0q6cmGLkJAQVa1aVa+88ooSExN1ww036MCBA9q2bZueeuopSVcuqrJ+/XqtWrVK9erV0+HDh7Vo0SIZDIZ8XW1748aNBRrT3ISEhKhXr16aMGGCzp07p6ZNm+rkyZN68803VbNmTdWpU0fJycny9fXV4sWL5e7uLnd3d23YsEGffvqpbYwcoUKFCnriiSf01ltvKTExUeHh4YqOjtZbb70lg8Gghg0b5rhPrVq1dO+992r27NlKT09Xw4YN9f3339vmivv3kQHX4ufnJ0naunWrAgICct1eUFCQevTooTlz5qh8+fIKCgrSkiVL9Pfff9vmrPP09NSTTz6pefPmqVKlSmrfvr3+97//ad68eerUqVOuRzl8/vnnSktL03333Wdb1qFDB7333nuqUKGC3n//fXXq1CnbfRISEnT06FE99thj+d5HAPg3ajg13BGo4dRwAMWL+k39dgTqN/W7tKGJDpd38ODBbFcm9vT01A033KDnn39ejz/+uKQrpzwFBASobdu2ucaoXr26brnlFq1fv16RkZFq0KCBlixZolmzZunpp59WpUqV9PTTT9uKn3Tl1KIPP/xQs2bN0iuvvKKkpCSFhobqvffeU/PmzfPMt1atWmrSpIm2bduWo4Bv27ZN27Zts/3u7e2tG2+8URMnTrSdklW7dm3NmjVL8+fP1zPPPKOAgAC1aNFCK1as0IABA/Trr78qJCRE8+fP1+zZs/XWW2/p8uXLqlatmoYNG2abb2zMmDFKT0/XnDlzZDabVbNm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pCZNmtjuO3/+fI0ePVovv/yyWrZsmev2169frz/++EOvvvqqRo8era1bt+rJJ5+87thladKkiV5++WVJ0ssvv5zrNC5Wq1VPP/203nnnHfXt29f2HmnOnDk51t+wYYM2bdqk8ePHa/bs2YqNjdXw4cPznQ8AwDmsVqt+/PFHtWnTRl5eXrmu0717dw0dOlTe3t6Fel8QHx+vX375RZ06dZKnp2eu93F3d9fChQvVpk2bQu/L7bffLulKDf63zMxMPfXUU0pJSdHrr7+uhQsXKjAwUM8884xOnTqlDh066JlnnpF0pQ4PGTLEdt8PP/xQoaGhWrhw4TXPEB83bpwGDhyoefPmycfHR08++aSioqLynX/WNDXt27fPcwqXdevW6bHHHlO1atU0e/ZsRUZGau/evXrggQd08eLFbPv73HPPqXv37lq6dKluvvlmvf766/rhhx/ynQ/gaEznArigDh06yMvLK9uULt9//70qVqyosLCwbOuePHlSH3/8sV544QUNHjxYktS2bVsZDAYtWbJE/fv3V4UKFfT333/r+eefz3Z0lqenp4YPH64jR47YTudKSUnRtGnTbMW/Tp066tixo7Zt26Z69erlmq+Hh4d69eqlTz/9VJMnT1b58uUlSV9//bUkqXfv3pKU7xwKatasWbrxxhu1ZMkS23QyzZs3V48ePbRmzRo99NBD2r17t5o2bWqbN7V169by8vKSn59fobYJACgZsi6uVaNGjWuuV7t2bW3atEnx8fEKCAiQJLVq1UqPPvqobZ1/f5B866231LFjR73yyiuSpHbt2qlcuXKaNWvWNbeVkJCg/2PvzsObKtM+jv+SlJZuaSkUhMKwyqYVEARGQRbBBVGh6oyiuCI6iuhYXNhGHRBGEUYUBFFABQcXQMZxQ9BBENkGRYosL5QdpJalTZe0oWneP7CR0KakzWmTtt/PdfWCnpzc586Tc3ond06es3TpUvc0JxEREbrzzju1fv16XXPNNdq5c6cuv/xyTZkyxT1f+RVXXKFvvvlGGzZsOO/c7b6qV6+eTp8+rYyMDNWrV8/jts2bN6t27doaPny4QkNDJZ1pKqSkpMjlcqlVq1bu+dPPrd9DhgzRtddeW+q269Spo7lz5yoiIsL9+yOPPKLVq1erT58+5809KirKPXVLq1atSpzGZfXq1fr+++81bdo095hdccUV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oX379mnatGnFbnM6nXr22WeVl5enYcOG+Rzzggsu0B/+8AetWLHCY/lXX33ld76bN29Wt27d1K9fP3cDfdu2bTp58qRhNfuDDz5Qenq6br/99hJvf/HFF3XzzTfL5XIpPDxcffr00dNPPy1J7rP9Smo8+Grt2rUeFzRdvny5CgoK1K1bN0ln6vvZF1iXil9o7Xxzznbt2lUFBQUe0+NJck8ld+51ZgAAVdN9992njIwMvfLKK8VuS09P17x589SqVSv3RbDL87rgkUce0aFDh/TSSy+VeDZ0Zmam+0Pa8jh27Jg++ugj9e7dWw0bNix2+48//qjLL79cW7dulclkUrt27fTXv/5VrVu3NqQuF31gXiQnJ0erVq3yqMtFeRZJTU0t9qF4aTk0b95c8fHx+vTTTz2WHzp0SFu2bNGll15a7vyBysCZ6EAQGzBggB588EGZzWaNGzeuxHXatGmjG2+8UePHj9eRI0d08cUXa9++ffrnP/+pxo0bq1mzZsrNzVVUVJRmz56tkJAQhYSEaPny5e6vnhk132d0dLT69++v2bNn68iRIx5X/m7evHm5cujdu7c+++wzdejQQU2bNtXSpUt14MABj3WKLqqanJysG2+8UU6nU/PmzdNPP/3kvir5ZZddpnnz5qlevXrq1KmT0tLSNH/+fHXt2tX96ToAoHrq2bOnnnnmGb300kvasWOHbr75ZtWvX1+HDx/WokWLtGPHDr3wwgtq27atzzFNJpNGjhypUaNG6dlnn1X//v21c+dOzZw5U5J/b2QvueQSffHFF1q0aJFatmypnTt3atasWTKZTGWu2dnZ2dqyZYukMx9Ynzp1St99950++OAD3XjjjR7zn56te/fumj9/vp555hndeOONOn36tN566y3Fxsa6p0GzWq368ccftW7dOrVv375MeaWnp+vRRx/V0KFDtX//fk2bNk1XXHGF+2z7Pn366JtvvtHkyZPVt29f/e9//9OyZcs8YhRdHHzVqlWKiYkp9vxdeeWV6tatm8aNG6e0tDS1bdtWGzdu1JtvvqnBgweXeDFSAEDV07FjRz322GN65ZVXlJqaqkGDBqlOnTravXu35s6dq/z8fI8Ge3leF/Ts2VPjx4/X5MmTtWXLFg0ePFjNmzdXbm6uNm7cqCVLlig/P1933XXXefPdsWOH+2xsu92uXbt26e2331bt2rX1t7/9rcT7tG/fXrVr19ZTTz2lRx99VPXq1dP333+vHTt2uLdZ9C31FStW6Morr1TLli19HsNatWppzJgxeuKJJxQVFaU5c+YoLy/P/X66W7duql27tv7xj3/oscceU05Ojl599dViU8JZrVZt375dGzduLPatNbPZrCeeeEKjR492v3c/deqUZsyYoZiYGI+LuQPBiCY6EMQuv/xyWa1WNWzYsNQCOHnyZL3xxht6//33dezYMdWtW1cDBgzQ448/LovFoujoaL3++ut66aWX9NhjjykyMlLt2rXTwoUL9cADD+h///tfmb7CXppbbrlF//nPf9S9e3c1adLEvby8OYwePVoFBQV68cUXFRISogEDBig5OdnjQ4UePXpo7ty5mjFjhkaOHKlatWrpoosu0vz5890XSX3ssccUGhqqJUuWaObMmYqOjlbfvn2VnJxsyOMGAAS3e++9V506ddI777yjF198USdPnlR8fLyuuOIKvfDCC+VqqN5www3Kzc3V3LlztWTJEl144YUaO3asxo4d69P8o94888wzOn36tF555RU5HA41btxYf/nLX7Rnzx598803Pl88TZK2b9+uP//5z5LONP4jIyPVunVrPffcc7r11lu93q9Xr156+eWXNW/ePPfFRDt37qx3333X/Yb5jjvu0LZt2/TAAw9o8uTJql+/vs95DRkyRFlZWXrkkUcUGhqqG264QU8++aT76+I333yzDh48qI8//ljvv/++LrvsMr366qseZ85feOGFGjhwoN577z2tWbOm2JltJpNJb7zxhl599VW9/fbbOnnypBo3bqwnnniCN+oAUM385S9/Ufv27fXee+9p0qRJyszMVMOGDdW7d2899NBDxc7uLs/rgjvuuENdu3bVokWLNH/+fB07dkwWi0XNmzfXnXfeqT//+c/uC1OXZsSIEe7/16pVSwkJCerfv7+GDx9e7JohRcLCwjRv3jxNnTpVL7zwgmw2m5o1a6a///3vSkpKknSm0X355Zdr6tSpWrdunebMmePz+MXFxSk5OVnTpk1Tenq6OnTooIULF6pFixaSzjTHX3vtNU2dOlWPPPKIEhISNGLEiGIfcN93332aNGmS7r//fs2fP7/YdpKSkhQZGak33nhDjzzyiKKiotSzZ0898cQTXh87ECxMLmblBwAAAMrs008/Vfv27d1vMKUz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YIA2b94cwMwAAIA31G8AAIILTXQAAKqxF198UQ899JBGjhzpXvb+++9r2LBhmjRpUgAzAwAA3lC/AQAILjTRAQCoxvbv369rr7222PLrrrtOe/bsCUBGAADgfKjfAAAEF5roAABUYy1atNAXX3xRbPk333yjP/zhDwHICAAAnA/1GwCA4MKFRQEAqMYef/xxPfzww1q7dq0uuugiSdKuXbv0v//9T6+99lqAswO8u+rPbZSb5VBEdGigUwGASkf9RlV1cZ+eys+1KywiPNCpAIChaKIDAFCNXXnllfr444+1ZMkS7d27VyEhIWrbtq2ef/55NWnSJNDpAV7dOrJzoFMAgIChfqOq6n7zjYFOAQAqBE10AACquQsvvFDPPPNMoNMAAABlQP0GACB4VEgT/ZNPPtHbb7+tgwcP6uOPP9a7776r+Ph4DR8+vCI2BwAAvLDZbJo3b55SUlJUUFAgl8vlcfu7774boMwAAIA31G8AAIKL4RcW/de//qWXXnpJSUlJOn36tCTp4osv1ty5czVjxgyjNwcAAErx1FNP6aOPPtKFF16oyy67TF27dvX4KSuHw6GBAwdqw4YN7mWHDh3SPffco44dO2rAgAH67rvvSo3x6aefql+/furQoYMeeeQRnTx5ssx5AABQnVG/AQAILoafib5gwQJNnDhRvXv31tSpUyVJN910k2JjY/W3v/1NI0aMMHqTAADAi++//14LFy7UJZdc4nes/Px8JScna/fu3e5lLpdLjzzyiFq3bq0lS5Zo5cqVGjFihD7//HM1atSoWIytW7dq7Nixev7559W2bVu98MILGj16tN544w2/80P18tAV/9LJtBzFNYjU7LVDAp0OAFQq6jeqqrdGPKnsk6cUFVdHw2ZMCXQ6AGAYw5voR48eVcuWLYstb9KkiTIyMozeHAAAKEWDBg1kNvv/xbM9e/YoOTm52NfJ169fr0OHDun9999XRESEWrZsqXXr1mnJkiV69NFHi8VZuHChrrvuOg0aNEiS9NJLL6lPnz46dOgQF0oDAOA31G8AAIKL4dO5dOjQQcuWLfNY5nK5NG/ePEM+RQcAAL576qmn9Nxzz2n16tU6cOCAjh496vHjq40bN6pbt2764IMPPJb/9NNPat++vSIiItzLOnfurC1btpQY56efflKXLl3cvzds2FCNGjXSTz/9VLYHBgBA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+7w96jcAIFhRw72jfgMAgpWv9btqVPcShIeHa9CgQXruuec0adIk/frrr5o3b54mT57s0/3NZnOVODsAAIBgVpYPtTt06KA333xTLpdLJpNJLpdLP/zwgx566CGft0f9BgDAGJVZw6nfAICqzv8JxAJo9OjRuuiii3T33Xfr+eef16OPPqqrr7460GkBAFBjnP2h9tatW7Vy5UrNmzdPd911l6QzZ7Tl5eVJkq699lrZbDa98MIL2rNnj1544QXZ7XZdd911gXwIAADUSNRwAAB8V2XnRAcAAMHBbrfrueee01dffaWoqCjdf//9uueeeyRJbdq00eTJk5WUlCRJ2rp1q5599lmlpqaqTZs2ev7559W+ffsAZg8AQM1FDQcAwDc00QEAAAAAAAAA8KJKT+cCAAAAAAAAAEBFookOAAAAAAAAAIAXNNEBAAAAAAAAAPCCJjoM8+uvv2r8+PHq0aOHLrnkEl1//fWaO3euCgoKvN5n6NCheu2113yK37dvXy1dutTvPDds2KA2bdr4HQcItMzMTP3jH/9Q37591aFDB1133XV6++23VVhY6F4nKytLL774ovr06aPExET1799fr7zyinJzc4vFO3HihCZNmqSrrrpKiYmJ6tGjh0aPHq2jR49W5sMCzis/P19jxoxRly5d1KNHD82bNy/QKQWNFStWqE2bNh4/I0eODHRaAeVwODRw4EBt2LDBvezQoUO655571LFjRw0YMEDfffddADMMnJLGZuLEicX2oYULFwYwy8qVlpamkSNHqmvXrurZs6cmT56s/Px8Sew3pY1NTd9v4Bvqt3fU7+Ko395Rv4ujfntH/TZOSKATQPXwyy+/6LbbblOLFi30yiuvqEGDBkpJSdHLL7+s9evX64033pDZXPwzm9dee021atXyaRuLFy9WRESE0akDVdKpU6f05z//WfXr19cLL7ygxo0bKyUlRRMmTNChQ4c0fvx4ZWdna8iQIapVq5b+/ve/q3nz5tqzZ4+mTZum1atXa8GCBYqMjJR0prDedtttiouL04QJE9SsWTMdO3ZMc+bM0e23367//Oc/slqtAX7UwBkvvfSStm3bpnfeeUdHjx7V008/rUaNGunaa68NdGoBt2fPHvXp00cTJkxwLwsLCwtgRoGVn5+v5ORk7d69273M5XLpkUceUevWrbVkyRKtXLlSI0aM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HhUVpaZNm6pp06Zez2YHAqFBgwY6deqUCgoK3MvS09NVu3Ztr9+IqkliY2NlMpncv7ds2VL5+fmlfuhW0zRo0EDHjx/3WHb8+PFiX/WtiUwmU7GLvrdo0UJpaWmBSShAJkyYoPnz52vKlCm65pprJLHfFClpbNhv4Avqd+mo3+fH32Hv+Dt8BvXbO+q3MWiiw29xcXHq16+fXn/9dTmdTo/bfvnlFy1evFh/+tOfzhunVatWHg2/7OxsHThwoMz5bNy4Ub/++qveffddDRs2TJdffrmOHj1aakMeqEpCQkI0YMAAvffee8XO6Pnmm2/0zTffqH79+kpKStLcuXOVk5PjsU52drbmz5+vpKQkhYSEKC4uTv3799ecOXM83tgUoYgimLRr104hISEeFwPavHmzEhMTZTbX7Jc1a9asUbdu3WS3293LduzYodjYWPe3TCB16NBBP//8s/Ly8tzLNm/erA4dOgQwq+Awffp03XPPPR7Ldu7cqRYtWgQmoQCYMWOG3n//fU2bNk3XX3+9ezn7jfexYb+BL6jf3lG/fcPfYe/4O0z9Lg312zg1u1rBMGPHjlVmZqYeeOAB/e9//9PRo0e1YsUK3XXXXeratauGDBly3hhDhw7Vu+++q6+++kqpqakaM2aMcnNzPT6R90VsbKxyc3O1cuVKHT58WB999FGJzUagKnv00UeVnZ2t+++/Xxs3btTBgwf10Ucf6ZlnntFdd92lVq1aacSIEapXr56GDh2qtWvX6ujRo1q7dq3uuusuxcfH69FHH3XHGz9+vDIzMzV06FB9++237gv7jhw5Uh999JEuvfTSAD5a4Hfh4eEaNGiQnnvuOW3dulUrV67UvHnzdNdddwU6tYDr1KmTwsLCNG7cOO3du1fffvutXnrpJQ0bNizQqQWVrl27qmHDhho9erR2796tOXPmaOvWrbrlllsCnVrA9enTR5s2bdLcuXN18OBB/etf/9KyZct03333BTq1SpGamqrXX39dDzzwgDp37qz09HT3T03fb0obm5q+38A31G/vqN++qel/h0tT0/8OU7+9o34biznRYYgGDRroww8/1Ouvv65Ro0bp5MmTatKkiW677TbdfffdPp1dcP311+vAgQN69tlnlZ+frz//+c9KSEgocdqW0nTq1EmPPPKInn/+eeXn56tNmzb629/+prFjx3JGLaqN+Ph4LVq0SK+99ppGjRqljIwM/eEPf9DIkSN1++23S5IiIyO1YMECzZkzR88995zS0tLUoEEDXX/99Ro+fLj7wruSVK9ePS1evFhvvfWWJk2apKNHjyoyMlJdunTRggUL3POjA8Fg9OjReu6553T33XcrKipKjz76qK6++upApxVwUVFRmjt3riZNmqSbb75ZkZGRuu2223gTfg6LxaLXX39dY8eOVVJSkpo2baqZM2eqUaNGgU4t4C655BJNnz5dr776qqZPn66EhARNnTpVnTp1CnRqleLrr7+W0+nUrFmzNGvWLI/bdu3aVaP3m/ONTU3eb+A76nfJqN++oX57R/2mfntD/TaWycUcFwgSGzduVJMmTdSwYUNJZy4S2r17d82cOVPdunULcHYAAAAAAAAAaiLOREfQWLlypX788Uc9//zzioyM1LvvvquoqCh17Ngx0KkBAAAAAAAAqKE4Ex1BIzs7W3//+9/17bffKj8/X506ddLYsWPVqlWrQKcGAAAAAAAAoIaiiQ4AAAAAAAAAgBfnv9ojAAAAAAAAAAA1FE10AAAAAAAAAAC8oIkOAAAAAAAAAIAXNNEBAAAAAAAAAPCCJjoAAAAAAAAAAF7QRAcAAAAqUZs2bdSmTRsdPXq02G2LFi1SmzZt9Nprr1VqTgcOHFCbNm20du3aEm+/99579dxzz5Ua47XXXtPQoUMrIDsAAAKP+g3UbDTRAQAAgEpWq1YtffPNN8WWr1y5UiaTqdLzadq0qRITE/XVV18Vu+3kyZPasGGDBg4cWOl5AQAQTKjfQM1FEx0AAACoZF26dCn2Jjw7O1s//vij2rdvH5CcBg4cqK+//lqFhYUey7/66itdcMEF6ty5c0DyAgAgWFC/gZqLJjoAAABQya666ipt3LhR2dnZ7mWrVq1Sly5dFBkZ6bHu+++/r759+6pTp04aOnSodu3a5b4tLS1NI0eO1GWXXaaLL75YgwcP1ubNmyVJhw8fVps2bfTVV1+pX79+SkxM1IMPPqiMjIwSc7ruuut04sQJ/fDDDx7Lv/jiCw0YMEAmk0lff/21Bg0apMTERHXp0kVPPPGEcnJyisVaunSp+vbt67Fs6NChHl9zL+1xAQAQjKjf1G/UXDTRAQAAgErWunVrNWjQQKtXr3YvW7Fihfr16+ex3jfffKMZM2Zo/Pjx+vjjj9W5c2fdddddyszMlCSNGjVKTqdT77//vpYtW6YGDRoUm/t09uzZmjZtmhYuXKiUlBTNnz+/xJwaNGigyy67zOMr4SdOnNCmTZs0cOBAHTx4UI899piGDBmiL774Qq+88oq+//57ffjhh2V+/Od7XAAABCPqN/UbNRdNdAAAACAArrrqKvdXwh0Oh9auXaurrrrKY5233npLDz74oPr06aNmzZrp8ccfV0JCgj755BO5XC7169dP48ePV8uWLdWqVSvdcccd2rNnj0eMkSNH6pJLLlGHDh10ww03KCUlxWtON9xwg1auXOn+ffny5WrZsqXatm2rwsJCjRs3Tn/605/UuHFj9ejRQ5dffrl2795d5sde2uMCACCYUb+p36iZQgKdAAAAAFATXXXVVRo5cqQKCgq0bt06tW7dWnXr1vVYJzU1VVOmTNG0adPcy/Lz87V//36ZTCbdfvvt+vzzz/XDDz9o37592rZtW7E5UZs2ber+f1RUlE6fPu01p6uvvlrPP/+8UlJSlJiYqC+++MJ9QbJmzZopNDRUs2bN0u7du7V7927t2bNHN910U5kfe2mPCwCAYEb9pn6jZqKJDgAAAARA0YW+Nm/erJUrV6p///7F1nE6nRozZoz++Mc/eiyPiopSYWGh7rvvPtlsNg0YMEB9+/bV6dOnNWLECI91a9Wq5XNOMTEx6tmzp1asWKGGDRtq8+bNmjx5siRp586duv3229W3b1916dJF99xzj955550S45hMpmLLCgoKfHpcAAAEM+o39Rs1E010AAAAIABCQkLUq1cvffPNN/rvf/+r4cOHF1unefPmOnbsmMfZaKNHj1a/fv3UpEkTbdq0SevWrVNcXJwk6b333pMkuVyucuc1cOBAvf7660pISNAll1yixo0bS5L+/e9/67LLLtPUqVPd6x44cEAtW7YsFqNWrVoeFyxzuVw6fPiwT4/r3K/EAwAQTKjf1G/UTMyJDgAAAATIVVddpY8++kh169ZVkyZNit1+77336p133tGyZct08OBBTZkyRV988YVatmwpq9Uqs9mszz77TEeOHNGXX36p1157TdKZOVrLq2/fvjp69KgWLVqkG264wb08NjZWu3bt0tatW7Vv3z794x//UEpKSonbuvjii5WRkaEFCxbo0KFDmjx5ssdFx0p7XAAABDvqN/UbNQ9nogMAAAAB0qNHDxUUFKhfv34l3j5gwAAdP35cr776qo4fP65WrVpp1qxZatasmSTpueee08yZMzVt2jQ1b95c48aN09NPP63t27crPj6+XDmFh4erb9+++vLLL3Xdddf9fzt3bMIwDARQ9FJpDS+hGdS7N7jXAFpDnSfxKl4n6dKEg0CakLxXqhBcdfBBep5v2xbXdcW+71FKiVpr9N7jPM+XO5ZliTFGHMcRc85Y1zVaa2/PBQDfzP62v/k/t/snb0UAAAAAAOCH+c4FAAAAAAASIjoAAAAAACREdAAAAAAASIjoAAAAAACQENEBAAAAACAhogMAAAAAQEJEBwAAAACAhIgOAAAAAAAJER0AAAAAABIiOgAAAAAAJER0AAAAAABIiOgAAAAAAJB4APk53LC1DwPMAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saved statistics_comparison.png\n" + ] + } + ], + "source": [ + "# Create visualization\n", + "viz_data = {dt: {\"original\": {\"means\": [], \"mins\": [], \"maxs\": []}, \n", + " \"cog\": {\"means\": [], \"mins\": [], \"maxs\": []}} \n", + " for dt in VALID_DATA_TYPES}\n", + "\n", + "for result in results:\n", + " if \"error\" not in result.get(\"original_stats\", {}):\n", + " dt = result[\"metadata\"][\"data_type\"]\n", + " if dt in viz_data and result[\"original_stats\"].get(\"mean\") is not None:\n", + " for key in [\"mean\", \"min\", \"max\"]:\n", + " viz_data[dt][\"original\"][f\"{key}s\"].append(result[\"original_stats\"][key])\n", + " if result.get(\"cog_stats\") and result[\"cog_stats\"].get(key) is not None:\n", + " viz_data[dt][\"cog\"][f\"{key}s\"].append(result[\"cog_stats\"][key])\n", + "\n", + "# Create figure\n", + "fig, axes = plt.subplots(3, 3, figsize=(15, 12))\n", + "fig.suptitle(\"CMS Global Map Mangrove Canopy - Statistics Comparison\", fontsize=16)\n", + "\n", + "for idx, (var_type, var_label) in enumerate([\n", + " (\"agb\", \"AGB (Aboveground Biomass)\"),\n", + " (\"hmax95\", \"HMAX95 (Max Height 95%)\"),\n", + " (\"hba95\", \"HBA95 (Basal Area Height 95%)\")\n", + "]):\n", + " # Box plot comparison\n", + " ax = axes[idx, 0]\n", + " if viz_data[var_type][\"original\"][\"means\"] and viz_data[var_type][\"cog\"][\"means\"]:\n", + " data = pd.DataFrame({\n", + " \"Original\": viz_data[var_type][\"original\"][\"means\"],\n", + " \"COG\": viz_data[var_type][\"cog\"][\"means\"]\n", + " })\n", + " data.boxplot(ax=ax)\n", + " ax.set_title(f\"{var_label}\\nMean Values\")\n", + " ax.set_ylabel(\"Value\")\n", + " \n", + " # Original histogram\n", + " ax = axes[idx, 1]\n", + " if viz_data[var_type][\"original\"][\"means\"]:\n", + " ax.hist(viz_data[var_type][\"original\"][\"means\"], bins=20, \n", + " color='skyblue', edgecolor='darkblue', alpha=0.7)\n", + " ax.axvline(np.mean(viz_data[var_type][\"original\"][\"means\"]), \n", + " color='darkblue', linestyle='--', linewidth=2)\n", + " ax.set_title(f\"{var_label}\\nOriginal Distribution\")\n", + " ax.set_xlabel(\"Mean Value\")\n", + " ax.set_ylabel(\"Frequency\")\n", + " \n", + " # COG histogram\n", + " ax = axes[idx, 2]\n", + " if viz_data[var_type][\"cog\"][\"means\"]:\n", + " ax.hist(viz_data[var_type][\"cog\"][\"means\"], bins=20, \n", + " color='salmon', edgecolor='darkred', alpha=0.7)\n", + " ax.axvline(np.mean(viz_data[var_type][\"cog\"][\"means\"]), \n", + " color='darkred', linestyle='--', linewidth=2)\n", + " ax.set_title(f\"{var_label}\\nCOG Distribution\")\n", + " ax.set_xlabel(\"Mean Value\")\n", + " ax.set_ylabel(\"Frequency\")\n", + "\n", + "plt.tight_layout()\n", + "plt.savefig(os.path.join(output_dir, \"statistics_comparison.png\"), dpi=300, bbox_inches='tight')\n", + "plt.show()\n", + "print(\"Saved statistics_comparison.png\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "gdal", + "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.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/generating_statistics_for_validation/cms-global-map-mangrove/detailed_stats.json b/generating_statistics_for_validation/cms-global-map-mangrove/detailed_stats.json new file mode 100644 index 000000000..76a4750fb --- /dev/null +++ b/generating_statistics_for_validation/cms-global-map-mangrove/detailed_stats.json @@ -0,0 +1,16010 @@ +[ + { + "original_file": "coastal-observatory/data/Mangrove_agb_AndamanAndNicobar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_AndamanAndNicobar_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "AndamanAndNicobar" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 827.5093994140625, + "mean": 304.69769287109375, + "std": 229.56260681152344, + "count": 675458, + "valid_pixels": 675458, + "total_pixels": 270678281, + "coverage_percent": 0.24954274037228721, + "crs": "EPSG:4326", + "width": 8287, + "height": 32663, + "bounds": [ + 91.69817764407432, + 6.374158522521313, + 94.00012208852061, + 15.447214078084126 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 827.5093994140625, + "mean": 304.69769287109375, + "std": 229.56260681152344, + "count": 675458, + "valid_pixels": 675458, + "total_pixels": 270678281, + "coverage_percent": 0.24954274037228721, + "crs": "EPSG:4326", + "width": 8287, + "height": 32663, + "bounds": [ + 91.69817764407432, + 6.374158522521313, + 94.00012208852061, + 15.447214078084126 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Angola.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Angola_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Angola" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 562.3086547851562, + "mean": 139.69723510742188, + "std": 154.0723114013672, + "count": 283920, + "valid_pixels": 283920, + "total_pixels": 140845440, + "coverage_percent": 0.20158267104707117, + "crs": "EPSG:4326", + "width": 6540, + "height": 21536, + "bounds": [ + 12.011540760464138, + -11.000149739588117, + 13.828207427132257, + -5.017927517361111 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 562.3086547851562, + "mean": 139.69723510742188, + "std": 154.0723114013672, + "count": 283920, + "valid_pixels": 283920, + "total_pixels": 140845440, + "coverage_percent": 0.20158267104707117, + "crs": "EPSG:4326", + "width": 6540, + "height": 21536, + "bounds": [ + 12.011540760464138, + -11.000149739588117, + 13.828207427132257, + -5.017927517361111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Anguilla.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Anguilla_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Anguilla" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 372.6358947753906, + "mean": 47.797698974609375, + "std": 98.32543182373047, + "count": 249, + "valid_pixels": 249, + "total_pixels": 1110375, + "coverage_percent": 0.02242485646740966, + "crs": "EPSG:4326", + "width": 987, + "height": 1125, + "bounds": [ + -63.07290042453343, + 17.90625918918161, + -62.79873375786654, + 18.21875918918186 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 372.6358947753906, + "mean": 47.797698974609375, + "std": 98.32543182373047, + "count": 249, + "valid_pixels": 249, + "total_pixels": 1110375, + "coverage_percent": 0.02242485646740966, + "crs": "EPSG:4326", + "width": 987, + "height": 1125, + "bounds": [ + -63.07290042453343, + 17.90625918918161, + -62.79873375786654, + 18.21875918918186 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_AntiguaAndBarbuda.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_AntiguaAndBarbuda_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "AntiguaAndBarbuda" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 54.03706741333008, + "mean": 25.203441619873047, + "std": 14.743073463439941, + "count": 9906, + "valid_pixels": 9906, + "total_pixels": 1899777, + "coverage_percent": 0.5214296204238708, + "crs": "EPSG:4326", + "width": 759, + "height": 2503, + "bounds": [ + -61.896356235080304, + 17.03393558925997, + -61.6855229017468, + 17.7292133670383 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 54.03706741333008, + "mean": 25.203441619873047, + "std": 14.743073463439941, + "count": 9906, + "valid_pixels": 9906, + "total_pixels": 1899777, + "coverage_percent": 0.5214296204238708, + "crs": "EPSG:4326", + "width": 759, + "height": 2503, + "bounds": [ + -61.896356235080304, + 17.03393558925997, + -61.6855229017468, + 17.7292133670383 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Aruba.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Aruba_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Aruba" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 63.98491668701172, + "mean": 20.18300437927246, + "std": 20.59449005126953, + "count": 1045, + "valid_pixels": 1045, + "total_pixels": 320229, + "coverage_percent": 0.3263289708302496, + "crs": "EPSG:4326", + "width": 483, + "height": 663, + "bounds": [ + -70.05901492648654, + 12.438890351189361, + -69.92484825981977, + 12.623057017856175 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 63.98491668701172, + "mean": 20.18300437927246, + "std": 20.59449005126953, + "count": 1045, + "valid_pixels": 1045, + "total_pixels": 320229, + "coverage_percent": 0.3263289708302496, + "crs": "EPSG:4326", + "width": 483, + "height": 663, + "bounds": [ + -70.05901492648654, + 12.438890351189361, + -69.92484825981977, + 12.623057017856175 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Australia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Australia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Australia" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 212.61692810058594, + "mean": 120.17864990234375, + "std": 38.20711135864258, + "count": 10372869, + "valid_pixels": 10372869, + "total_pixels": 15409692001, + "coverage_percent": 0.06731392813903653, + "crs": "EPSG:4326", + "width": 147601, + "height": 104401, + "bounds": [ + 112.99986111111112, + -39.00013888891209, + 154.0001388889217, + -9.99986111111111 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 212.61692810058594, + "mean": 120.17864990234375, + "std": 38.20711135864258, + "count": 10372869, + "valid_pixels": 10372869, + "total_pixels": 15409692001, + "coverage_percent": 0.06731392813903653, + "crs": "EPSG:4326", + "width": 147601, + "height": 104401, + "bounds": [ + 112.99986111111112, + -39.00013888891209, + 154.0001388889217, + -9.99986111111111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Bahamas.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Bahamas_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Bahamas" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 44.7356071472168, + "mean": 13.273279190063477, + "std": 12.366150856018066, + "count": 886961, + "valid_pixels": 886961, + "total_pixels": 727940710, + "coverage_percent": 0.12184522555415261, + "crs": "EPSG:4326", + "width": 29797, + "height": 24430, + "bounds": [ + -80.6950877469056, + 20.764054753478693, + -72.41814330245454, + 27.550165864595233 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 44.7356071472168, + "mean": 13.273279190063477, + "std": 12.366150856018066, + "count": 886961, + "valid_pixels": 886961, + "total_pixels": 727940710, + "coverage_percent": 0.12184522555415261, + "crs": "EPSG:4326", + "width": 29797, + "height": 24430, + "bounds": [ + -80.6950877469056, + 20.764054753478693, + -72.41814330245454, + 27.550165864595233 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Bahrain.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Bahrain_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Bahrain" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 29.691303253173828, + "mean": 4.4953389167785645, + "std": 8.348608016967773, + "count": 855, + "valid_pixels": 855, + "total_pixels": 5265876, + "coverage_percent": 0.016236614762671967, + "crs": "EPSG:4326", + "width": 1804, + "height": 2919, + "bounds": [ + 50.34751325098631, + 25.535966068287465, + 50.84862436209782, + 26.346799401621446 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 29.691303253173828, + "mean": 4.4953389167785645, + "std": 8.348608016967773, + "count": 855, + "valid_pixels": 855, + "total_pixels": 5265876, + "coverage_percent": 0.016236614762671967, + "crs": "EPSG:4326", + "width": 1804, + "height": 2919, + "bounds": [ + 50.34751325098631, + 25.535966068287465, + 50.84862436209782, + 26.346799401621446 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Bangladesh.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Bangladesh_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Bangladesh" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 421.2479553222656, + "mean": 171.53839111328125, + "std": 117.14322662353516, + "count": 4891973, + "valid_pixels": 4891973, + "total_pixels": 128462500, + "coverage_percent": 3.8080941909117447, + "crs": "EPSG:4326", + "width": 12500, + "height": 10277, + "bounds": [ + 88.95413804035077, + 20.55964573972527, + 92.42636026257577, + 23.414367961949775 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 421.2479553222656, + "mean": 171.53839111328125, + "std": 117.14322662353516, + "count": 4891973, + "valid_pixels": 4891973, + "total_pixels": 128462500, + "coverage_percent": 3.8080941909117447, + "crs": "EPSG:4326", + "width": 12500, + "height": 10277, + "bounds": [ + 88.95413804035077, + 20.55964573972527, + 92.42636026257577, + 23.414367961949775 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Barbados.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Barbados_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Barbados" + }, + "original_stats": { + "min": 1.5932269096374512, + "max": 135.97067260742188, + "mean": 58.626121520996094, + "std": 34.154212951660156, + "count": 386, + "valid_pixels": 386, + "total_pixels": 19932, + "coverage_percent": 1.9365843869155126, + "crs": "EPSG:4326", + "width": 302, + "height": 66, + "bounds": [ + -59.58117450290256, + 13.056516401502806, + -59.497285614013606, + 13.074849734836155 + ] + }, + "cog_stats": { + "min": 1.5932269096374512, + "max": 135.97067260742188, + "mean": 58.626121520996094, + "std": 34.154212951660156, + "count": 386, + "valid_pixels": 386, + "total_pixels": 19932, + "coverage_percent": 1.9365843869155126, + "crs": "EPSG:4326", + "width": 302, + "height": 66, + "bounds": [ + -59.58117450290256, + 13.056516401502806, + -59.497285614013606, + 13.074849734836155 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Belize.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Belize_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Belize" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 26.01284408569336, + "std": 26.642845153808594, + "count": 613357, + "valid_pixels": 613357, + "total_pixels": 61688508, + "coverage_percent": 0.9942808148318322, + "crs": "EPSG:4326", + "width": 6499, + "height": 9492, + "bounds": [ + -89.13147580682836, + 15.887197373427076, + -87.32619802904914, + 18.52386404009585 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 26.01284408569336, + "std": 26.642845153808594, + "count": 613357, + "valid_pixels": 613357, + "total_pixels": 61688508, + "coverage_percent": 0.9942808148318322, + "crs": "EPSG:4326", + "width": 6499, + "height": 9492, + "bounds": [ + -89.13147580682836, + 15.887197373427075, + -87.32619802904914, + 18.52386404009585 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Benin.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Benin_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Benin" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 42.63620376586914, + "mean": 10.015495300292969, + "std": 11.290387153625488, + "count": 50106, + "valid_pixels": 50106, + "total_pixels": 3036082, + "coverage_percent": 1.6503506822279503, + "crs": "EPSG:4326", + "width": 3206, + "height": 947, + "bounds": [ + 1.8205405373043484, + 6.27774419148742, + 2.7110960928606165, + 6.540799747043186 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 42.63620376586914, + "mean": 10.015495300292969, + "std": 11.290387153625488, + "count": 50106, + "valid_pixels": 50106, + "total_pixels": 3036082, + "coverage_percent": 1.6503506822279503, + "crs": "EPSG:4326", + "width": 3206, + "height": 947, + "bounds": [ + 1.8205405373043484, + 6.27774419148742, + 2.7110960928606165, + 6.540799747043186 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Brazil.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Brazil_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Brazil" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 260.5316162109375, + "mean": 92.71800231933594, + "std": 74.23345947265625, + "count": 11178908, + "valid_pixels": 11178908, + "total_pixels": 7161503100, + "coverage_percent": 0.15609723048224333, + "crs": "EPSG:4326", + "width": 60950, + "height": 117498, + "bounds": [ + -51.72637112331014, + -28.19607450098934, + -34.79581556774104, + 4.4422588323701 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 260.5316162109375, + "mean": 92.71800231933594, + "std": 74.23345947265625, + "count": 11178908, + "valid_pixels": 11178908, + "total_pixels": 7161503100, + "coverage_percent": 0.15609723048224333, + "crs": "EPSG:4326", + "width": 60950, + "height": 117498, + "bounds": [ + -51.72637112331014, + -28.19607450098934, + -34.795815567741045, + 4.4422588323701 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_BritishVirginIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_BritishVirginIslands_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "BritishVirginIslands" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 63.98491668701172, + "mean": 14.19192123413086, + "std": 17.178646087646484, + "count": 853, + "valid_pixels": 853, + "total_pixels": 3634802, + "coverage_percent": 0.023467578151437133, + "crs": "EPSG:4326", + "width": 2161, + "height": 1682, + "bounds": [ + -64.8578896522162, + 18.296697644432747, + -64.25761187443794, + 18.763919866655343 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 63.98491668701172, + "mean": 14.19192123413086, + "std": 17.178646087646484, + "count": 853, + "valid_pixels": 853, + "total_pixels": 3634802, + "coverage_percent": 0.023467578151437133, + "crs": "EPSG:4326", + "width": 2161, + "height": 1682, + "bounds": [ + -64.8578896522162, + 18.296697644432747, + -64.25761187443794, + 18.763919866655343 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Brunei.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Brunei_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Brunei" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 346.21343994140625, + "mean": 241.0939178466797, + "std": 58.44868850708008, + "count": 115003, + "valid_pixels": 115003, + "total_pixels": 9828481, + "coverage_percent": 1.1700994283857291, + "crs": "EPSG:4326", + "width": 4177, + "height": 2353, + "bounds": [ + 114.07494258395315, + 4.4306421497858945, + 115.23522036173185, + 5.084253260897529 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 346.21343994140625, + "mean": 241.0939178466797, + "std": 58.44868850708008, + "count": 115003, + "valid_pixels": 115003, + "total_pixels": 9828481, + "coverage_percent": 1.1700994283857291, + "crs": "EPSG:4326", + "width": 4177, + "height": 2353, + "bounds": [ + 114.07494258395315, + 4.4306421497858945, + 115.23522036173185, + 5.084253260897529 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Cambodia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Cambodia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Cambodia" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 173.4212188720703, + "mean": 107.10851287841797, + "std": 29.453706741333008, + "count": 504917, + "valid_pixels": 504917, + "total_pixels": 108800800, + "coverage_percent": 0.46407471268593614, + "crs": "EPSG:4326", + "width": 8860, + "height": 12280, + "bounds": [ + 102.44483409130656, + 8.844270705378268, + 104.90594520241964, + 12.255381816492108 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 173.4212188720703, + "mean": 107.10851287841797, + "std": 29.453706741333008, + "count": 504917, + "valid_pixels": 504917, + "total_pixels": 108800800, + "coverage_percent": 0.46407471268593614, + "crs": "EPSG:4326", + "width": 8860, + "height": 12280, + "bounds": [ + 102.44483409130656, + 8.844270705378268, + 104.90594520241964, + 12.255381816492108 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Cameroon.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Cameroon_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Cameroon" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 594.4729614257812, + "mean": 208.6649169921875, + "std": 165.5890350341797, + "count": 2104162, + "valid_pixels": 2104162, + "total_pixels": 48418107, + "coverage_percent": 4.345816328589633, + "crs": "EPSG:4326", + "width": 5079, + "height": 9533, + "bounds": [ + 8.498540272182888, + 2.258834966021645, + 9.90937360551735, + 4.906890521579319 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 594.4729614257812, + "mean": 208.6649169921875, + "std": 165.5890350341797, + "count": 2104162, + "valid_pixels": 2104162, + "total_pixels": 48418107, + "coverage_percent": 4.345816328589633, + "crs": "EPSG:4326", + "width": 5079, + "height": 9533, + "bounds": [ + 8.498540272182888, + 2.258834966021645, + 9.909373605517349, + 4.906890521579319 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_CarribeanCaymanIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_CarribeanCaymanIslands_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "CarribeanCaymanIslands" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 74.55267333984375, + "mean": 34.348602294921875, + "std": 17.191835403442383, + "count": 84176, + "valid_pixels": 84176, + "total_pixels": 14430157, + "coverage_percent": 0.5833339166025706, + "crs": "EPSG:4326", + "width": 6503, + "height": 2219, + "bounds": [ + -81.47201577130745, + 19.225335956675472, + -79.66562688241711, + 19.841724845564855 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 74.55267333984375, + "mean": 34.348602294921875, + "std": 17.191835403442383, + "count": 84176, + "valid_pixels": 84176, + "total_pixels": 14430157, + "coverage_percent": 0.5833339166025706, + "crs": "EPSG:4326", + "width": 6503, + "height": 2219, + "bounds": [ + -81.47201577130745, + 19.225335956675472, + -79.66562688241711, + 19.841724845564855 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_China.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_China_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "China" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 139.00912475585938, + "mean": 81.81875610351562, + "std": 22.244930267333984, + "count": 177709, + "valid_pixels": 177709, + "total_pixels": 2234919954, + "coverage_percent": 0.007951470462373437, + "crs": "EPSG:4326", + "width": 55537, + "height": 40242, + "bounds": [ + 107.84118485440801, + 17.82180555554661, + 123.26812929886479, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 139.00912475585938, + "mean": 81.81875610351562, + "std": 22.244930267333984, + "count": 177709, + "valid_pixels": 177709, + "total_pixels": 2234919954, + "coverage_percent": 0.007951470462373437, + "crs": "EPSG:4326", + "width": 55537, + "height": 40242, + "bounds": [ + 107.84118485440801, + 17.82180555554661, + 123.26812929886479, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Colombia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Colombia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Colombia" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 413.2731018066406, + "mean": 129.55470275878906, + "std": 120.50720977783203, + "count": 2173030, + "valid_pixels": 2173030, + "total_pixels": 1106193612, + "coverage_percent": 0.19644210348233326, + "crs": "EPSG:4326", + "width": 27798, + "height": 39794, + "bounds": [ + -79.00856174045138, + 1.3842583084018028, + -71.28689507377854, + 12.438147197299534 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 413.2731018066406, + "mean": 129.55470275878906, + "std": 120.50720977783203, + "count": 2173030, + "valid_pixels": 2173030, + "total_pixels": 1106193612, + "coverage_percent": 0.19644210348233326, + "crs": "EPSG:4326", + "width": 27798, + "height": 39794, + "bounds": [ + -79.00856174045138, + 1.3842583084018028, + -71.28689507377854, + 12.438147197299534 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Comoros.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Comoros_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Comoros" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 657.9813232421875, + "mean": 246.72125244140625, + "std": 179.35316467285156, + "count": 1173, + "valid_pixels": 1173, + "total_pixels": 28289904, + "coverage_percent": 0.004146355533762151, + "crs": "EPSG:4326", + "width": 5622, + "height": 5032, + "bounds": [ + 43.14339630472751, + -12.58844880524778, + 44.70506297139543, + -11.190671027468882 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 657.9813232421875, + "mean": 246.72125244140625, + "std": 179.35316467285156, + "count": 1173, + "valid_pixels": 1173, + "total_pixels": 28289904, + "coverage_percent": 0.004146355533762151, + "crs": "EPSG:4326", + "width": 5622, + "height": 5032, + "bounds": [ + 43.14339630472751, + -12.58844880524778, + 44.70506297139543, + -11.190671027468882 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_CostaRica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_CostaRica_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "CostaRica" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 314.7015075683594, + "mean": 116.40267944335938, + "std": 86.73851013183594, + "count": 413680, + "valid_pixels": 413680, + "total_pixels": 158884481, + "coverage_percent": 0.26036526500029916, + "crs": "EPSG:4326", + "width": 12929, + "height": 12289, + "bounds": [ + -86.09476906457506, + 7.801602899887083, + -82.5033801756833, + 11.215214011000924 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 314.7015075683594, + "mean": 116.40267944335938, + "std": 86.73851013183594, + "count": 413680, + "valid_pixels": 413680, + "total_pixels": 158884481, + "coverage_percent": 0.26036526500029916, + "crs": "EPSG:4326", + "width": 12929, + "height": 12289, + "bounds": [ + -86.09476906457506, + 7.801602899887083, + -82.5033801756833, + 11.215214011000924 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_CoteDivoire.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_CoteDivoire_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "CoteDivoire" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 530.7691040039062, + "mean": 130.3645782470703, + "std": 147.47242736816406, + "count": 20197, + "valid_pixels": 20197, + "total_pixels": 47175509, + "coverage_percent": 0.04281246864766207, + "crs": "EPSG:4326", + "width": 14701, + "height": 3209, + "bounds": [ + -7.271641383700901, + 4.471797093409197, + -3.1880302725865235, + 5.363185982298799 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 530.7691040039062, + "mean": 130.3645782470703, + "std": 147.47242736816406, + "count": 20197, + "valid_pixels": 20197, + "total_pixels": 47175509, + "coverage_percent": 0.04281246864766207, + "crs": "EPSG:4326", + "width": 14701, + "height": 3209, + "bounds": [ + -7.271641383700901, + 4.471797093409197, + -3.1880302725865235, + 5.363185982298799 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Cuba.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Cuba_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Cuba" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 30.349485397338867, + "std": 25.79939079284668, + "count": 4807120, + "valid_pixels": 4807120, + "total_pixels": 588735360, + "coverage_percent": 0.816516269720915, + "crs": "EPSG:4326", + "width": 41280, + "height": 14262, + "bounds": [ + -85.33550002602108, + 19.523174017624555, + -73.86883335934525, + 23.48484068429439 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 30.349485397338867, + "std": 25.79939079284668, + "count": 4807120, + "valid_pixels": 4807120, + "total_pixels": 588735360, + "coverage_percent": 0.816516269720915, + "crs": "EPSG:4326", + "width": 41280, + "height": 14262, + "bounds": [ + -85.33550002602108, + 19.523174017624555, + -73.86883335934525, + 23.48484068429439 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_DemocraticRepublicOfCongo.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_DemocraticRepublicOfCongo_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "DemocraticRepublicOfCongo" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 302.4427795410156, + "mean": 68.75643920898438, + "std": 76.04109954833984, + "count": 214924, + "valid_pixels": 214924, + "total_pixels": 751542, + "coverage_percent": 28.597736387321, + "crs": "EPSG:4326", + "width": 1298, + "height": 579, + "bounds": [ + 12.355177273220486, + -6.05685363431872, + 12.71573282877633, + -5.896020300985257 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 302.4427795410156, + "mean": 68.75643920898438, + "std": 76.04109954833984, + "count": 214924, + "valid_pixels": 214924, + "total_pixels": 751542, + "coverage_percent": 28.597736387321, + "crs": "EPSG:4326", + "width": 1298, + "height": 579, + "bounds": [ + 12.355177273220486, + -6.05685363431872, + 12.71573282877633, + -5.896020300985257 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Djibouti.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Djibouti_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Djibouti" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 269.1959228515625, + "mean": 93.437255859375, + "std": 77.2350082397461, + "count": 5872, + "valid_pixels": 5872, + "total_pixels": 25108287, + "coverage_percent": 0.02338670097247176, + "crs": "EPSG:4326", + "width": 4533, + "height": 5539, + "bounds": [ + 42.22997852227546, + 11.210617160920064, + 43.489145188943134, + 12.749228272032406 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 269.1959228515625, + "mean": 93.437255859375, + "std": 77.2350082397461, + "count": 5872, + "valid_pixels": 5872, + "total_pixels": 25108287, + "coverage_percent": 0.02338670097247176, + "crs": "EPSG:4326", + "width": 4533, + "height": 5539, + "bounds": [ + 42.22997852227546, + 11.210617160920064, + 43.489145188943134, + 12.749228272032406 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_DominicanRepublic.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_DominicanRepublic_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "DominicanRepublic" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 135.97067260742188, + "mean": 45.29719543457031, + "std": 36.87766647338867, + "count": 197142, + "valid_pixels": 197142, + "total_pixels": 131124544, + "coverage_percent": 0.15034713867146032, + "crs": "EPSG:4326", + "width": 13144, + "height": 9976, + "bounds": [ + -71.8667215230053, + 17.331650313501957, + -68.21561041189126, + 20.102761424615284 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 135.97067260742188, + "mean": 45.29719543457031, + "std": 36.87766647338867, + "count": 197142, + "valid_pixels": 197142, + "total_pixels": 131124544, + "coverage_percent": 0.15034713867146032, + "crs": "EPSG:4326", + "width": 13144, + "height": 9976, + "bounds": [ + -71.8667215230053, + 17.331650313501957, + -68.21561041189126, + 20.102761424615284 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_EcuadorWithGalapagos.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_EcuadorWithGalapagos_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "EcuadorWithGalapagos" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 260.5316162109375, + "mean": 88.08091735839844, + "std": 70.6561508178711, + "count": 1387473, + "valid_pixels": 1387473, + "total_pixels": 817532430, + "coverage_percent": 0.16971473535306728, + "crs": "EPSG:4326", + "width": 45903, + "height": 17810, + "bounds": [ + -91.4997059538888, + -3.492892840707286, + -78.74887262054527, + 1.4543293815188938 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 260.5316162109375, + "mean": 88.08091735839844, + "std": 70.6561508178711, + "count": 1387473, + "valid_pixels": 1387473, + "total_pixels": 817532430, + "coverage_percent": 0.16971473535306728, + "crs": "EPSG:4326", + "width": 45903, + "height": 17810, + "bounds": [ + -91.4997059538888, + -3.492892840707286, + -78.74887262054527, + 1.4543293815188938 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Egypt.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Egypt_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Egypt" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 186.71339416503906, + "mean": 45.061073303222656, + "std": 57.75088882446289, + "count": 2501, + "valid_pixels": 2501, + "total_pixels": 371630553, + "coverage_percent": 0.0006729801895486241, + "crs": "EPSG:4326", + "width": 14749, + "height": 25197, + "bounds": [ + 32.99986111111111, + 22.00097222221662, + 37.09680555555883, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 186.71339416503906, + "mean": 45.061073303222656, + "std": 57.75088882446289, + "count": 2501, + "valid_pixels": 2501, + "total_pixels": 371630553, + "coverage_percent": 0.0006729801895486241, + "crs": "EPSG:4326", + "width": 14749, + "height": 25197, + "bounds": [ + 32.99986111111111, + 22.00097222221662, + 37.09680555555883, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_ElSalvador.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_ElSalvador_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "ElSalvador" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 243.341796875, + "mean": 75.92900848388672, + "std": 60.46849822998047, + "count": 363262, + "valid_pixels": 363262, + "total_pixels": 36442908, + "coverage_percent": 0.9967975113292277, + "crs": "EPSG:4326", + "width": 9378, + "height": 3886, + "bounds": [ + -90.24186987937155, + 12.753177317279638, + -87.63686987936947, + 13.832621761724946 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 243.341796875, + "mean": 75.92900848388672, + "std": 60.46849822998047, + "count": 363262, + "valid_pixels": 363262, + "total_pixels": 36442908, + "coverage_percent": 0.9967975113292277, + "crs": "EPSG:4326", + "width": 9378, + "height": 3886, + "bounds": [ + -90.24186987937155, + 12.753177317279638, + -87.63686987936947, + 13.832621761724946 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_EquatorialGuinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_EquatorialGuinea_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "EquatorialGuinea" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 800.0201416015625, + "mean": 208.58033752441406, + "std": 227.17076110839844, + "count": 132817, + "valid_pixels": 132817, + "total_pixels": 7507500, + "coverage_percent": 1.769124209124209, + "crs": "EPSG:4326", + "width": 1540, + "height": 4875, + "bounds": [ + 9.499994625515408, + 0.9768147171857386, + 9.927772403293528, + 2.3309813838534885 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 800.0201416015625, + "mean": 208.58033752441406, + "std": 227.17076110839844, + "count": 132817, + "valid_pixels": 132817, + "total_pixels": 7507500, + "coverage_percent": 1.769124209124209, + "crs": "EPSG:4326", + "width": 1540, + "height": 4875, + "bounds": [ + 9.499994625515408, + 0.9768147171857386, + 9.927772403293528, + 2.3309813838534885 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Eritrea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Eritrea_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Eritrea" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 151.13113403320312, + "mean": 53.10354995727539, + "std": 44.78666687011719, + "count": 63057, + "valid_pixels": 63057, + "total_pixels": 331547345, + "coverage_percent": 0.019019003153229897, + "crs": "EPSG:4326", + "width": 17033, + "height": 19465, + "bounds": [ + 38.47787310964247, + 12.63982193190439, + 43.20926199853515, + 18.04676637635316 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 151.13113403320312, + "mean": 53.10354995727539, + "std": 44.78666687011719, + "count": 63057, + "valid_pixels": 63057, + "total_pixels": 331547345, + "coverage_percent": 0.019019003153229897, + "crs": "EPSG:4326", + "width": 17033, + "height": 19465, + "bounds": [ + 38.47787310964247, + 12.63982193190439, + 43.20926199853514, + 18.04676637635316 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_EuropaIsland.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_EuropaIsland_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "EuropaIsland" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 343.38983154296875, + "mean": 166.51177978515625, + "std": 85.0894546508789, + "count": 6594, + "valid_pixels": 6594, + "total_pixels": 126116622, + "coverage_percent": 0.0052284939886829505, + "crs": "EPSG:4326", + "width": 12101, + "height": 10422, + "bounds": [ + 37.84230011797962, + -23.558221094993442, + 41.203689006871194, + -20.663221094991126 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 343.38983154296875, + "mean": 166.51177978515625, + "std": 85.0894546508789, + "count": 6594, + "valid_pixels": 6594, + "total_pixels": 126116622, + "coverage_percent": 0.0052284939886829505, + "crs": "EPSG:4326", + "width": 12101, + "height": 10422, + "bounds": [ + 37.84230011797962, + -23.558221094993442, + 41.203689006871194, + -20.663221094991126 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Fiji.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Fiji_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Fiji" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 212.61692810058594, + "mean": 90.03683471679688, + "std": 47.208106994628906, + "count": 1146347, + "valid_pixels": 1146347, + "total_pixels": 311103960, + "coverage_percent": 0.3684771482818798, + "crs": "EPSG:4326", + "width": 12162, + "height": 25580, + "bounds": [ + 176.6217067694109, + -19.31514936366083, + 180.00004010274694, + -12.209593808099589 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 212.61692810058594, + "mean": 90.03683471679688, + "std": 47.208106994628906, + "count": 1146347, + "valid_pixels": 1146347, + "total_pixels": 311103960, + "coverage_percent": 0.3684771482818798, + "crs": "EPSG:4326", + "width": 12162, + "height": 25580, + "bounds": [ + 176.6217067694109, + -19.31514936366083, + 180.00004010274694, + -12.209593808099589 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Fiji2.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Fiji2_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Fiji2" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 241.76930236816406, + "mean": 133.70449829101562, + "std": 44.55952835083008, + "count": 8731, + "valid_pixels": 8731, + "total_pixels": 131325948, + "coverage_percent": 0.006648343402782823, + "crs": "EPSG:4326", + "width": 6669, + "height": 19692, + "bounds": [ + -180.0001388888889, + -21.096936371308672, + -178.14763888888743, + -15.626936371304296 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 241.76930236816406, + "mean": 133.70449829101562, + "std": 44.55952835083008, + "count": 8731, + "valid_pixels": 8731, + "total_pixels": 131325948, + "coverage_percent": 0.006648343402782823, + "crs": "EPSG:4326", + "width": 6669, + "height": 19692, + "bounds": [ + -180.0001388888889, + -21.096936371308672, + -178.14763888888743, + -15.626936371304296 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_FrenchGuyana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_FrenchGuyana_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "FrenchGuyana" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 352.9161376953125, + "mean": 129.14808654785156, + "std": 113.54850006103516, + "count": 841677, + "valid_pixels": 841677, + "total_pixels": 53929265, + "coverage_percent": 1.560705490794284, + "crs": "EPSG:4326", + "width": 8567, + "height": 6295, + "bounds": [ + -54.00164950900608, + 4.004172793492932, + -51.621927286781954, + 5.752783904605442 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 352.9161376953125, + "mean": 129.14808654785156, + "std": 113.54850006103516, + "count": 841677, + "valid_pixels": 841677, + "total_pixels": 53929265, + "coverage_percent": 1.560705490794284, + "crs": "EPSG:4326", + "width": 8567, + "height": 6295, + "bounds": [ + -54.00164950900608, + 4.004172793492932, + -51.621927286781954, + 5.752783904605442 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_FrenchPolynesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_FrenchPolynesia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "FrenchPolynesia" + }, + "original_stats": { + "min": 99.15599060058594, + "max": 185.9183349609375, + "mean": 161.19839477539062, + "std": 29.650026321411133, + "count": 12, + "valid_pixels": 12, + "total_pixels": 4328160750, + "coverage_percent": 2.772540275912811e-07, + "crs": "EPSG:4326", + "width": 77670, + "height": 55725, + "bounds": [ + -155.37676193554722, + -23.00003789700403, + -133.80176193552995, + -7.520871230324981 + ] + }, + "cog_stats": { + "min": 99.15599060058594, + "max": 185.9183349609375, + "mean": 161.19839477539062, + "std": 29.650026321411133, + "count": 12, + "valid_pixels": 12, + "total_pixels": 4328160750, + "coverage_percent": 2.772540275912811e-07, + "crs": "EPSG:4326", + "width": 77670, + "height": 55725, + "bounds": [ + -155.37676193554722, + -23.00003789700403, + -133.80176193552995, + -7.520871230324981 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Gabon.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Gabon_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Gabon" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 910.4758911132812, + "mean": 244.14048767089844, + "std": 269.9700622558594, + "count": 1448710, + "valid_pixels": 1448710, + "total_pixels": 116969888, + "coverage_percent": 1.2385324332361505, + "crs": "EPSG:4326", + "width": 7184, + "height": 16282, + "bounds": [ + 8.702267994350857, + -3.4635235982507218, + 10.697823549908009, + 1.0592541795306736 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 910.4758911132812, + "mean": 244.14048767089844, + "std": 269.9700622558594, + "count": 1448710, + "valid_pixels": 1448710, + "total_pixels": 116969888, + "coverage_percent": 1.2385324332361505, + "crs": "EPSG:4326", + "width": 7184, + "height": 16282, + "bounds": [ + 8.702267994350857, + -3.4635235982507218, + 10.69782354990801, + 1.0592541795306736 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Gambia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Gambia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Gambia" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 142.4013214111328, + "mean": 41.99407958984375, + "std": 37.362606048583984, + "count": 755916, + "valid_pixels": 755916, + "total_pixels": 18162371, + "coverage_percent": 4.1619896433125385, + "crs": "EPSG:4326", + "width": 7103, + "height": 2557, + "bounds": [ + -16.810004840426974, + 13.073612598842477, + -14.83694928486984, + 13.783890376620823 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 142.4013214111328, + "mean": 41.99407958984375, + "std": 37.362606048583984, + "count": 755916, + "valid_pixels": 755916, + "total_pixels": 18162371, + "coverage_percent": 4.1619896433125385, + "crs": "EPSG:4326", + "width": 7103, + "height": 2557, + "bounds": [ + -16.810004840426974, + 13.073612598842477, + -14.836949284869842, + 13.783890376620823 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Ghana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Ghana_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Ghana" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 277.1248779296875, + "mean": 59.78917694091797, + "std": 77.16121673583984, + "count": 121845, + "valid_pixels": 121845, + "total_pixels": 70253112, + "coverage_percent": 0.17343715677677027, + "crs": "EPSG:4326", + "width": 14314, + "height": 4908, + "bounds": [ + -2.787816790801273, + 4.757193586560325, + 1.1882943203130187, + 6.120526919894749 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 277.1248779296875, + "mean": 59.78917694091797, + "std": 77.16121673583984, + "count": 121845, + "valid_pixels": 121845, + "total_pixels": 70253112, + "coverage_percent": 0.17343715677677027, + "crs": "EPSG:4326", + "width": 14314, + "height": 4908, + "bounds": [ + -2.787816790801273, + 4.757193586560325, + 1.1882943203130187, + 6.120526919894749 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Grenada.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Grenada_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Grenada" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 122.60065460205078, + "mean": 61.07228088378906, + "std": 35.14274215698242, + "count": 2241, + "valid_pixels": 2241, + "total_pixels": 2276385, + "coverage_percent": 0.09844556171297912, + "crs": "EPSG:4326", + "width": 1185, + "height": 1921, + "bounds": [ + -61.75835574679905, + 11.991966086493171, + -61.42918908013212, + 12.52557719760471 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 122.60065460205078, + "mean": 61.07228088378906, + "std": 35.14274215698242, + "count": 2241, + "valid_pixels": 2241, + "total_pixels": 2276385, + "coverage_percent": 0.09844556171297912, + "crs": "EPSG:4326", + "width": 1185, + "height": 1921, + "bounds": [ + -61.75835574679905, + 11.991966086493171, + -61.42918908013212, + 12.52557719760471 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Guadeloupe.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Guadeloupe_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Guadeloupe" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 85.71730041503906, + "mean": 34.09603500366211, + "std": 22.085866928100586, + "count": 32683, + "valid_pixels": 32683, + "total_pixels": 1587315, + "coverage_percent": 2.0590116013519686, + "crs": "EPSG:4326", + "width": 1335, + "height": 1189, + "bounds": [ + -61.693394484200304, + 16.12884357876221, + -61.322561150866676, + 16.459121356540255 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 85.71730041503906, + "mean": 34.09603500366211, + "std": 22.085866928100586, + "count": 32683, + "valid_pixels": 32683, + "total_pixels": 1587315, + "coverage_percent": 2.0590116013519686, + "crs": "EPSG:4326", + "width": 1335, + "height": 1189, + "bounds": [ + -61.693394484200304, + 16.12884357876221, + -61.322561150866676, + 16.459121356540255 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Guam.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Guam_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Guam" + }, + "original_stats": { + "min": 346.21343994140625, + "max": 481.37457275390625, + "mean": 421.5666198730469, + "std": 56.555259704589844, + "count": 5, + "valid_pixels": 5, + "total_pixels": 2038131, + "coverage_percent": 0.00024532279819108784, + "crs": "EPSG:4326", + "width": 1299, + "height": 1569, + "bounds": [ + 144.60725416745808, + 13.226716261405356, + 144.9680875007917, + 13.662549594739037 + ] + }, + "cog_stats": { + "min": 346.21343994140625, + "max": 481.37457275390625, + "mean": 421.5666198730469, + "std": 56.555259704589844, + "count": 5, + "valid_pixels": 5, + "total_pixels": 2038131, + "coverage_percent": 0.00024532279819108784, + "crs": "EPSG:4326", + "width": 1299, + "height": 1569, + "bounds": [ + 144.60725416745808, + 13.226716261405356, + 144.9680875007917, + 13.662549594739037 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Guatemala.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Guatemala_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Guatemala" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 260.5316162109375, + "mean": 120.1806869506836, + "std": 67.75971984863281, + "count": 375729, + "valid_pixels": 375729, + "total_pixels": 126604545, + "coverage_percent": 0.2967737058728816, + "crs": "EPSG:4326", + "width": 14655, + "height": 8639, + "bounds": [ + -92.27544873732964, + 13.636717146857094, + -88.20461540399305, + 16.036439369081236 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 260.5316162109375, + "mean": 120.1806869506836, + "std": 67.75971984863281, + "count": 375729, + "valid_pixels": 375729, + "total_pixels": 126604545, + "coverage_percent": 0.2967737058728816, + "crs": "EPSG:4326", + "width": 14655, + "height": 8639, + "bounds": [ + -92.27544873732964, + 13.636717146857094, + -88.20461540399305, + 16.036439369081236 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Guinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Guinea_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Guinea" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 183.85704040527344, + "mean": 60.33362579345703, + "std": 48.8995246887207, + "count": 2601005, + "valid_pixels": 2601005, + "total_pixels": 65496732, + "coverage_percent": 3.9711981355039208, + "crs": "EPSG:4326", + "width": 8004, + "height": 8183, + "bounds": [ + -15.075840732280184, + 9.039652951556613, + -12.852507398945072, + 11.312708507113987 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 183.85704040527344, + "mean": 60.33362579345703, + "std": 48.8995246887207, + "count": 2601005, + "valid_pixels": 2601005, + "total_pixels": 65496732, + "coverage_percent": 3.9711981355039208, + "crs": "EPSG:4326", + "width": 8004, + "height": 8183, + "bounds": [ + -15.075840732280184, + 9.039652951556615, + -12.852507398945072, + 11.312708507113987 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_GuineaBissau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_GuineaBissau_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "GuineaBissau" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 162.6715545654297, + "mean": 70.93630981445312, + "std": 40.75917434692383, + "count": 3720927, + "valid_pixels": 3720927, + "total_pixels": 40659682, + "coverage_percent": 9.151392280933235, + "crs": "EPSG:4326", + "width": 6902, + "height": 5891, + "bounds": [ + -16.6835056008039, + 10.918320198057774, + -14.766283378580145, + 12.554709086947971 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 162.6715545654297, + "mean": 70.93630981445312, + "std": 40.75917434692383, + "count": 3720927, + "valid_pixels": 3720927, + "total_pixels": 40659682, + "coverage_percent": 9.151392280933235, + "crs": "EPSG:4326", + "width": 6902, + "height": 5891, + "bounds": [ + -16.6835056008039, + 10.918320198057772, + -14.766283378580145, + 12.554709086947971 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Guyana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Guyana_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Guyana" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 278.1594543457031, + "mean": 127.73689270019531, + "std": 82.2030258178711, + "count": 233562, + "valid_pixels": 233562, + "total_pixels": 101074860, + "coverage_percent": 0.23107823251004256, + "crs": "EPSG:4326", + "width": 10251, + "height": 9860, + "bounds": [ + -59.98534545287613, + 5.786985855100348, + -57.137845452873854, + 8.525874743991428 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 278.1594543457031, + "mean": 127.73689270019531, + "std": 82.2030258178711, + "count": 233562, + "valid_pixels": 233562, + "total_pixels": 101074860, + "coverage_percent": 0.23107823251004256, + "crs": "EPSG:4326", + "width": 10251, + "height": 9860, + "bounds": [ + -59.98534545287613, + 5.7869858551003475, + -57.137845452873854, + 8.525874743991428 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Haiti.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Haiti_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Haiti" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 44.7356071472168, + "mean": 18.033597946166992, + "std": 11.932191848754883, + "count": 161770, + "valid_pixels": 161770, + "total_pixels": 89931870, + "coverage_percent": 0.1798806140692949, + "crs": "EPSG:4326", + "width": 10710, + "height": 8397, + "bounds": [ + -74.70714532374913, + 17.85448667023875, + -71.73214532374675, + 20.186986670240614 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 44.7356071472168, + "mean": 18.033597946166992, + "std": 11.932191848754883, + "count": 161770, + "valid_pixels": 161770, + "total_pixels": 89931870, + "coverage_percent": 0.1798806140692949, + "crs": "EPSG:4326", + "width": 10710, + "height": 8397, + "bounds": [ + -74.70714532374913, + 17.85448667023875, + -71.73214532374675, + 20.186986670240614 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Hawaii.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Hawaii_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Hawaii" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 122.60065460205078, + "mean": 35.62260055541992, + "std": 34.991180419921875, + "count": 7976, + "valid_pixels": 7976, + "total_pixels": 30441972, + "coverage_percent": 0.02620066794621584, + "crs": "EPSG:4326", + "width": 9361, + "height": 3252, + "bounds": [ + -159.3754217898888, + 21.04678349055488, + -156.77514401210894, + 21.950116823888937 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 122.60065460205078, + "mean": 35.62260055541992, + "std": 34.991180419921875, + "count": 7976, + "valid_pixels": 7976, + "total_pixels": 30441972, + "coverage_percent": 0.02620066794621584, + "crs": "EPSG:4326", + "width": 9361, + "height": 3252, + "bounds": [ + -159.3754217898888, + 21.04678349055488, + -156.77514401210894, + 21.950116823888937 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Honduras.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Honduras_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Honduras" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 164.24179077148438, + "mean": 67.91222381591797, + "std": 44.53651428222656, + "count": 723928, + "valid_pixels": 723928, + "total_pixels": 304110105, + "coverage_percent": 0.2380479925190253, + "crs": "EPSG:4326", + "width": 22515, + "height": 13507, + "bounds": [ + -88.4728246063782, + 12.986786336254944, + -82.21865793970653, + 16.73873078070239 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 164.24179077148438, + "mean": 67.91222381591797, + "std": 44.53651428222656, + "count": 723928, + "valid_pixels": 723928, + "total_pixels": 304110105, + "coverage_percent": 0.2380479925190253, + "crs": "EPSG:4326", + "width": 22515, + "height": 13507, + "bounds": [ + -88.4728246063782, + 12.986786336254944, + -82.21865793970653, + 16.73873078070239 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_HongKong.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_HongKong_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "HongKong" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 149.9948272705078, + "mean": 80.92000579833984, + "std": 26.031871795654297, + "count": 6566, + "valid_pixels": 6566, + "total_pixels": 3305784, + "coverage_percent": 0.19862156753133295, + "crs": "EPSG:4326", + "width": 2172, + "height": 1522, + "bounds": [ + 113.81996411898062, + 22.13678449167698, + 114.42329745231444, + 22.559562269455096 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 149.9948272705078, + "mean": 80.92000579833984, + "std": 26.031871795654297, + "count": 6566, + "valid_pixels": 6566, + "total_pixels": 3305784, + "coverage_percent": 0.19862156753133295, + "crs": "EPSG:4326", + "width": 2172, + "height": 1522, + "bounds": [ + 113.81996411898062, + 22.13678449167698, + 114.42329745231444, + 22.559562269455096 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_India.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_India_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "India" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 119.31805419921875, + "mean": 40.906471252441406, + "std": 33.09746170043945, + "count": 3656725, + "valid_pixels": 3656725, + "total_pixels": 4432216653, + "coverage_percent": 0.08250329995770629, + "crs": "EPSG:4326", + "width": 76151, + "height": 58203, + "bounds": [ + 68.00431568832126, + 7.9310159492468095, + 89.15737124389373, + 24.098515949259742 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 119.31805419921875, + "mean": 40.906471252441406, + "std": 33.09746170043945, + "count": 3656725, + "valid_pixels": 3656725, + "total_pixels": 4432216653, + "coverage_percent": 0.08250329995770629, + "crs": "EPSG:4326", + "width": 76151, + "height": 58203, + "bounds": [ + 68.00431568832126, + 7.9310159492468095, + 89.15737124389372, + 24.098515949259742 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Indonesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Indonesia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Indonesia" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 409.5007019042969, + "mean": 223.63714599609375, + "std": 95.73657989501953, + "count": 28148692, + "valid_pixels": 28148692, + "total_pixels": 10585539992, + "coverage_percent": 0.26591644848796864, + "crs": "EPSG:4326", + "width": 168206, + "height": 62932, + "bounds": [ + 94.36870234331364, + -11.214172824444137, + 141.0925912322399, + 6.266938286680959 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 409.5007019042969, + "mean": 223.63714599609375, + "std": 95.73657989501953, + "count": 28148692, + "valid_pixels": 28148692, + "total_pixels": 10585539992, + "coverage_percent": 0.26591644848796864, + "crs": "EPSG:4326", + "width": 168206, + "height": 62932, + "bounds": [ + 94.36870234331364, + -11.214172824444137, + 141.0925912322399, + 6.266938286680959 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Iran.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Iran_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Iran" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 91.27119445800781, + "mean": 24.39482879638672, + "std": 23.530345916748047, + "count": 145349, + "valid_pixels": 145349, + "total_pixels": 709695984, + "coverage_percent": 0.020480459700614566, + "crs": "EPSG:4326", + "width": 48596, + "height": 14604, + "bounds": [ + 48.16741666977941, + 24.943472222218976, + 61.6663055586791, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 91.27119445800781, + "mean": 24.39482879638672, + "std": 23.530345916748047, + "count": 145349, + "valid_pixels": 145349, + "total_pixels": 709695984, + "coverage_percent": 0.020480459700614566, + "crs": "EPSG:4326", + "width": 48596, + "height": 14604, + "bounds": [ + 48.16741666977941, + 24.943472222218976, + 61.6663055586791, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Jamaica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Jamaica_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Jamaica" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 122.60065460205078, + "mean": 35.59037780761719, + "std": 34.773338317871094, + "count": 101213, + "valid_pixels": 101213, + "total_pixels": 58383710, + "coverage_percent": 0.1733582877826709, + "crs": "EPSG:4326", + "width": 9394, + "height": 6215, + "bounds": [ + -78.5173408670071, + 16.912866594717524, + -75.90789642256057, + 18.639255483607794 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 122.60065460205078, + "mean": 35.59037780761719, + "std": 34.773338317871094, + "count": 101213, + "valid_pixels": 101213, + "total_pixels": 58383710, + "coverage_percent": 0.1733582877826709, + "crs": "EPSG:4326", + "width": 9394, + "height": 6215, + "bounds": [ + -78.5173408670071, + 16.912866594717524, + -75.90789642256057, + 18.639255483607794 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Japan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Japan_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Japan" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 326.8633728027344, + "mean": 147.3769073486328, + "std": 61.27963638305664, + "count": 10311, + "valid_pixels": 10311, + "total_pixels": 817678186, + "coverage_percent": 0.0012610095483212513, + "crs": "EPSG:4326", + "width": 35758, + "height": 22867, + "bounds": [ + 122.45870011895167, + 22.648194444439362, + 132.3914778967374, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 326.8633728027344, + "mean": 147.3769073486328, + "std": 61.27963638305664, + "count": 10311, + "valid_pixels": 10311, + "total_pixels": 817678186, + "coverage_percent": 0.0012610095483212513, + "crs": "EPSG:4326", + "width": 35758, + "height": 22867, + "bounds": [ + 122.45870011895167, + 22.648194444439362, + 132.3914778967374, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Kenya.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Kenya_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Kenya" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 247.30007934570312, + "mean": 55.25901412963867, + "std": 63.86094284057617, + "count": 341243, + "valid_pixels": 341243, + "total_pixels": 123196072, + "coverage_percent": 0.2769917859069403, + "crs": "EPSG:4326", + "width": 9908, + "height": 12434, + "bounds": [ + 38.97118438848719, + -4.914387284208934, + 41.72340661071161, + -1.4604983953172823 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 247.30007934570312, + "mean": 55.25901412963867, + "std": 63.86094284057617, + "count": 341243, + "valid_pixels": 341243, + "total_pixels": 123196072, + "coverage_percent": 0.2769917859069403, + "crs": "EPSG:4326", + "width": 9908, + "height": 12434, + "bounds": [ + 38.97118438848719, + -4.914387284208934, + 41.72340661071161, + -1.4604983953172823 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Liberia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Liberia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Liberia" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 411.09234619140625, + "mean": 97.007568359375, + "std": 113.19032287597656, + "count": 78997, + "valid_pixels": 78997, + "total_pixels": 64631808, + "coverage_percent": 0.12222619549804331, + "crs": "EPSG:4326", + "width": 9216, + "height": 7013, + "bounds": [ + -11.401603875517539, + 4.907425127273572, + -8.841603875515492, + 6.855480682830686 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 411.09234619140625, + "mean": 97.007568359375, + "std": 113.19032287597656, + "count": 78997, + "valid_pixels": 78997, + "total_pixels": 64631808, + "coverage_percent": 0.12222619549804331, + "crs": "EPSG:4326", + "width": 9216, + "height": 7013, + "bounds": [ + -11.401603875517539, + 4.907425127273572, + -8.841603875515492, + 6.855480682830686 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Macau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Macau_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Macau" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 139.00912475585938, + "mean": 98.6452407836914, + "std": 25.1453857421875, + "count": 55, + "valid_pixels": 55, + "total_pixels": 116622, + "coverage_percent": 0.047160913035276364, + "crs": "EPSG:4326", + "width": 279, + "height": 418, + "bounds": [ + 113.52701652233377, + 22.105173005801177, + 113.60451652233382, + 22.221284116912383 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 139.00912475585938, + "mean": 98.6452407836914, + "std": 25.1453857421875, + "count": 55, + "valid_pixels": 55, + "total_pixels": 116622, + "coverage_percent": 0.047160913035276364, + "crs": "EPSG:4326", + "width": 279, + "height": 418, + "bounds": [ + 113.52701652233377, + 22.105173005801177, + 113.60451652233382, + 22.221284116912383 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Madagascar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Madagascar_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Madagascar" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 456.3323974609375, + "mean": 147.02464294433594, + "std": 120.96781921386719, + "count": 2950014, + "valid_pixels": 2950014, + "total_pixels": 1450574898, + "coverage_percent": 0.2033686095125024, + "crs": "EPSG:4326", + "width": 28137, + "height": 51554, + "bounds": [ + 42.96760178695098, + -26.09421475014743, + 50.78343512029056, + -11.773659194580416 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 456.3323974609375, + "mean": 147.02464294433594, + "std": 120.96781921386719, + "count": 2950014, + "valid_pixels": 2950014, + "total_pixels": 1450574898, + "coverage_percent": 0.2033686095125024, + "crs": "EPSG:4326", + "width": 28137, + "height": 51554, + "bounds": [ + 42.96760178695098, + -26.09421475014743, + 50.78343512029056, + -11.773659194580416 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Malaysia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Malaysia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Malaysia" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 290.5863342285156, + "mean": 172.58294677734375, + "std": 54.41116714477539, + "count": 5838758, + "valid_pixels": 5838758, + "total_pixels": 1676728959, + "coverage_percent": 0.34822312626378393, + "crs": "EPSG:4326", + "width": 71787, + "height": 23357, + "bounds": [ + 99.42602848942141, + 0.9755314908418464, + 119.3668618227707, + 7.463587046402592 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 290.5863342285156, + "mean": 172.58294677734375, + "std": 54.41116714477539, + "count": 5838758, + "valid_pixels": 5838758, + "total_pixels": 1676728959, + "coverage_percent": 0.34822312626378393, + "crs": "EPSG:4326", + "width": 71787, + "height": 23357, + "bounds": [ + 99.42602848942141, + 0.9755314908418464, + 119.3668618227707, + 7.463587046402592 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Martinique.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Martinique_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Martinique" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 135.97067260742188, + "mean": 54.602725982666016, + "std": 36.368431091308594, + "count": 11676, + "valid_pixels": 11676, + "total_pixels": 965550, + "coverage_percent": 1.2092589715706075, + "crs": "EPSG:4326", + "width": 785, + "height": 1230, + "bounds": [ + -61.04217303805881, + 14.411546868218043, + -60.824117482503084, + 14.753213534884983 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 135.97067260742188, + "mean": 54.602725982666016, + "std": 36.368431091308594, + "count": 11676, + "valid_pixels": 11676, + "total_pixels": 965550, + "coverage_percent": 1.2092589715706075, + "crs": "EPSG:4326", + "width": 785, + "height": 1230, + "bounds": [ + -61.04217303805881, + 14.411546868218043, + -60.824117482503084, + 14.753213534884983 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Mauritania.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Mauritania_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Mauritania" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 56.34900665283203, + "mean": 29.158611297607422, + "std": 17.61500358581543, + "count": 306, + "valid_pixels": 306, + "total_pixels": 27720, + "coverage_percent": 1.103896103896104, + "crs": "EPSG:4326", + "width": 165, + "height": 168, + "bounds": [ + -16.491458545260958, + 16.06522377861867, + -16.445625211927588, + 16.111890445285372 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 56.34900665283203, + "mean": 29.158611297607422, + "std": 17.61500358581543, + "count": 306, + "valid_pixels": 306, + "total_pixels": 27720, + "coverage_percent": 1.103896103896104, + "crs": "EPSG:4326", + "width": 165, + "height": 168, + "bounds": [ + -16.491458545260958, + 16.06522377861867, + -16.445625211927588, + 16.111890445285372 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Mayotte.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Mayotte_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Mayotte" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 397.73529052734375, + "mean": 152.07005310058594, + "std": 107.54376220703125, + "count": 5549, + "valid_pixels": 5549, + "total_pixels": 1519590, + "coverage_percent": 0.3651642877355076, + "crs": "EPSG:4326", + "width": 1110, + "height": 1369, + "bounds": [ + 45.00319646429905, + -13.009219570910638, + 45.31152979763263, + -12.628941793132556 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 397.73529052734375, + "mean": 152.07005310058594, + "std": 107.54376220703125, + "count": 5549, + "valid_pixels": 5549, + "total_pixels": 1519590, + "coverage_percent": 0.3651642877355076, + "crs": "EPSG:4326", + "width": 1110, + "height": 1369, + "bounds": [ + 45.00319646429905, + -13.009219570910638, + 45.31152979763263, + -12.628941793132556 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Mexico.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Mexico_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Mexico" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 135.97067260742188, + "mean": 37.715030670166016, + "std": 38.60490036010742, + "count": 7765926, + "valid_pixels": 7765926, + "total_pixels": 6702382710, + "coverage_percent": 0.11586813728814958, + "crs": "EPSG:4326", + "width": 112755, + "height": 59442, + "bounds": [ + -117.64705634559239, + 14.488472222209012, + -86.32622301223401, + 31.000138888888888 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 135.97067260742188, + "mean": 37.715030670166016, + "std": 38.60490036010742, + "count": 7765926, + "valid_pixels": 7765926, + "total_pixels": 6702382710, + "coverage_percent": 0.11586813728814958, + "crs": "EPSG:4326", + "width": 112755, + "height": 59442, + "bounds": [ + -117.64705634559239, + 14.488472222209012, + -86.32622301223401, + 31.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Micronesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Micronesia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Micronesia" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 366.41400146484375, + "mean": 188.9944305419922, + "std": 83.97492980957031, + "count": 103256, + "valid_pixels": 103256, + "total_pixels": 3439702968, + "coverage_percent": 0.0030018871094569465, + "crs": "EPSG:4326", + "width": 96006, + "height": 35828, + "bounds": [ + 137.0547355699553, + 0.5240156726249232, + 163.72306890330998, + 10.476237894855107 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 366.41400146484375, + "mean": 188.9944305419922, + "std": 83.97492980957031, + "count": 103256, + "valid_pixels": 103256, + "total_pixels": 3439702968, + "coverage_percent": 0.0030018871094569465, + "crs": "EPSG:4326", + "width": 96006, + "height": 35828, + "bounds": [ + 137.0547355699553, + 0.5240156726249232, + 163.72306890330998, + 10.476237894855107 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Mozambique.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Mozambique_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Mozambique" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 247.30007934570312, + "mean": 74.28968048095703, + "std": 64.6837158203125, + "count": 3539233, + "valid_pixels": 3539233, + "total_pixels": 1972799776, + "coverage_percent": 0.17940153091339361, + "crs": "EPSG:4326", + "width": 33104, + "height": 59594, + "bounds": [ + 32.10071331019423, + -26.875823413771545, + 41.29626886575714, + -10.321934524869416 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 247.30007934570312, + "mean": 74.28968048095703, + "std": 64.6837158203125, + "count": 3539233, + "valid_pixels": 3539233, + "total_pixels": 1972799776, + "coverage_percent": 0.17940153091339361, + "crs": "EPSG:4326", + "width": 33104, + "height": 59594, + "bounds": [ + 32.10071331019423, + -26.875823413771545, + 41.29626886575714, + -10.321934524869416 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Myanmar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Myanmar_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Myanmar" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 257.3346862792969, + "mean": 131.02894592285156, + "std": 54.19345474243164, + "count": 5150825, + "valid_pixels": 5150825, + "total_pixels": 1252849500, + "coverage_percent": 0.411128790808473, + "crs": "EPSG:4326", + "width": 25660, + "height": 48825, + "bounds": [ + 92.17192368383758, + 8.605406051723765, + 99.29970146162105, + 22.167906051734615 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 257.3346862792969, + "mean": 131.02894592285156, + "std": 54.19345474243164, + "count": 5150825, + "valid_pixels": 5150825, + "total_pixels": 1252849500, + "coverage_percent": 0.411128790808473, + "crs": "EPSG:4326", + "width": 25660, + "height": 48825, + "bounds": [ + 92.17192368383758, + 8.605406051723765, + 99.29970146162105, + 22.167906051734615 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_NewCaledonia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_NewCaledonia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "NewCaledonia" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 161.45594787597656, + "mean": 92.10297393798828, + "std": 26.202974319458008, + "count": 269771, + "valid_pixels": 269771, + "total_pixels": 1039130169, + "coverage_percent": 0.025961232581632417, + "crs": "EPSG:4326", + "width": 48587, + "height": 21387, + "bounds": [ + 155.6835657771306, + -23.000172750893213, + 169.17995466603028, + -17.05933941755513 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 161.45594787597656, + "mean": 92.10297393798828, + "std": 26.202974319458008, + "count": 269771, + "valid_pixels": 269771, + "total_pixels": 1039130169, + "coverage_percent": 0.025961232581632417, + "crs": "EPSG:4326", + "width": 48587, + "height": 21387, + "bounds": [ + 155.6835657771306, + -23.000172750893213, + 169.17995466603028, + -17.05933941755513 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Newzealand.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Newzealand_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Newzealand" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 257.3346862792969, + "mean": 118.6609878540039, + "std": 47.068145751953125, + "count": 404435, + "valid_pixels": 404435, + "total_pixels": 259232401, + "coverage_percent": 0.15601251943810837, + "crs": "EPSG:4326", + "width": 18001, + "height": 14401, + "bounds": [ + 171.9998611111111, + -38.00013888889209, + 177.00013888889288, + -33.99986111111111 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 257.3346862792969, + "mean": 118.6609878540039, + "std": 47.068145751953125, + "count": 404435, + "valid_pixels": 404435, + "total_pixels": 259232401, + "coverage_percent": 0.15601251943810837, + "crs": "EPSG:4326", + "width": 18001, + "height": 14401, + "bounds": [ + 171.9998611111111, + -38.00013888889208, + 177.00013888889288, + -33.99986111111111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Nicaragua.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Nicaragua_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Nicaragua" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 149.85511779785156, + "mean": 55.0744743347168, + "std": 40.15216064453125, + "count": 790317, + "valid_pixels": 790317, + "total_pixels": 311211176, + "coverage_percent": 0.2539487849240993, + "crs": "EPSG:4326", + "width": 20164, + "height": 15434, + "bounds": [ + -87.84374281703877, + 10.742658262611588, + -82.24263170592319, + 15.02988048483724 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 149.85511779785156, + "mean": 55.0744743347168, + "std": 40.15216064453125, + "count": 790317, + "valid_pixels": 790317, + "total_pixels": 311211176, + "coverage_percent": 0.2539487849240993, + "crs": "EPSG:4326", + "width": 20164, + "height": 15434, + "bounds": [ + -87.84374281703877, + 10.742658262611588, + -82.24263170592319, + 15.02988048483724 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Nigeria.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Nigeria_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Nigeria" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 355.327880859375, + "mean": 96.7176513671875, + "std": 93.12237548828125, + "count": 7313416, + "valid_pixels": 7313416, + "total_pixels": 181026574, + "coverage_percent": 4.039968187212116, + "crs": "EPSG:4326", + "width": 21403, + "height": 8458, + "bounds": [ + 2.706058195853941, + 4.290355279708679, + 8.651335973636474, + 6.639799724155003 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 355.327880859375, + "mean": 96.7176513671875, + "std": 93.12237548828125, + "count": 7313416, + "valid_pixels": 7313416, + "total_pixels": 181026574, + "coverage_percent": 4.039968187212116, + "crs": "EPSG:4326", + "width": 21403, + "height": 8458, + "bounds": [ + 2.706058195853941, + 4.290355279708679, + 8.651335973636474, + 6.639799724155003 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_NorthernMarianaIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_NorthernMarianaIslands_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "NorthernMarianaIslands" + }, + "original_stats": { + "min": 108.58424377441406, + "max": 507.4132080078125, + "mean": 397.5404357910156, + "std": 92.1244125366211, + "count": 132, + "valid_pixels": 132, + "total_pixels": 142229920, + "coverage_percent": 9.280747679531844e-05, + "crs": "EPSG:4326", + "width": 5887, + "height": 24160, + "bounds": [ + 144.66525013476775, + 14.00472703201465, + 146.30052791254684, + 20.71583814313113 + ] + }, + "cog_stats": { + "min": 108.58424377441406, + "max": 507.4132080078125, + "mean": 397.5404357910156, + "std": 92.1244125366211, + "count": 132, + "valid_pixels": 132, + "total_pixels": 142229920, + "coverage_percent": 9.280747679531844e-05, + "crs": "EPSG:4326", + "width": 5887, + "height": 24160, + "bounds": [ + 144.66525013476775, + 14.00472703201465, + 146.30052791254684, + 20.71583814313113 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Oman.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Oman_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Oman" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 186.71339416503906, + "mean": 33.74578857421875, + "std": 48.62370300292969, + "count": 2621, + "valid_pixels": 2621, + "total_pixels": 942006975, + "coverage_percent": 0.000278235731747103, + "crs": "EPSG:4326", + "width": 25415, + "height": 37065, + "bounds": [ + 52.99997672674432, + 16.321408996785937, + 60.05969894897219, + 26.617242330127507 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 186.71339416503906, + "mean": 33.74578857421875, + "std": 48.62370300292969, + "count": 2621, + "valid_pixels": 2621, + "total_pixels": 942006975, + "coverage_percent": 0.000278235731747103, + "crs": "EPSG:4326", + "width": 25415, + "height": 37065, + "bounds": [ + 52.99997672674432, + 16.321408996785937, + 60.05969894897218, + 26.617242330127507 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Pakistan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Pakistan_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Pakistan" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 46.462074279785156, + "mean": 17.91891098022461, + "std": 13.770136833190918, + "count": 621000, + "valid_pixels": 621000, + "total_pixels": 201857775, + "coverage_percent": 0.3076423486784198, + "crs": "EPSG:4326", + "width": 25185, + "height": 8015, + "bounds": [ + 61.540878410173256, + 23.584002230329638, + 68.53671174351219, + 25.81039111922031 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 46.462074279785156, + "mean": 17.91891098022461, + "std": 13.770136833190918, + "count": 621000, + "valid_pixels": 621000, + "total_pixels": 201857775, + "coverage_percent": 0.3076423486784198, + "crs": "EPSG:4326", + "width": 25185, + "height": 8015, + "bounds": [ + 61.540878410173256, + 23.584002230329638, + 68.53671174351219, + 25.81039111922031 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Palau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Palau_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Palau" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 346.21343994140625, + "mean": 181.34219360351562, + "std": 70.96807861328125, + "count": 56654, + "valid_pixels": 56654, + "total_pixels": 258657384, + "coverage_percent": 0.02190310561557369, + "crs": "EPSG:4326", + "width": 13674, + "height": 18916, + "bounds": [ + 131.02508914525566, + 2.9088728726669792, + 134.82342247859202, + 8.163317317115627 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 346.21343994140625, + "mean": 181.34219360351562, + "std": 70.96807861328125, + "count": 56654, + "valid_pixels": 56654, + "total_pixels": 258657384, + "coverage_percent": 0.02190310561557369, + "crs": "EPSG:4326", + "width": 13674, + "height": 18916, + "bounds": [ + 131.02508914525566, + 2.9088728726669792, + 134.82342247859202, + 8.163317317115627 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Panama.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Panama_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Panama" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 372.6358947753906, + "mean": 155.49876403808594, + "std": 109.18187713623047, + "count": 1619360, + "valid_pixels": 1619360, + "total_pixels": 240121740, + "coverage_percent": 0.6743912483725963, + "crs": "EPSG:4326", + "width": 20532, + "height": 11695, + "bounds": [ + -83.05194398561447, + 6.972076906008147, + -77.34861065227658, + 10.220688017121857 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 372.6358947753906, + "mean": 155.49876403808594, + "std": 109.18187713623047, + "count": 1619360, + "valid_pixels": 1619360, + "total_pixels": 240121740, + "coverage_percent": 0.6743912483725963, + "crs": "EPSG:4326", + "width": 20532, + "height": 11695, + "bounds": [ + -83.05194398561447, + 6.972076906008147, + -77.34861065227658, + 10.220688017121857 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_PapuaNewGuinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_PapuaNewGuinea_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "PapuaNewGuinea" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 432.4564208984375, + "mean": 242.1171417236328, + "std": 93.69095611572266, + "count": 4996875, + "valid_pixels": 4996875, + "total_pixels": 2426912824, + "coverage_percent": 0.20589429297111003, + "crs": "EPSG:4326", + "width": 58184, + "height": 41711, + "bounds": [ + 140.9929604685411, + -12.094017993778076, + 157.15518269077626, + -0.5076291048799185 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 432.4564208984375, + "mean": 242.1171417236328, + "std": 93.69095611572266, + "count": 4996875, + "valid_pixels": 4996875, + "total_pixels": 2426912824, + "coverage_percent": 0.20589429297111003, + "crs": "EPSG:4326", + "width": 58184, + "height": 41711, + "bounds": [ + 140.9929604685411, + -12.094017993778076, + 157.15518269077626, + -0.5076291048799185 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Peru.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Peru_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Peru" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 40.079681396484375, + "std": 27.356441497802734, + "count": 42776, + "valid_pixels": 42776, + "total_pixels": 44966519, + "coverage_percent": 0.09512855553706526, + "crs": "EPSG:4326", + "width": 4069, + "height": 11051, + "bounds": [ + -81.3512894015842, + -6.472211090354713, + -80.22101162380551, + -3.402488868130035 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 40.079681396484375, + "std": 27.356441497802734, + "count": 42776, + "valid_pixels": 42776, + "total_pixels": 44966519, + "coverage_percent": 0.09512855553706526, + "crs": "EPSG:4326", + "width": 4069, + "height": 11051, + "bounds": [ + -81.3512894015842, + -6.472211090354714, + -80.22101162380551, + -3.402488868130035 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Philipines.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Philipines_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Philipines" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 198.97454833984375, + "mean": 110.12387084960938, + "std": 36.502166748046875, + "count": 2706402, + "valid_pixels": 2706402, + "total_pixels": 2172483840, + "coverage_percent": 0.12457639270633193, + "crs": "EPSG:4326", + "width": 35680, + "height": 60888, + "bounds": [ + 116.8043271340159, + 4.234699509026715, + 126.71543824513495, + 21.148032842373578 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 198.97454833984375, + "mean": 110.12387084960938, + "std": 36.502166748046875, + "count": 2706402, + "valid_pixels": 2706402, + "total_pixels": 2172483840, + "coverage_percent": 0.12457639270633193, + "crs": "EPSG:4326", + "width": 35680, + "height": 60888, + "bounds": [ + 116.8043271340159, + 4.234699509026715, + 126.71543824513495, + 21.148032842373578 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_PuertoRico.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_PuertoRico_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "PuertoRico" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 63.98491668701172, + "mean": 21.769948959350586, + "std": 18.058673858642578, + "count": 86885, + "valid_pixels": 86885, + "total_pixels": 29758212, + "coverage_percent": 0.2919698266817912, + "crs": "EPSG:4326", + "width": 10989, + "height": 2708, + "bounds": [ + -68.02373939010596, + 17.833478116558542, + -64.97123939010352, + 18.585700338781365 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 63.98491668701172, + "mean": 21.769948959350586, + "std": 18.058673858642578, + "count": 86885, + "valid_pixels": 86885, + "total_pixels": 29758212, + "coverage_percent": 0.2919698266817912, + "crs": "EPSG:4326", + "width": 10989, + "height": 2708, + "bounds": [ + -68.02373939010596, + 17.833478116558542, + -64.97123939010352, + 18.585700338781365 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Qatar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Qatar_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Qatar" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 66.98716735839844, + "mean": 18.018388748168945, + "std": 17.17057991027832, + "count": 4470, + "valid_pixels": 4470, + "total_pixels": 37809744, + "coverage_percent": 0.011822349286469646, + "crs": "EPSG:4326", + "width": 6288, + "height": 6013, + "bounds": [ + 50.722374702658435, + 24.546690317683062, + 52.4690413693265, + 26.216968095462175 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 66.98716735839844, + "mean": 18.018388748168945, + "std": 17.17057991027832, + "count": 4470, + "valid_pixels": 4470, + "total_pixels": 37809744, + "coverage_percent": 0.011822349286469646, + "crs": "EPSG:4326", + "width": 6288, + "height": 6013, + "bounds": [ + 50.722374702658435, + 24.546690317683062, + 52.4690413693265, + 26.216968095462175 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_ReunionAndMauritius.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_ReunionAndMauritius_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "ReunionAndMauritius" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 343.38983154296875, + "mean": 65.67887115478516, + "std": 98.39962768554688, + "count": 360, + "valid_pixels": 360, + "total_pixels": 90100780, + "coverage_percent": 0.0003995525898887889, + "crs": "EPSG:4326", + "width": 12628, + "height": 7135, + "bounds": [ + 54.49238418722549, + -21.7320337410071, + 58.00016196500607, + -19.75008929656107 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 343.38983154296875, + "mean": 65.67887115478516, + "std": 98.39962768554688, + "count": 360, + "valid_pixels": 360, + "total_pixels": 90100780, + "coverage_percent": 0.0003995525898887889, + "crs": "EPSG:4326", + "width": 12628, + "height": 7135, + "bounds": [ + 54.49238418722549, + -21.7320337410071, + 58.00016196500607, + -19.75008929656107 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_SaintKittsAndNevis.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_SaintKittsAndNevis_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "SaintKittsAndNevis" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 31.649229049682617, + "std": 30.82720947265625, + "count": 570, + "valid_pixels": 570, + "total_pixels": 209568, + "coverage_percent": 0.27198808978469996, + "crs": "EPSG:4326", + "width": 296, + "height": 708, + "bounds": [ + -62.707448611789275, + 17.133546532524797, + -62.62522638956699, + 17.330213199191622 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 31.649229049682617, + "std": 30.82720947265625, + "count": 570, + "valid_pixels": 570, + "total_pixels": 209568, + "coverage_percent": 0.27198808978469996, + "crs": "EPSG:4326", + "width": 296, + "height": 708, + "bounds": [ + -62.707448611789275, + 17.133546532524797, + -62.62522638956699, + 17.330213199191622 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_SaintLucia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_SaintLucia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "SaintLucia" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 179.11941528320312, + "mean": 71.6431884765625, + "std": 41.439395904541016, + "count": 1497, + "valid_pixels": 1497, + "total_pixels": 529760, + "coverage_percent": 0.28258079130172153, + "crs": "EPSG:4326", + "width": 440, + "height": 1204, + "bounds": [ + -61.010266910129126, + 13.74513265397787, + -60.888044687906806, + 14.079577098422583 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 179.11941528320312, + "mean": 71.6431884765625, + "std": 41.439395904541016, + "count": 1497, + "valid_pixels": 1497, + "total_pixels": 529760, + "coverage_percent": 0.28258079130172153, + "crs": "EPSG:4326", + "width": 440, + "height": 1204, + "bounds": [ + -61.010266910129126, + 13.74513265397787, + -60.888044687906806, + 14.079577098422583 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_SaintVincentAndTheGrenadines.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_SaintVincentAndTheGrenadines_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "SaintVincentAndTheGrenadines" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 499.2011413574219, + "mean": 81.29788970947266, + "std": 125.06705474853516, + "count": 464, + "valid_pixels": 464, + "total_pixels": 2155920, + "coverage_percent": 0.02152213440201863, + "crs": "EPSG:4326", + "width": 1040, + "height": 2073, + "bounds": [ + -61.43353808932835, + 12.583016035291424, + -61.14464920043923, + 13.158849368625217 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 499.2011413574219, + "mean": 81.29788970947266, + "std": 125.06705474853516, + "count": 464, + "valid_pixels": 464, + "total_pixels": 2155920, + "coverage_percent": 0.02152213440201863, + "crs": "EPSG:4326", + "width": 1040, + "height": 2073, + "bounds": [ + -61.43353808932835, + 12.583016035291424, + -61.14464920043923, + 13.158849368625217 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Samoa.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Samoa_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Samoa" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 257.3346862792969, + "mean": 139.48052978515625, + "std": 53.41978454589844, + "count": 3480, + "valid_pixels": 3480, + "total_pixels": 12964224, + "coverage_percent": 0.02684310298865555, + "crs": "EPSG:4326", + "width": 5194, + "height": 2496, + "bounds": [ + -172.82225087917433, + -14.10419825234454, + -171.3794731013954, + -13.410864919010653 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 257.3346862792969, + "mean": 139.48052978515625, + "std": 53.41978454589844, + "count": 3480, + "valid_pixels": 3480, + "total_pixels": 12964224, + "coverage_percent": 0.02684310298865555, + "crs": "EPSG:4326", + "width": 5194, + "height": 2496, + "bounds": [ + -172.82225087917433, + -14.10419825234454, + -171.3794731013954, + -13.410864919010653 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_SaudiArabia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_SaudiArabia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "SaudiArabia" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 91.27119445800781, + "mean": 16.218847274780273, + "std": 24.658296585083008, + "count": 75849, + "valid_pixels": 75849, + "total_pixels": 2891849400, + "coverage_percent": 0.0026228544266516784, + "crs": "EPSG:4326", + "width": 61496, + "height": 47025, + "bounds": [ + 34.4739559157922, + 15.937638888878439, + 51.55617813802809, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 91.27119445800781, + "mean": 16.218847274780273, + "std": 24.658296585083008, + "count": 75849, + "valid_pixels": 75849, + "total_pixels": 2891849400, + "coverage_percent": 0.0026228544266516784, + "crs": "EPSG:4326", + "width": 61496, + "height": 47025, + "bounds": [ + 34.4739559157922, + 15.937638888878439, + 51.55617813802809, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Senegal.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Senegal_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Senegal" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 87.49435424804688, + "mean": 28.367034912109375, + "std": 23.468713760375977, + "count": 1745529, + "valid_pixels": 1745529, + "total_pixels": 109483700, + "coverage_percent": 1.5943277401110851, + "crs": "EPSG:4326", + "width": 7948, + "height": 13775, + "bounds": [ + -17.000138888888888, + 12.344137268063344, + -14.792361111109344, + 16.170526156955294 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 87.49435424804688, + "mean": 28.367034912109375, + "std": 23.468713760375977, + "count": 1745529, + "valid_pixels": 1745529, + "total_pixels": 109483700, + "coverage_percent": 1.5943277401110851, + "crs": "EPSG:4326", + "width": 7948, + "height": 13775, + "bounds": [ + -17.000138888888888, + 12.344137268063346, + -14.792361111109344, + 16.170526156955294 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Seychelles.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Seychelles_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Seychelles" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 293.2582092285156, + "mean": 114.40365600585938, + "std": 78.17609405517578, + "count": 11601, + "valid_pixels": 11601, + "total_pixels": 980616984, + "coverage_percent": 0.0011830307030456246, + "crs": "EPSG:4326", + "width": 37451, + "height": 26184, + "bounds": [ + 46.03785707668964, + -10.50867439353699, + 56.440912632253514, + -3.235341060197839 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 293.2582092285156, + "mean": 114.40365600585938, + "std": 78.17609405517578, + "count": 11601, + "valid_pixels": 11601, + "total_pixels": 980616984, + "coverage_percent": 0.0011830307030456246, + "crs": "EPSG:4326", + "width": 37451, + "height": 26184, + "bounds": [ + 46.03785707668964, + -10.50867439353699, + 56.440912632253514, + -3.235341060197839 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_SierraLeone.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_SierraLeone_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "SierraLeone" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 277.1248779296875, + "mean": 74.6765365600586, + "std": 75.98397827148438, + "count": 1665720, + "valid_pixels": 1665720, + "total_pixels": 52041600, + "coverage_percent": 3.2007470946319865, + "crs": "EPSG:4326", + "width": 6255, + "height": 8320, + "bounds": [ + -13.297278056674534, + 6.973954535534518, + -11.559778056673144, + 9.285065646647478 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 277.1248779296875, + "mean": 74.6765365600586, + "std": 75.98397827148438, + "count": 1665720, + "valid_pixels": 1665720, + "total_pixels": 52041600, + "coverage_percent": 3.2007470946319865, + "crs": "EPSG:4326", + "width": 6255, + "height": 8320, + "bounds": [ + -13.297278056674534, + 6.973954535534517, + -11.559778056673144, + 9.285065646647478 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Singapore.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Singapore_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Singapore" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 290.5863342285156, + "mean": 151.98861694335938, + "std": 61.797420501708984, + "count": 5973, + "valid_pixels": 5973, + "total_pixels": 2081136, + "coverage_percent": 0.28700671171898423, + "crs": "EPSG:4326", + "width": 1816, + "height": 1146, + "bounds": [ + 103.60417940966882, + 1.1564778472742534, + 104.10862385411366, + 1.4748111806078414 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 290.5863342285156, + "mean": 151.98861694335938, + "std": 61.797420501708984, + "count": 5973, + "valid_pixels": 5973, + "total_pixels": 2081136, + "coverage_percent": 0.28700671171898423, + "crs": "EPSG:4326", + "width": 1816, + "height": 1146, + "bounds": [ + 103.60417940966882, + 1.1564778472742534, + 104.10862385411366, + 1.4748111806078414 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_SolomonIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_SolomonIslands_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "SolomonIslands" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 366.41400146484375, + "mean": 185.84400939941406, + "std": 86.84092712402344, + "count": 491696, + "valid_pixels": 491696, + "total_pixels": 1649606942, + "coverage_percent": 0.02980685807516443, + "crs": "EPSG:4326", + "width": 55651, + "height": 29642, + "bounds": [ + 155.3234818290618, + -12.469134273431159, + 170.78209294018527, + -4.235245384535683 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 366.41400146484375, + "mean": 185.84400939941406, + "std": 86.84092712402344, + "count": 491696, + "valid_pixels": 491696, + "total_pixels": 1649606942, + "coverage_percent": 0.02980685807516443, + "crs": "EPSG:4326", + "width": 55651, + "height": 29642, + "bounds": [ + 155.3234818290618, + -12.469134273431159, + 170.78209294018527, + -4.235245384535683 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Somalia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Somalia_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Somalia" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 134.01925659179688, + "mean": 30.468515396118164, + "std": 37.12059020996094, + "count": 22396, + "valid_pixels": 22396, + "total_pixels": 239590960, + "coverage_percent": 0.009347598089677507, + "crs": "EPSG:4326", + "width": 36412, + "height": 6580, + "bounds": [ + 41.4598356917426, + -1.827638888890351, + 51.574280136195135, + 0.0001388888888888889 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 134.01925659179688, + "mean": 30.468515396118164, + "std": 37.12059020996094, + "count": 22396, + "valid_pixels": 22396, + "total_pixels": 239590960, + "coverage_percent": 0.009347598089677507, + "crs": "EPSG:4326", + "width": 36412, + "height": 6580, + "bounds": [ + 41.4598356917426, + -1.827638888890351, + 51.57428013619513, + 0.0001388888888888889 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Somalia2.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Somalia2_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Somalia2" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 119.31805419921875, + "mean": 31.90279769897461, + "std": 32.8672981262207, + "count": 4649, + "valid_pixels": 4649, + "total_pixels": 1722141952, + "coverage_percent": 0.0002699545176633616, + "crs": "EPSG:4326", + "width": 36412, + "height": 47296, + "bounds": [ + 41.4598356917426, + -1.0002255074339033, + 51.574280136195135, + 12.137552270354384 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 119.31805419921875, + "mean": 31.90279769897461, + "std": 32.8672981262207, + "count": 4649, + "valid_pixels": 4649, + "total_pixels": 1722141952, + "coverage_percent": 0.0002699545176633616, + "crs": "EPSG:4326", + "width": 36412, + "height": 47296, + "bounds": [ + 41.4598356917426, + -1.0002255074339033, + 51.57428013619513, + 12.137552270354384 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Soudan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Soudan_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Soudan" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 46.462074279785156, + "mean": 10.987558364868164, + "std": 14.009610176086426, + "count": 3588, + "valid_pixels": 3588, + "total_pixels": 119224401, + "coverage_percent": 0.0030094510602741466, + "crs": "EPSG:4326", + "width": 8121, + "height": 14681, + "bounds": [ + 36.530135257977456, + 17.92339942337211, + 38.785968591312596, + 22.00145497893093 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 46.462074279785156, + "mean": 10.987558364868164, + "std": 14.009610176086426, + "count": 3588, + "valid_pixels": 3588, + "total_pixels": 119224401, + "coverage_percent": 0.0030094510602741466, + "crs": "EPSG:4326", + "width": 8121, + "height": 14681, + "bounds": [ + 36.530135257977456, + 17.92339942337211, + 38.785968591312596, + 22.00145497893093 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_SouthAfrica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_SouthAfrica_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "SouthAfrica" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 519.2168579101562, + "mean": 160.8783416748047, + "std": 159.16729736328125, + "count": 16951, + "valid_pixels": 16951, + "total_pixels": 58940100, + "coverage_percent": 0.028759706888858348, + "crs": "EPSG:4326", + "width": 7615, + "height": 7740, + "bounds": [ + 30.999861111111112, + -29.000003245059055, + 33.115138888890584, + -26.850003245057334 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 519.2168579101562, + "mean": 160.8783416748047, + "std": 159.16729736328125, + "count": 16951, + "valid_pixels": 16951, + "total_pixels": 58940100, + "coverage_percent": 0.028759706888858348, + "crs": "EPSG:4326", + "width": 7615, + "height": 7740, + "bounds": [ + 30.999861111111112, + -29.000003245059055, + 33.115138888890584, + -26.850003245057334 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_SriLanka.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_SriLanka_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "SriLanka" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 151.13113403320312, + "mean": 43.36505889892578, + "std": 41.14397048950195, + "count": 242946, + "valid_pixels": 242946, + "total_pixels": 168358523, + "coverage_percent": 0.14430276274162845, + "crs": "EPSG:4326", + "width": 10459, + "height": 16097, + "bounds": [ + 79.24055152537368, + 5.523006162575908, + 82.14582930315377, + 9.994395051468373 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 151.13113403320312, + "mean": 43.36505889892578, + "std": 41.14397048950195, + "count": 242946, + "valid_pixels": 242946, + "total_pixels": 168358523, + "coverage_percent": 0.14430276274162845, + "crs": "EPSG:4326", + "width": 10459, + "height": 16097, + "bounds": [ + 79.24055152537368, + 5.523006162575908, + 82.14582930315377, + 9.994395051468373 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Suriname.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Suriname_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Suriname" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 260.5316162109375, + "mean": 80.69094848632812, + "std": 80.49768829345703, + "count": 910279, + "valid_pixels": 910279, + "total_pixels": 17724420, + "coverage_percent": 5.135733637546391, + "crs": "EPSG:4326", + "width": 11340, + "height": 1563, + "bounds": [ + -57.15874255710178, + 5.577435387505078, + -54.00874255709926, + 6.0116020541720925 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 260.5316162109375, + "mean": 80.69094848632812, + "std": 80.49768829345703, + "count": 910279, + "valid_pixels": 910279, + "total_pixels": 17724420, + "coverage_percent": 5.135733637546391, + "crs": "EPSG:4326", + "width": 11340, + "height": 1563, + "bounds": [ + -57.15874255710178, + 5.577435387505078, + -54.00874255709926, + 6.0116020541720925 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Taiwan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Taiwan_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Taiwan" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 161.45594787597656, + "mean": 96.4197998046875, + "std": 28.06827163696289, + "count": 1562, + "valid_pixels": 1562, + "total_pixels": 373523577, + "coverage_percent": 0.0004181797605777372, + "crs": "EPSG:4326", + "width": 20027, + "height": 18651, + "bounds": [ + 116.65220759501844, + 20.546223782170895, + 122.21526315057844, + 25.727057115508373 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 161.45594787597656, + "mean": 96.4197998046875, + "std": 28.06827163696289, + "count": 1562, + "valid_pixels": 1562, + "total_pixels": 373523577, + "coverage_percent": 0.0004181797605777372, + "crs": "EPSG:4326", + "width": 20027, + "height": 18651, + "bounds": [ + 116.65220759501844, + 20.546223782170895, + 122.21526315057844, + 25.727057115508373 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Tanzania.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Tanzania_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Tanzania" + }, + "original_stats": { + "min": 0.2844882905483246, + "max": 519.2168579101562, + "mean": 181.9053955078125, + "std": 144.522216796875, + "count": 1006129, + "valid_pixels": 1006129, + "total_pixels": 194145627, + "coverage_percent": 0.5182341809841536, + "crs": "EPSG:4326", + "width": 8529, + "height": 22763, + "bounds": [ + 38.28628600041123, + -10.82903861973336, + 40.65545266707979, + -4.505983064172748 + ] + }, + "cog_stats": { + "min": 0.2844882905483246, + "max": 519.2168579101562, + "mean": 181.9053955078125, + "std": 144.522216796875, + "count": 1006129, + "valid_pixels": 1006129, + "total_pixels": 194145627, + "coverage_percent": 0.5182341809841536, + "crs": "EPSG:4326", + "width": 8529, + "height": 22763, + "bounds": [ + 38.28628600041123, + -10.82903861973336, + 40.65545266707979, + -4.505983064172748 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Thailand.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Thailand_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Thailand" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 185.9183349609375, + "mean": 126.1576919555664, + "std": 29.427217483520508, + "count": 2596697, + "valid_pixels": 2596697, + "total_pixels": 574569450, + "coverage_percent": 0.4519378814867376, + "crs": "EPSG:4326", + "width": 20475, + "height": 28062, + "bounds": [ + 97.3937716291951, + 6.116629205027933, + 103.08127162919965, + 13.911629205034169 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 185.9183349609375, + "mean": 126.1576919555664, + "std": 29.427217483520508, + "count": 2596697, + "valid_pixels": 2596697, + "total_pixels": 574569450, + "coverage_percent": 0.4519378814867376, + "crs": "EPSG:4326", + "width": 20475, + "height": 28062, + "bounds": [ + 97.3937716291951, + 6.116629205027933, + 103.08127162919965, + 13.911629205034169 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_TimorLeste.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_TimorLeste_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "TimorLeste" + }, + "original_stats": { + "min": 118.33956909179688, + "max": 507.4132080078125, + "mean": 320.60015869140625, + "std": 121.58843994140625, + "count": 1277, + "valid_pixels": 1277, + "total_pixels": 58979898, + "coverage_percent": 0.0021651444700701242, + "crs": "EPSG:4326", + "width": 12091, + "height": 4878, + "bounds": [ + 124.04451595730264, + -9.46070907090759, + 127.40312706841644, + -8.105709070906506 + ] + }, + "cog_stats": { + "min": 118.33956909179688, + "max": 507.4132080078125, + "mean": 320.60015869140625, + "std": 121.58843994140625, + "count": 1277, + "valid_pixels": 1277, + "total_pixels": 58979898, + "coverage_percent": 0.0021651444700701242, + "crs": "EPSG:4326", + "width": 12091, + "height": 4878, + "bounds": [ + 124.04451595730264, + -9.46070907090759, + 127.40312706841644, + -8.105709070906506 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Togo.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Togo_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Togo" + }, + "original_stats": { + "min": 1.2597330808639526, + "max": 183.85704040527344, + "mean": 39.2703971862793, + "std": 51.7873420715332, + "count": 1320, + "valid_pixels": 1320, + "total_pixels": 955680, + "coverage_percent": 0.13812154696132595, + "crs": "EPSG:4326", + "width": 1448, + "height": 660, + "bounds": [ + 1.2000859875149197, + 6.131375505659169, + 1.6023082097374637, + 6.314708838992649 + ] + }, + "cog_stats": { + "min": 1.2597330808639526, + "max": 183.85704040527344, + "mean": 39.2703971862793, + "std": 51.7873420715332, + "count": 1320, + "valid_pixels": 1320, + "total_pixels": 955680, + "coverage_percent": 0.13812154696132595, + "crs": "EPSG:4326", + "width": 1448, + "height": 660, + "bounds": [ + 1.2000859875149197, + 6.131375505659169, + 1.6023082097374637, + 6.314708838992649 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Tonga.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Tonga_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Tonga" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 128.46847534179688, + "mean": 89.931396484375, + "std": 20.30724334716797, + "count": 8683, + "valid_pixels": 8683, + "total_pixels": 257063284, + "coverage_percent": 0.0033777674761207833, + "crs": "EPSG:4326", + "width": 10292, + "height": 24977, + "bounds": [ + -176.35241720002182, + -22.439789222379467, + -173.49352831113063, + -15.501733666818362 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 128.46847534179688, + "mean": 89.931396484375, + "std": 20.30724334716797, + "count": 8683, + "valid_pixels": 8683, + "total_pixels": 257063284, + "coverage_percent": 0.0033777674761207833, + "crs": "EPSG:4326", + "width": 10292, + "height": 24977, + "bounds": [ + -176.35241720002182, + -22.439789222379467, + -173.49352831113063, + -15.501733666818362 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_TrinidadAndTobago.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_TrinidadAndTobago_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "TrinidadAndTobago" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 179.11941528320312, + "mean": 84.34247589111328, + "std": 47.567718505859375, + "count": 67597, + "valid_pixels": 67597, + "total_pixels": 22036080, + "coverage_percent": 0.3067560110509673, + "crs": "EPSG:4326", + "width": 4910, + "height": 4488, + "bounds": [ + -61.929082522922094, + 10.002546204459994, + -60.56519363403211, + 11.249212871127659 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 179.11941528320312, + "mean": 84.34247589111328, + "std": 47.567718505859375, + "count": 67597, + "valid_pixels": 67597, + "total_pixels": 22036080, + "coverage_percent": 0.3067560110509673, + "crs": "EPSG:4326", + "width": 4910, + "height": 4488, + "bounds": [ + -61.929082522922094, + 10.002546204459994, + -60.56519363403211, + 11.249212871127659 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_TurksAndCaicosIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_TurksAndCaicosIslands_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "TurksAndCaicosIslands" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 28.201784133911133, + "mean": 15.419809341430664, + "std": 7.25085973739624, + "count": 192897, + "valid_pixels": 192897, + "total_pixels": 16636365, + "coverage_percent": 1.1594900688942567, + "crs": "EPSG:4326", + "width": 5207, + "height": 3195, + "bounds": [ + -72.49965780060619, + 21.124057999267247, + -71.05326891171615, + 22.011557999267957 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 28.201784133911133, + "mean": 15.419809341430664, + "std": 7.25085973739624, + "count": 192897, + "valid_pixels": 192897, + "total_pixels": 16636365, + "coverage_percent": 1.1594900688942567, + "crs": "EPSG:4326", + "width": 5207, + "height": 3195, + "bounds": [ + -72.49965780060619, + 21.124057999267247, + -71.05326891171615, + 22.011557999267957 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Tuvalu.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Tuvalu_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Tuvalu" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 149.9948272705078, + "mean": 76.77837371826172, + "std": 32.178314208984375, + "count": 81, + "valid_pixels": 81, + "total_pixels": 279691851, + "coverage_percent": 2.896044332732454e-05, + "crs": "EPSG:4326", + "width": 14629, + "height": 19119, + "bounds": [ + 175.92957458723907, + -10.883059899755601, + 179.99318569835344, + -5.572226566418019 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 149.9948272705078, + "mean": 76.77837371826172, + "std": 32.178314208984375, + "count": 81, + "valid_pixels": 81, + "total_pixels": 279691851, + "coverage_percent": 2.896044332732454e-05, + "crs": "EPSG:4326", + "width": 14629, + "height": 19119, + "bounds": [ + 175.92957458723907, + -10.883059899755601, + 179.99318569835344, + -5.572226566418019 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_UnitedArabEmirates.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_UnitedArabEmirates_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "UnitedArabEmirates" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 66.98716735839844, + "mean": 11.900579452514648, + "std": 18.748796463012695, + "count": 136859, + "valid_pixels": 136859, + "total_pixels": 186388800, + "coverage_percent": 0.07342662220047556, + "crs": "EPSG:4326", + "width": 17922, + "height": 10400, + "bounds": [ + 51.441083215109195, + 23.728353441236308, + 56.41941654844651, + 26.617242330127507 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 66.98716735839844, + "mean": 11.900579452514648, + "std": 18.748796463012695, + "count": 136859, + "valid_pixels": 136859, + "total_pixels": 186388800, + "coverage_percent": 0.07342662220047556, + "crs": "EPSG:4326", + "width": 17922, + "height": 10400, + "bounds": [ + 51.441083215109195, + 23.728353441236308, + 56.41941654844651, + 26.617242330127507 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_UnitedStates.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_UnitedStates_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "UnitedStates" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 33.140533447265625, + "std": 25.93212127685547, + "count": 2690848, + "valid_pixels": 2690848, + "total_pixels": 1025092324, + "coverage_percent": 0.26249811231636927, + "crs": "EPSG:4326", + "width": 53188, + "height": 19273, + "bounds": [ + -94.80674899631076, + 24.52162505255377, + -80.0323045518545, + 29.875236163669165 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 97.45855712890625, + "mean": 33.140533447265625, + "std": 25.93212127685547, + "count": 2690848, + "valid_pixels": 2690848, + "total_pixels": 1025092324, + "coverage_percent": 0.26249811231636927, + "crs": "EPSG:4326", + "width": 53188, + "height": 19273, + "bounds": [ + -94.80674899631076, + 24.52162505255377, + -80.0323045518545, + 29.875236163669165 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Vanuatu.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Vanuatu_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Vanuatu" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 212.61692810058594, + "mean": 120.3436050415039, + "std": 45.038360595703125, + "count": 14910, + "valid_pixels": 14910, + "total_pixels": 746842196, + "coverage_percent": 0.0019964056771104026, + "crs": "EPSG:4326", + "width": 21503, + "height": 34732, + "bounds": [ + 166.3358361728035, + -22.567086433906525, + 172.30889172836385, + -12.919308656121027 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 212.61692810058594, + "mean": 120.3436050415039, + "std": 45.038360595703125, + "count": 14910, + "valid_pixels": 14910, + "total_pixels": 746842196, + "coverage_percent": 0.0019964056771104026, + "crs": "EPSG:4326", + "width": 21503, + "height": 34732, + "bounds": [ + 166.3358361728035, + -22.567086433906525, + 172.30889172836385, + -12.919308656121027 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Venezuela.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Venezuela_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Venezuela" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 392.7566223144531, + "mean": 183.8572998046875, + "std": 116.47213745117188, + "count": 2644121, + "valid_pixels": 2644121, + "total_pixels": 644858421, + "coverage_percent": 0.4100312431215037, + "crs": "EPSG:4326", + "width": 44841, + "height": 14381, + "bounds": [ + -72.28801120334201, + 8.316334520972553, + -59.83217786999871, + 12.311056743197971 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 392.7566223144531, + "mean": 183.8572998046875, + "std": 116.47213745117188, + "count": 2644121, + "valid_pixels": 2644121, + "total_pixels": 644858421, + "coverage_percent": 0.4100312431215037, + "crs": "EPSG:4326", + "width": 44841, + "height": 14381, + "bounds": [ + -72.28801120334201, + 8.316334520972553, + -59.83217786999871, + 12.311056743197971 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Vietnam.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Vietnam_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Vietnam" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 139.00912475585938, + "mean": 87.1203842163086, + "std": 22.137615203857422, + "count": 2168619, + "valid_pixels": 2168619, + "total_pixels": 1191634416, + "coverage_percent": 0.1819869391889064, + "crs": "EPSG:4326", + "width": 23184, + "height": 51399, + "bounds": [ + 103.7580640245313, + 7.889706614719458, + 110.19806402453645, + 22.16720661473088 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 139.00912475585938, + "mean": 87.1203842163086, + "std": 22.137615203857422, + "count": 2168619, + "valid_pixels": 2168619, + "total_pixels": 1191634416, + "coverage_percent": 0.1819869391889064, + "crs": "EPSG:4326", + "width": 23184, + "height": 51399, + "bounds": [ + 103.7580640245313, + 7.889706614719458, + 110.19806402453645, + 22.16720661473088 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_VirginIslandsUs.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_VirginIslandsUs_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "VirginIslandsUs" + }, + "original_stats": { + "min": 0.524186372756958, + "max": 164.24179077148438, + "mean": 47.06337356567383, + "std": 42.46931457519531, + "count": 2000, + "valid_pixels": 2000, + "total_pixels": 11438448, + "coverage_percent": 0.017484889558443593, + "crs": "EPSG:4326", + "width": 4039, + "height": 2832, + "bounds": [ + -65.10577253241098, + 17.642138764565917, + -63.98382808796564, + 18.428805431233215 + ] + }, + "cog_stats": { + "min": 0.524186372756958, + "max": 164.24179077148438, + "mean": 47.06337356567383, + "std": 42.46931457519531, + "count": 2000, + "valid_pixels": 2000, + "total_pixels": 11438448, + "coverage_percent": 0.017484889558443593, + "crs": "EPSG:4326", + "width": 4039, + "height": 2832, + "bounds": [ + -65.10577253241098, + 17.642138764565917, + -63.98382808796564, + 18.428805431233215 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_WallisAndFutuna.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_WallisAndFutuna_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "WallisAndFutuna" + }, + "original_stats": { + "min": 57.410160064697266, + "max": 212.61692810058594, + "mean": 124.67073822021484, + "std": 44.846622467041016, + "count": 149, + "valid_pixels": 149, + "total_pixels": 34381422, + "coverage_percent": 0.000433373581814039, + "crs": "EPSG:4326", + "width": 7671, + "height": 4482, + "bounds": [ + -178.22013079463355, + -14.398348380826418, + -176.08929746129851, + -13.153348380825422 + ] + }, + "cog_stats": { + "min": 57.410160064697266, + "max": 212.61692810058594, + "mean": 124.67073822021484, + "std": 44.846622467041016, + "count": 149, + "valid_pixels": 149, + "total_pixels": 34381422, + "coverage_percent": 0.000433373581814039, + "crs": "EPSG:4326", + "width": 7671, + "height": 4482, + "bounds": [ + -178.22013079463355, + -14.398348380826416, + -176.08929746129851, + -13.153348380825422 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_agb_Yemen.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_agb_Yemen_2000year.tif", + "metadata": { + "data_type": "agb", + "region": "Yemen" + }, + "original_stats": { + "min": 0.4575078785419464, + "max": 91.27119445800781, + "mean": 35.227481842041016, + "std": 23.536054611206055, + "count": 11397, + "valid_pixels": 11397, + "total_pixels": 863684178, + "coverage_percent": 0.0013195795743753916, + "crs": "EPSG:4326", + "width": 47057, + "height": 18354, + "bounds": [ + 41.59284821307784, + 11.78525113122194, + 54.66423710197719, + 16.883584464559352 + ] + }, + "cog_stats": { + "min": 0.4575078785419464, + "max": 91.27119445800781, + "mean": 35.227481842041016, + "std": 23.536054611206055, + "count": 11397, + "valid_pixels": 11397, + "total_pixels": 863684178, + "coverage_percent": 0.0013195795743753916, + "crs": "EPSG:4326", + "width": 47057, + "height": 18354, + "bounds": [ + 41.59284821307784, + 11.78525113122194, + 54.66423710197719, + 16.883584464559352 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_AndamanAndNicobar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_AndamanAndNicobar_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "AndamanAndNicobar" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 22.58340072631836, + "mean": 12.591209411621094, + "std": 5.4537577629089355, + "count": 675458, + "valid_pixels": 675458, + "total_pixels": 270678281, + "coverage_percent": 0.24954274037228721, + "crs": "EPSG:4326", + "width": 8287, + "height": 32663, + "bounds": [ + 91.69817764407432, + 6.374158522521313, + 94.00012208852061, + 15.447214078084126 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 22.58340072631836, + "mean": 12.591209411621094, + "std": 5.4537577629089355, + "count": 675458, + "valid_pixels": 675458, + "total_pixels": 270678281, + "coverage_percent": 0.24954274037228721, + "crs": "EPSG:4326", + "width": 8287, + "height": 32663, + "bounds": [ + 91.69817764407432, + 6.374158522521313, + 94.00012208852061, + 15.447214078084126 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Angola.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Angola_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Angola" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 29.03580093383789, + "mean": 10.317724227905273, + "std": 7.659730911254883, + "count": 283969, + "valid_pixels": 283969, + "total_pixels": 140845440, + "coverage_percent": 0.20161746095578248, + "crs": "EPSG:4326", + "width": 6540, + "height": 21536, + "bounds": [ + 12.011540760464138, + -11.000149739588117, + 13.828207427132257, + -5.017927517361111 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 29.03580093383789, + "mean": 10.317724227905273, + "std": 7.659730911254883, + "count": 283969, + "valid_pixels": 283969, + "total_pixels": 140845440, + "coverage_percent": 0.20161746095578248, + "crs": "EPSG:4326", + "width": 6540, + "height": 21536, + "bounds": [ + 12.011540760464138, + -11.000149739588117, + 13.828207427132257, + -5.017927517361111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Anguilla.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Anguilla_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Anguilla" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 32.262001037597656, + "mean": 6.415690898895264, + "std": 8.520734786987305, + "count": 249, + "valid_pixels": 249, + "total_pixels": 1110375, + "coverage_percent": 0.02242485646740966, + "crs": "EPSG:4326", + "width": 987, + "height": 1125, + "bounds": [ + -63.07290042453343, + 17.90625918918161, + -62.79873375786654, + 18.21875918918186 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 32.262001037597656, + "mean": 6.415690898895264, + "std": 8.520734786987305, + "count": 249, + "valid_pixels": 249, + "total_pixels": 1110375, + "coverage_percent": 0.02242485646740966, + "crs": "EPSG:4326", + "width": 987, + "height": 1125, + "bounds": [ + -63.07290042453343, + 17.90625918918161, + -62.79873375786654, + 18.21875918918186 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_AntiguaAndBarbuda.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_AntiguaAndBarbuda_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "AntiguaAndBarbuda" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 5.682220935821533, + "std": 2.45246958732605, + "count": 9906, + "valid_pixels": 9906, + "total_pixels": 1899777, + "coverage_percent": 0.5214296204238708, + "crs": "EPSG:4326", + "width": 759, + "height": 2503, + "bounds": [ + -61.896356235080304, + 17.03393558925997, + -61.6855229017468, + 17.7292133670383 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 5.682220935821533, + "std": 2.45246958732605, + "count": 9906, + "valid_pixels": 9906, + "total_pixels": 1899777, + "coverage_percent": 0.5214296204238708, + "crs": "EPSG:4326", + "width": 759, + "height": 2503, + "bounds": [ + -61.896356235080304, + 17.03393558925997, + -61.6855229017468, + 17.7292133670383 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Aruba.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Aruba_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Aruba" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 4.446187496185303, + "std": 3.4764046669006348, + "count": 1045, + "valid_pixels": 1045, + "total_pixels": 320229, + "coverage_percent": 0.3263289708302496, + "crs": "EPSG:4326", + "width": 483, + "height": 663, + "bounds": [ + -70.05901492648654, + 12.438890351189361, + -69.92484825981977, + 12.623057017856175 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 4.446187496185303, + "std": 3.4764046669006348, + "count": 1045, + "valid_pixels": 1045, + "total_pixels": 320229, + "coverage_percent": 0.3263289708302496, + "crs": "EPSG:4326", + "width": 483, + "height": 663, + "bounds": [ + -70.05901492648654, + 12.438890351189361, + -69.92484825981977, + 12.623057017856175 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Australia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Australia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Australia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 7.376427173614502, + "std": 3.922527313232422, + "count": 10373083, + "valid_pixels": 10373083, + "total_pixels": 15409692001, + "coverage_percent": 0.0673153168754239, + "crs": "EPSG:4326", + "width": 147601, + "height": 104401, + "bounds": [ + 112.99986111111112, + -39.00013888891209, + 154.0001388889217, + -9.99986111111111 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 7.376427173614502, + "std": 3.922527313232422, + "count": 10373083, + "valid_pixels": 10373083, + "total_pixels": 15409692001, + "coverage_percent": 0.0673153168754239, + "crs": "EPSG:4326", + "width": 147601, + "height": 104401, + "bounds": [ + 112.99986111111112, + -39.00013888891209, + 154.0001388889217, + -9.99986111111111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Bahamas.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Bahamas_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Bahamas" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 3.5917890071868896, + "std": 2.3379290103912354, + "count": 886961, + "valid_pixels": 886961, + "total_pixels": 727940710, + "coverage_percent": 0.12184522555415261, + "crs": "EPSG:4326", + "width": 29797, + "height": 24430, + "bounds": [ + -80.6950877469056, + 20.764054753478693, + -72.41814330245454, + 27.550165864595233 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 3.5917890071868896, + "std": 2.3379290103912354, + "count": 886961, + "valid_pixels": 886961, + "total_pixels": 727940710, + "coverage_percent": 0.12184522555415261, + "crs": "EPSG:4326", + "width": 29797, + "height": 24430, + "bounds": [ + -80.6950877469056, + 20.764054753478693, + -72.41814330245454, + 27.550165864595233 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Bahrain.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Bahrain_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Bahrain" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 4.301599979400635, + "mean": 1.2112410068511963, + "std": 1.1582762002944946, + "count": 855, + "valid_pixels": 855, + "total_pixels": 5265876, + "coverage_percent": 0.016236614762671967, + "crs": "EPSG:4326", + "width": 1804, + "height": 2919, + "bounds": [ + 50.34751325098631, + 25.535966068287465, + 50.84862436209782, + 26.346799401621446 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 4.301599979400635, + "mean": 1.2112410068511963, + "std": 1.1582762002944946, + "count": 855, + "valid_pixels": 855, + "total_pixels": 5265876, + "coverage_percent": 0.016236614762671967, + "crs": "EPSG:4326", + "width": 1804, + "height": 2919, + "bounds": [ + 50.34751325098631, + 25.535966068287465, + 50.84862436209782, + 26.346799401621446 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Bangladesh.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Bangladesh_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Bangladesh" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 9.630197525024414, + "std": 3.650411605834961, + "count": 4891973, + "valid_pixels": 4891973, + "total_pixels": 128462500, + "coverage_percent": 3.8080941909117447, + "crs": "EPSG:4326", + "width": 12500, + "height": 10277, + "bounds": [ + 88.95413804035077, + 20.55964573972527, + 92.42636026257577, + 23.414367961949775 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 9.630197525024414, + "std": 3.650411605834961, + "count": 4891973, + "valid_pixels": 4891973, + "total_pixels": 128462500, + "coverage_percent": 3.8080941909117447, + "crs": "EPSG:4326", + "width": 12500, + "height": 10277, + "bounds": [ + 88.95413804035077, + 20.55964573972527, + 92.42636026257577, + 23.414367961949775 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Barbados.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Barbados_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Barbados" + }, + "original_stats": { + "min": 1.0753999948501587, + "max": 17.20639991760254, + "mean": 9.773324966430664, + "std": 3.666525363922119, + "count": 386, + "valid_pixels": 386, + "total_pixels": 19932, + "coverage_percent": 1.9365843869155126, + "crs": "EPSG:4326", + "width": 302, + "height": 66, + "bounds": [ + -59.58117450290256, + 13.056516401502806, + -59.497285614013606, + 13.074849734836155 + ] + }, + "cog_stats": { + "min": 1.0753999948501587, + "max": 17.20639991760254, + "mean": 9.773324966430664, + "std": 3.666525363922119, + "count": 386, + "valid_pixels": 386, + "total_pixels": 19932, + "coverage_percent": 1.9365843869155126, + "crs": "EPSG:4326", + "width": 302, + "height": 66, + "bounds": [ + -59.58117450290256, + 13.056516401502806, + -59.497285614013606, + 13.074849734836155 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Belize.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Belize_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Belize" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 5.424561500549316, + "std": 3.6924378871917725, + "count": 613357, + "valid_pixels": 613357, + "total_pixels": 61688508, + "coverage_percent": 0.9942808148318322, + "crs": "EPSG:4326", + "width": 6499, + "height": 9492, + "bounds": [ + -89.13147580682836, + 15.887197373427076, + -87.32619802904914, + 18.52386404009585 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 5.424561500549316, + "std": 3.6924378871917725, + "count": 613357, + "valid_pixels": 613357, + "total_pixels": 61688508, + "coverage_percent": 0.9942808148318322, + "crs": "EPSG:4326", + "width": 6499, + "height": 9492, + "bounds": [ + -89.13147580682836, + 15.887197373427075, + -87.32619802904914, + 18.52386404009585 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Benin.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Benin_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Benin" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 5.376999855041504, + "mean": 1.8385003805160522, + "std": 1.379503607749939, + "count": 50106, + "valid_pixels": 50106, + "total_pixels": 3036082, + "coverage_percent": 1.6503506822279503, + "crs": "EPSG:4326", + "width": 3206, + "height": 947, + "bounds": [ + 1.8205405373043484, + 6.27774419148742, + 2.7110960928606165, + 6.540799747043186 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 5.376999855041504, + "mean": 1.8385003805160522, + "std": 1.379503607749939, + "count": 50106, + "valid_pixels": 50106, + "total_pixels": 3036082, + "coverage_percent": 1.6503506822279503, + "crs": "EPSG:4326", + "width": 3206, + "height": 947, + "bounds": [ + 1.8205405373043484, + 6.27774419148742, + 2.7110960928606165, + 6.540799747043186 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Brazil.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Brazil_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Brazil" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 12.36767578125, + "std": 6.879085063934326, + "count": 11181576, + "valid_pixels": 11181576, + "total_pixels": 7161503100, + "coverage_percent": 0.15613448523118, + "crs": "EPSG:4326", + "width": 60950, + "height": 117498, + "bounds": [ + -51.72637112331014, + -28.19607450098934, + -34.79581556774104, + 4.4422588323701 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 12.36767578125, + "std": 6.879085063934326, + "count": 11181576, + "valid_pixels": 11181576, + "total_pixels": 7161503100, + "coverage_percent": 0.15613448523118, + "crs": "EPSG:4326", + "width": 60950, + "height": 117498, + "bounds": [ + -51.72637112331014, + -28.19607450098934, + -34.795815567741045, + 4.4422588323701 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_BritishVirginIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_BritishVirginIslands_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "BritishVirginIslands" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 3.5823564529418945, + "std": 2.8617970943450928, + "count": 853, + "valid_pixels": 853, + "total_pixels": 3634802, + "coverage_percent": 0.023467578151437133, + "crs": "EPSG:4326", + "width": 2161, + "height": 1682, + "bounds": [ + -64.8578896522162, + 18.296697644432747, + -64.25761187443794, + 18.763919866655343 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 3.5823564529418945, + "std": 2.8617970943450928, + "count": 853, + "valid_pixels": 853, + "total_pixels": 3634802, + "coverage_percent": 0.023467578151437133, + "crs": "EPSG:4326", + "width": 2161, + "height": 1682, + "bounds": [ + -64.8578896522162, + 18.296697644432747, + -64.25761187443794, + 18.763919866655343 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Brunei.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Brunei_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Brunei" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 24.73419952392578, + "mean": 17.87831687927246, + "std": 4.363918304443359, + "count": 115143, + "valid_pixels": 115143, + "total_pixels": 9828481, + "coverage_percent": 1.1715238600959803, + "crs": "EPSG:4326", + "width": 4177, + "height": 2353, + "bounds": [ + 114.07494258395315, + 4.4306421497858945, + 115.23522036173185, + 5.084253260897529 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 24.73419952392578, + "mean": 17.87831687927246, + "std": 4.363918304443359, + "count": 115143, + "valid_pixels": 115143, + "total_pixels": 9828481, + "coverage_percent": 1.1715238600959803, + "crs": "EPSG:4326", + "width": 4177, + "height": 2353, + "bounds": [ + 114.07494258395315, + 4.4306421497858945, + 115.23522036173185, + 5.084253260897529 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Cambodia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Cambodia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Cambodia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 6.133723735809326, + "std": 3.1902899742126465, + "count": 504920, + "valid_pixels": 504920, + "total_pixels": 108800800, + "coverage_percent": 0.46407747001860283, + "crs": "EPSG:4326", + "width": 8860, + "height": 12280, + "bounds": [ + 102.44483409130656, + 8.844270705378268, + 104.90594520241964, + 12.255381816492108 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 6.133723735809326, + "std": 3.1902899742126465, + "count": 504920, + "valid_pixels": 504920, + "total_pixels": 108800800, + "coverage_percent": 0.46407747001860283, + "crs": "EPSG:4326", + "width": 8860, + "height": 12280, + "bounds": [ + 102.44483409130656, + 8.844270705378268, + 104.90594520241964, + 12.255381816492108 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Cameroon.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Cameroon_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Cameroon" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 30.1112003326416, + "mean": 14.107251167297363, + "std": 7.708675861358643, + "count": 2104668, + "valid_pixels": 2104668, + "total_pixels": 48418107, + "coverage_percent": 4.346861392164712, + "crs": "EPSG:4326", + "width": 5079, + "height": 9533, + "bounds": [ + 8.498540272182888, + 2.258834966021645, + 9.90937360551735, + 4.906890521579319 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 30.1112003326416, + "mean": 14.107251167297363, + "std": 7.708675861358643, + "count": 2104668, + "valid_pixels": 2104668, + "total_pixels": 48418107, + "coverage_percent": 4.346861392164712, + "crs": "EPSG:4326", + "width": 5079, + "height": 9533, + "bounds": [ + 8.498540272182888, + 2.258834966021645, + 9.909373605517349, + 4.906890521579319 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_CarribeanCaymanIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_CarribeanCaymanIslands_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "CarribeanCaymanIslands" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 11.829400062561035, + "mean": 7.064580917358398, + "std": 2.323383331298828, + "count": 84176, + "valid_pixels": 84176, + "total_pixels": 14430157, + "coverage_percent": 0.5833339166025706, + "crs": "EPSG:4326", + "width": 6503, + "height": 2219, + "bounds": [ + -81.47201577130745, + 19.225335956675472, + -79.66562688241711, + 19.841724845564855 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 11.829400062561035, + "mean": 7.064580917358398, + "std": 2.323383331298828, + "count": 84176, + "valid_pixels": 84176, + "total_pixels": 14430157, + "coverage_percent": 0.5833339166025706, + "crs": "EPSG:4326", + "width": 6503, + "height": 2219, + "bounds": [ + -81.47201577130745, + 19.225335956675472, + -79.66562688241711, + 19.841724845564855 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_China.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_China_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "China" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 3.3101913928985596, + "std": 2.541290044784546, + "count": 177757, + "valid_pixels": 177757, + "total_pixels": 2234919954, + "coverage_percent": 0.00795361819030052, + "crs": "EPSG:4326", + "width": 55537, + "height": 40242, + "bounds": [ + 107.84118485440801, + 17.82180555554661, + 123.26812929886479, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 3.3101913928985596, + "std": 2.541290044784546, + "count": 177757, + "valid_pixels": 177757, + "total_pixels": 2234919954, + "coverage_percent": 0.00795361819030052, + "crs": "EPSG:4326", + "width": 55537, + "height": 40242, + "bounds": [ + 107.84118485440801, + 17.82180555554661, + 123.26812929886479, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Colombia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Colombia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Colombia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 34.41279983520508, + "mean": 15.029634475708008, + "std": 9.661421775817871, + "count": 2187230, + "valid_pixels": 2187230, + "total_pixels": 1106193612, + "coverage_percent": 0.19772578473360414, + "crs": "EPSG:4326", + "width": 27798, + "height": 39794, + "bounds": [ + -79.00856174045138, + 1.3842583084018028, + -71.28689507377854, + 12.438147197299534 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 34.41279983520508, + "mean": 15.029634475708008, + "std": 9.661421775817871, + "count": 2187230, + "valid_pixels": 2187230, + "total_pixels": 1106193612, + "coverage_percent": 0.19772578473360414, + "crs": "EPSG:4326", + "width": 27798, + "height": 39794, + "bounds": [ + -79.00856174045138, + 1.3842583084018028, + -71.28689507377854, + 12.438147197299534 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Comoros.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Comoros_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Comoros" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 20.432600021362305, + "mean": 11.923365592956543, + "std": 4.6304030418396, + "count": 1173, + "valid_pixels": 1173, + "total_pixels": 28289904, + "coverage_percent": 0.004146355533762151, + "crs": "EPSG:4326", + "width": 5622, + "height": 5032, + "bounds": [ + 43.14339630472751, + -12.58844880524778, + 44.70506297139543, + -11.190671027468882 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 20.432600021362305, + "mean": 11.923365592956543, + "std": 4.6304030418396, + "count": 1173, + "valid_pixels": 1173, + "total_pixels": 28289904, + "coverage_percent": 0.004146355533762151, + "crs": "EPSG:4326", + "width": 5622, + "height": 5032, + "bounds": [ + 43.14339630472751, + -12.58844880524778, + 44.70506297139543, + -11.190671027468882 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_CostaRica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_CostaRica_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "CostaRica" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 29.03580093383789, + "mean": 14.583796501159668, + "std": 7.194381237030029, + "count": 413989, + "valid_pixels": 413989, + "total_pixels": 158884481, + "coverage_percent": 0.2605597459200562, + "crs": "EPSG:4326", + "width": 12929, + "height": 12289, + "bounds": [ + -86.09476906457506, + 7.801602899887083, + -82.5033801756833, + 11.215214011000924 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 29.03580093383789, + "mean": 14.583796501159668, + "std": 7.194381237030029, + "count": 413989, + "valid_pixels": 413989, + "total_pixels": 158884481, + "coverage_percent": 0.2605597459200562, + "crs": "EPSG:4326", + "width": 12929, + "height": 12289, + "bounds": [ + -86.09476906457506, + 7.801602899887083, + -82.5033801756833, + 11.215214011000924 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Cote.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Cote_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Cote" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 27.960399627685547, + "mean": 9.874105453491211, + "std": 7.753815650939941, + "count": 20371, + "valid_pixels": 20371, + "total_pixels": 47175509, + "coverage_percent": 0.04318130409573323, + "crs": "EPSG:4326", + "width": 14701, + "height": 3209, + "bounds": [ + -7.271641383700901, + 4.471797093409197, + -3.1880302725865235, + 5.363185982298799 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 27.960399627685547, + "mean": 9.874105453491211, + "std": 7.753815650939941, + "count": 20371, + "valid_pixels": 20371, + "total_pixels": 47175509, + "coverage_percent": 0.04318130409573323, + "crs": "EPSG:4326", + "width": 14701, + "height": 3209, + "bounds": [ + -7.271641383700901, + 4.471797093409197, + -3.1880302725865235, + 5.363185982298799 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_CotedIvoire.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_CotedIvoire_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "CotedIvoire" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 27.960399627685547, + "mean": 9.874105453491211, + "std": 7.753815650939941, + "count": 20371, + "valid_pixels": 20371, + "total_pixels": 47175509, + "coverage_percent": 0.04318130409573323, + "crs": "EPSG:4326", + "width": 14701, + "height": 3209, + "bounds": [ + -7.271641383700901, + 4.471797093409197, + -3.1880302725865235, + 5.363185982298799 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 27.960399627685547, + "mean": 9.874105453491211, + "std": 7.753815650939941, + "count": 20371, + "valid_pixels": 20371, + "total_pixels": 47175509, + "coverage_percent": 0.04318130409573323, + "crs": "EPSG:4326", + "width": 14701, + "height": 3209, + "bounds": [ + -7.271641383700901, + 4.471797093409197, + -3.1880302725865235, + 5.363185982298799 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Cuba.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Cuba_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Cuba" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 6.166879177093506, + "std": 3.4594497680664062, + "count": 4807163, + "valid_pixels": 4807163, + "total_pixels": 588735360, + "coverage_percent": 0.8165235735118747, + "crs": "EPSG:4326", + "width": 41280, + "height": 14262, + "bounds": [ + -85.33550002602108, + 19.523174017624555, + -73.86883335934525, + 23.48484068429439 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 6.166879177093506, + "std": 3.4594497680664062, + "count": 4807163, + "valid_pixels": 4807163, + "total_pixels": 588735360, + "coverage_percent": 0.8165235735118747, + "crs": "EPSG:4326", + "width": 41280, + "height": 14262, + "bounds": [ + -85.33550002602108, + 19.523174017624555, + -73.86883335934525, + 23.48484068429439 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_DemocraticRepublicOfCongo.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_DemocraticRepublicOfCongo_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "DemocraticRepublicOfCongo" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 6.528517246246338, + "std": 4.728378772735596, + "count": 214925, + "valid_pixels": 214925, + "total_pixels": 751542, + "coverage_percent": 28.59786944708346, + "crs": "EPSG:4326", + "width": 1298, + "height": 579, + "bounds": [ + 12.355177273220486, + -6.05685363431872, + 12.71573282877633, + -5.896020300985257 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 6.528517246246338, + "std": 4.728378772735596, + "count": 214925, + "valid_pixels": 214925, + "total_pixels": 751542, + "coverage_percent": 28.59786944708346, + "crs": "EPSG:4326", + "width": 1298, + "height": 579, + "bounds": [ + 12.355177273220486, + -6.05685363431872, + 12.71573282877633, + -5.896020300985257 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Djibouti.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Djibouti_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Djibouti" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 6.845702171325684, + "std": 3.3393795490264893, + "count": 5876, + "valid_pixels": 5876, + "total_pixels": 25108287, + "coverage_percent": 0.023402631967684613, + "crs": "EPSG:4326", + "width": 4533, + "height": 5539, + "bounds": [ + 42.22997852227546, + 11.210617160920064, + 43.489145188943134, + 12.749228272032406 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 6.845702171325684, + "std": 3.3393795490264893, + "count": 5876, + "valid_pixels": 5876, + "total_pixels": 25108287, + "coverage_percent": 0.023402631967684613, + "crs": "EPSG:4326", + "width": 4533, + "height": 5539, + "bounds": [ + 42.22997852227546, + 11.210617160920064, + 43.489145188943134, + 12.749228272032406 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_DominicanRepublic.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_DominicanRepublic_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "DominicanRepublic" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 17.20639991760254, + "mean": 8.010762214660645, + "std": 4.255646228790283, + "count": 197148, + "valid_pixels": 197148, + "total_pixels": 131124544, + "coverage_percent": 0.1503517144738364, + "crs": "EPSG:4326", + "width": 13144, + "height": 9976, + "bounds": [ + -71.8667215230053, + 17.331650313501957, + -68.21561041189126, + 20.102761424615284 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 17.20639991760254, + "mean": 8.010762214660645, + "std": 4.255646228790283, + "count": 197148, + "valid_pixels": 197148, + "total_pixels": 131124544, + "coverage_percent": 0.1503517144738364, + "crs": "EPSG:4326", + "width": 13144, + "height": 9976, + "bounds": [ + -71.8667215230053, + 17.331650313501957, + -68.21561041189126, + 20.102761424615284 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_EcuadorWithGalapagos.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_EcuadorWithGalapagos_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "EcuadorWithGalapagos" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 12.086406707763672, + "std": 6.527417182922363, + "count": 1387532, + "valid_pixels": 1387532, + "total_pixels": 817532430, + "coverage_percent": 0.16972195219215952, + "crs": "EPSG:4326", + "width": 45903, + "height": 17810, + "bounds": [ + -91.4997059538888, + -3.492892840707286, + -78.74887262054527, + 1.4543293815188938 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 12.086406707763672, + "std": 6.527417182922363, + "count": 1387532, + "valid_pixels": 1387532, + "total_pixels": 817532430, + "coverage_percent": 0.16972195219215952, + "crs": "EPSG:4326", + "width": 45903, + "height": 17810, + "bounds": [ + -91.4997059538888, + -3.492892840707286, + -78.74887262054527, + 1.4543293815188938 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Egypt.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Egypt_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Egypt" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 4.143792629241943, + "std": 3.2868053913116455, + "count": 2501, + "valid_pixels": 2501, + "total_pixels": 371630553, + "coverage_percent": 0.0006729801895486241, + "crs": "EPSG:4326", + "width": 14749, + "height": 25197, + "bounds": [ + 32.99986111111111, + 22.00097222221662, + 37.09680555555883, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 4.143792629241943, + "std": 3.2868053913116455, + "count": 2501, + "valid_pixels": 2501, + "total_pixels": 371630553, + "coverage_percent": 0.0006729801895486241, + "crs": "EPSG:4326", + "width": 14749, + "height": 25197, + "bounds": [ + 32.99986111111111, + 22.00097222221662, + 37.09680555555883, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_ElSalvador.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_ElSalvador_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "ElSalvador" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 24.73419952392578, + "mean": 11.196303367614746, + "std": 5.4894022941589355, + "count": 363262, + "valid_pixels": 363262, + "total_pixels": 36442908, + "coverage_percent": 0.9967975113292277, + "crs": "EPSG:4326", + "width": 9378, + "height": 3886, + "bounds": [ + -90.24186987937155, + 12.753177317279638, + -87.63686987936947, + 13.832621761724946 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 24.73419952392578, + "mean": 11.196303367614746, + "std": 5.4894022941589355, + "count": 363262, + "valid_pixels": 363262, + "total_pixels": 36442908, + "coverage_percent": 0.9967975113292277, + "crs": "EPSG:4326", + "width": 9378, + "height": 3886, + "bounds": [ + -90.24186987937155, + 12.753177317279638, + -87.63686987936947, + 13.832621761724946 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_EquatorialGuinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_EquatorialGuinea_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "EquatorialGuinea" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 36.5635986328125, + "mean": 13.45806884765625, + "std": 10.026917457580566, + "count": 133224, + "valid_pixels": 133224, + "total_pixels": 7507500, + "coverage_percent": 1.7745454545454546, + "crs": "EPSG:4326", + "width": 1540, + "height": 4875, + "bounds": [ + 9.499994625515408, + 0.9768147171857386, + 9.927772403293528, + 2.3309813838534885 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 36.5635986328125, + "mean": 13.45806884765625, + "std": 10.026917457580566, + "count": 133224, + "valid_pixels": 133224, + "total_pixels": 7507500, + "coverage_percent": 1.7745454545454546, + "crs": "EPSG:4326", + "width": 1540, + "height": 4875, + "bounds": [ + 9.499994625515408, + 0.9768147171857386, + 9.927772403293528, + 2.3309813838534885 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Eritrea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Eritrea_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Eritrea" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 5.091265678405762, + "std": 2.6583759784698486, + "count": 63057, + "valid_pixels": 63057, + "total_pixels": 331547345, + "coverage_percent": 0.019019003153229897, + "crs": "EPSG:4326", + "width": 17033, + "height": 19465, + "bounds": [ + 38.47787310964247, + 12.63982193190439, + 43.20926199853515, + 18.04676637635316 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 5.091265678405762, + "std": 2.6583759784698486, + "count": 63057, + "valid_pixels": 63057, + "total_pixels": 331547345, + "coverage_percent": 0.019019003153229897, + "crs": "EPSG:4326", + "width": 17033, + "height": 19465, + "bounds": [ + 38.47787310964247, + 12.63982193190439, + 43.20926199853514, + 18.04676637635316 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_EuropaIsland.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_EuropaIsland_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "EuropaIsland" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 15.0556001663208, + "mean": 10.345235824584961, + "std": 2.6407310962677, + "count": 6594, + "valid_pixels": 6594, + "total_pixels": 126116622, + "coverage_percent": 0.0052284939886829505, + "crs": "EPSG:4326", + "width": 12101, + "height": 10422, + "bounds": [ + 37.84230011797962, + -23.558221094993442, + 41.203689006871194, + -20.663221094991126 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 15.0556001663208, + "mean": 10.345235824584961, + "std": 2.6407310962677, + "count": 6594, + "valid_pixels": 6594, + "total_pixels": 126116622, + "coverage_percent": 0.0052284939886829505, + "crs": "EPSG:4326", + "width": 12101, + "height": 10422, + "bounds": [ + 37.84230011797962, + -23.558221094993442, + 41.203689006871194, + -20.663221094991126 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Fiji.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Fiji_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Fiji" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 4.06544303894043, + "std": 4.937388896942139, + "count": 1146347, + "valid_pixels": 1146347, + "total_pixels": 311103960, + "coverage_percent": 0.3684771482818798, + "crs": "EPSG:4326", + "width": 12162, + "height": 25580, + "bounds": [ + 176.6217067694109, + -19.31514936366083, + 180.00004010274694, + -12.209593808099589 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 4.06544303894043, + "std": 4.937388896942139, + "count": 1146347, + "valid_pixels": 1146347, + "total_pixels": 311103960, + "coverage_percent": 0.3684771482818798, + "crs": "EPSG:4326", + "width": 12162, + "height": 25580, + "bounds": [ + 176.6217067694109, + -19.31514936366083, + 180.00004010274694, + -12.209593808099589 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Fiji2.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Fiji2_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Fiji2" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 8.807673454284668, + "std": 4.356664180755615, + "count": 8731, + "valid_pixels": 8731, + "total_pixels": 131325948, + "coverage_percent": 0.006648343402782823, + "crs": "EPSG:4326", + "width": 6669, + "height": 19692, + "bounds": [ + -180.0001388888889, + -21.096936371308672, + -178.14763888888743, + -15.626936371304296 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 8.807673454284668, + "std": 4.356664180755615, + "count": 8731, + "valid_pixels": 8731, + "total_pixels": 131325948, + "coverage_percent": 0.006648343402782823, + "crs": "EPSG:4326", + "width": 6669, + "height": 19692, + "bounds": [ + -180.0001388888889, + -21.096936371308672, + -178.14763888888743, + -15.626936371304296 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_FrenchGuiana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_FrenchGuiana_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "FrenchGuiana" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 31.186599731445312, + "mean": 14.613539695739746, + "std": 9.987931251525879, + "count": 842418, + "valid_pixels": 842418, + "total_pixels": 53929265, + "coverage_percent": 1.5620795128581857, + "crs": "EPSG:4326", + "width": 8567, + "height": 6295, + "bounds": [ + -54.00164950900608, + 4.004172793492932, + -51.621927286781954, + 5.752783904605442 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 31.186599731445312, + "mean": 14.613539695739746, + "std": 9.987931251525879, + "count": 842418, + "valid_pixels": 842418, + "total_pixels": 53929265, + "coverage_percent": 1.5620795128581857, + "crs": "EPSG:4326", + "width": 8567, + "height": 6295, + "bounds": [ + -54.00164950900608, + 4.004172793492932, + -51.621927286781954, + 5.752783904605442 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_FrenchPolynesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_FrenchPolynesia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "FrenchPolynesia" + }, + "original_stats": { + "min": 5.376999855041504, + "max": 13.980199813842773, + "mean": 11.650167465209961, + "std": 2.8733294010162354, + "count": 12, + "valid_pixels": 12, + "total_pixels": 4328160750, + "coverage_percent": 2.772540275912811e-07, + "crs": "EPSG:4326", + "width": 77670, + "height": 55725, + "bounds": [ + -155.37676193554722, + -23.00003789700403, + -133.80176193552995, + -7.520871230324981 + ] + }, + "cog_stats": { + "min": 5.376999855041504, + "max": 13.980199813842773, + "mean": 11.650167465209961, + "std": 2.8733294010162354, + "count": 12, + "valid_pixels": 12, + "total_pixels": 4328160750, + "coverage_percent": 2.772540275912811e-07, + "crs": "EPSG:4326", + "width": 77670, + "height": 55725, + "bounds": [ + -155.37676193554722, + -23.00003789700403, + -133.80176193552995, + -7.520871230324981 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Gabon.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Gabon_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Gabon" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 39.789798736572266, + "mean": 14.679069519042969, + "std": 11.419971466064453, + "count": 1449774, + "valid_pixels": 1449774, + "total_pixels": 116969888, + "coverage_percent": 1.2394420690562684, + "crs": "EPSG:4326", + "width": 7184, + "height": 16282, + "bounds": [ + 8.702267994350857, + -3.4635235982507218, + 10.697823549908009, + 1.0592541795306736 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 39.789798736572266, + "mean": 14.679069519042969, + "std": 11.419971466064453, + "count": 1449774, + "valid_pixels": 1449774, + "total_pixels": 116969888, + "coverage_percent": 1.2394420690562684, + "crs": "EPSG:4326", + "width": 7184, + "height": 16282, + "bounds": [ + 8.702267994350857, + -3.4635235982507218, + 10.69782354990801, + 1.0592541795306736 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Gambia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Gambia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Gambia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 11.829400062561035, + "mean": 4.875607490539551, + "std": 2.9312338829040527, + "count": 755921, + "valid_pixels": 755921, + "total_pixels": 18162371, + "coverage_percent": 4.162017172757896, + "crs": "EPSG:4326", + "width": 7103, + "height": 2557, + "bounds": [ + -16.810004840426974, + 13.073612598842477, + -14.83694928486984, + 13.783890376620823 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 11.829400062561035, + "mean": 4.875607490539551, + "std": 2.9312338829040527, + "count": 755921, + "valid_pixels": 755921, + "total_pixels": 18162371, + "coverage_percent": 4.162017172757896, + "crs": "EPSG:4326", + "width": 7103, + "height": 2557, + "bounds": [ + -16.810004840426974, + 13.073612598842477, + -14.836949284869842, + 13.783890376620823 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Ghana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Ghana_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Ghana" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 5.640029430389404, + "std": 5.064601898193359, + "count": 121848, + "valid_pixels": 121848, + "total_pixels": 70253112, + "coverage_percent": 0.17344142705023516, + "crs": "EPSG:4326", + "width": 14314, + "height": 4908, + "bounds": [ + -2.787816790801273, + 4.757193586560325, + 1.1882943203130187, + 6.120526919894749 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 5.640029430389404, + "std": 5.064601898193359, + "count": 121848, + "valid_pixels": 121848, + "total_pixels": 70253112, + "coverage_percent": 0.17344142705023516, + "crs": "EPSG:4326", + "width": 14314, + "height": 4908, + "bounds": [ + -2.787816790801273, + 4.757193586560325, + 1.1882943203130187, + 6.120526919894749 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Grenada.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Grenada_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Grenada" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 9.884455680847168, + "std": 4.1905694007873535, + "count": 2241, + "valid_pixels": 2241, + "total_pixels": 2276385, + "coverage_percent": 0.09844556171297912, + "crs": "EPSG:4326", + "width": 1185, + "height": 1921, + "bounds": [ + -61.75835574679905, + 11.991966086493171, + -61.42918908013212, + 12.52557719760471 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 9.884455680847168, + "std": 4.1905694007873535, + "count": 2241, + "valid_pixels": 2241, + "total_pixels": 2276385, + "coverage_percent": 0.09844556171297912, + "crs": "EPSG:4326", + "width": 1185, + "height": 1921, + "bounds": [ + -61.75835574679905, + 11.991966086493171, + -61.42918908013212, + 12.52557719760471 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Guadeloupe.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Guadeloupe_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Guadeloupe" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 6.871837139129639, + "std": 2.9869847297668457, + "count": 32683, + "valid_pixels": 32683, + "total_pixels": 1587315, + "coverage_percent": 2.0590116013519686, + "crs": "EPSG:4326", + "width": 1335, + "height": 1189, + "bounds": [ + -61.693394484200304, + 16.12884357876221, + -61.322561150866676, + 16.459121356540255 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 6.871837139129639, + "std": 2.9869847297668457, + "count": 32683, + "valid_pixels": 32683, + "total_pixels": 1587315, + "coverage_percent": 2.0590116013519686, + "crs": "EPSG:4326", + "width": 1335, + "height": 1189, + "bounds": [ + -61.693394484200304, + 16.12884357876221, + -61.322561150866676, + 16.459121356540255 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Guam.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Guam_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Guam" + }, + "original_stats": { + "min": 24.73419952392578, + "max": 31.186599731445312, + "mean": 28.390560150146484, + "std": 2.6863479614257812, + "count": 5, + "valid_pixels": 5, + "total_pixels": 2038131, + "coverage_percent": 0.00024532279819108784, + "crs": "EPSG:4326", + "width": 1299, + "height": 1569, + "bounds": [ + 144.60725416745808, + 13.226716261405356, + 144.9680875007917, + 13.662549594739037 + ] + }, + "cog_stats": { + "min": 24.73419952392578, + "max": 31.186599731445312, + "mean": 28.390560150146484, + "std": 2.6863479614257812, + "count": 5, + "valid_pixels": 5, + "total_pixels": 2038131, + "coverage_percent": 0.00024532279819108784, + "crs": "EPSG:4326", + "width": 1299, + "height": 1569, + "bounds": [ + 144.60725416745808, + 13.226716261405356, + 144.9680875007917, + 13.662549594739037 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Guatemala.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Guatemala_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Guatemala" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 15.265154838562012, + "std": 5.7840495109558105, + "count": 375774, + "valid_pixels": 375774, + "total_pixels": 126604545, + "coverage_percent": 0.2968092496205409, + "crs": "EPSG:4326", + "width": 14655, + "height": 8639, + "bounds": [ + -92.27544873732964, + 13.636717146857094, + -88.20461540399305, + 16.036439369081236 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 15.265154838562012, + "std": 5.7840495109558105, + "count": 375774, + "valid_pixels": 375774, + "total_pixels": 126604545, + "coverage_percent": 0.2968092496205409, + "crs": "EPSG:4326", + "width": 14655, + "height": 8639, + "bounds": [ + -92.27544873732964, + 13.636717146857094, + -88.20461540399305, + 16.036439369081236 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Guinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Guinea_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Guinea" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 6.252943515777588, + "std": 3.477396249771118, + "count": 2601370, + "valid_pixels": 2601370, + "total_pixels": 65496732, + "coverage_percent": 3.9717554152167467, + "crs": "EPSG:4326", + "width": 8004, + "height": 8183, + "bounds": [ + -15.075840732280184, + 9.039652951556613, + -12.852507398945072, + 11.312708507113987 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 6.252943515777588, + "std": 3.477396249771118, + "count": 2601370, + "valid_pixels": 2601370, + "total_pixels": 65496732, + "coverage_percent": 3.9717554152167467, + "crs": "EPSG:4326", + "width": 8004, + "height": 8183, + "bounds": [ + -15.075840732280184, + 9.039652951556615, + -12.852507398945072, + 11.312708507113987 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_GuineaBissau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_GuineaBissau_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "GuineaBissau" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 7.255600929260254, + "std": 2.8540585041046143, + "count": 3720928, + "valid_pixels": 3720928, + "total_pixels": 40659682, + "coverage_percent": 9.151394740372048, + "crs": "EPSG:4326", + "width": 6902, + "height": 5891, + "bounds": [ + -16.6835056008039, + 10.918320198057774, + -14.766283378580145, + 12.554709086947971 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 7.255600929260254, + "std": 2.8540585041046143, + "count": 3720928, + "valid_pixels": 3720928, + "total_pixels": 40659682, + "coverage_percent": 9.151394740372048, + "crs": "EPSG:4326", + "width": 6902, + "height": 5891, + "bounds": [ + -16.6835056008039, + 10.918320198057772, + -14.766283378580145, + 12.554709086947971 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Guyana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Guyana_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Guyana" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 26.885000228881836, + "mean": 15.410482406616211, + "std": 7.48171329498291, + "count": 233562, + "valid_pixels": 233562, + "total_pixels": 101074860, + "coverage_percent": 0.23107823251004256, + "crs": "EPSG:4326", + "width": 10251, + "height": 9860, + "bounds": [ + -59.98534545287613, + 5.786985855100348, + -57.137845452873854, + 8.525874743991428 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 26.885000228881836, + "mean": 15.410482406616211, + "std": 7.48171329498291, + "count": 233562, + "valid_pixels": 233562, + "total_pixels": 101074860, + "coverage_percent": 0.23107823251004256, + "crs": "EPSG:4326", + "width": 10251, + "height": 9860, + "bounds": [ + -59.98534545287613, + 5.7869858551003475, + -57.137845452873854, + 8.525874743991428 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Haiti.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Haiti_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Haiti" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 4.6070709228515625, + "std": 2.055325746536255, + "count": 161800, + "valid_pixels": 161800, + "total_pixels": 89931870, + "coverage_percent": 0.17991397265507766, + "crs": "EPSG:4326", + "width": 10710, + "height": 8397, + "bounds": [ + -74.70714532374913, + 17.85448667023875, + -71.73214532374675, + 20.186986670240614 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 4.6070709228515625, + "std": 2.055325746536255, + "count": 161800, + "valid_pixels": 161800, + "total_pixels": 89931870, + "coverage_percent": 0.17991397265507766, + "crs": "EPSG:4326", + "width": 10710, + "height": 8397, + "bounds": [ + -74.70714532374913, + 17.85448667023875, + -71.73214532374675, + 20.186986670240614 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Hawaii.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Hawaii_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Hawaii" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 6.546016216278076, + "std": 4.552042007446289, + "count": 7976, + "valid_pixels": 7976, + "total_pixels": 30441972, + "coverage_percent": 0.02620066794621584, + "crs": "EPSG:4326", + "width": 9361, + "height": 3252, + "bounds": [ + -159.3754217898888, + 21.04678349055488, + -156.77514401210894, + 21.950116823888937 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 6.546016216278076, + "std": 4.552042007446289, + "count": 7976, + "valid_pixels": 7976, + "total_pixels": 30441972, + "coverage_percent": 0.02620066794621584, + "crs": "EPSG:4326", + "width": 9361, + "height": 3252, + "bounds": [ + -159.3754217898888, + 21.04678349055488, + -156.77514401210894, + 21.950116823888937 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Honduras.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Honduras_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Honduras" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 10.55876636505127, + "std": 4.657533645629883, + "count": 724371, + "valid_pixels": 724371, + "total_pixels": 304110105, + "coverage_percent": 0.23819366344304801, + "crs": "EPSG:4326", + "width": 22515, + "height": 13507, + "bounds": [ + -88.4728246063782, + 12.986786336254944, + -82.21865793970653, + 16.73873078070239 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 10.55876636505127, + "std": 4.657533645629883, + "count": 724371, + "valid_pixels": 724371, + "total_pixels": 304110105, + "coverage_percent": 0.23819366344304801, + "crs": "EPSG:4326", + "width": 22515, + "height": 13507, + "bounds": [ + -88.4728246063782, + 12.986786336254944, + -82.21865793970653, + 16.73873078070239 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_HongKong.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_HongKong_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "HongKong" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 3.2191057205200195, + "std": 2.960371971130371, + "count": 6591, + "valid_pixels": 6591, + "total_pixels": 3305784, + "coverage_percent": 0.19937781778845806, + "crs": "EPSG:4326", + "width": 2172, + "height": 1522, + "bounds": [ + 113.81996411898062, + 22.13678449167698, + 114.42329745231444, + 22.559562269455096 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 3.2191057205200195, + "std": 2.960371971130371, + "count": 6591, + "valid_pixels": 6591, + "total_pixels": 3305784, + "coverage_percent": 0.19937781778845806, + "crs": "EPSG:4326", + "width": 2172, + "height": 1522, + "bounds": [ + 113.81996411898062, + 22.13678449167698, + 114.42329745231444, + 22.559562269455096 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_India.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_India_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "India" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 4.583553314208984, + "std": 2.2068517208099365, + "count": 3657360, + "valid_pixels": 3657360, + "total_pixels": 4432216653, + "coverage_percent": 0.08251762687468067, + "crs": "EPSG:4326", + "width": 76151, + "height": 58203, + "bounds": [ + 68.00431568832126, + 7.9310159492468095, + 89.15737124389373, + 24.098515949259742 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 4.583553314208984, + "std": 2.2068517208099365, + "count": 3657360, + "valid_pixels": 3657360, + "total_pixels": 4432216653, + "coverage_percent": 0.08251762687468067, + "crs": "EPSG:4326", + "width": 76151, + "height": 58203, + "bounds": [ + 68.00431568832126, + 7.9310159492468095, + 89.15737124389372, + 24.098515949259742 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Indonesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Indonesia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Indonesia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 27.960399627685547, + "mean": 15.320359230041504, + "std": 7.325531482696533, + "count": 28183675, + "valid_pixels": 28183675, + "total_pixels": 10585539992, + "coverage_percent": 0.26624692761351576, + "crs": "EPSG:4326", + "width": 168206, + "height": 62932, + "bounds": [ + 94.36870234331364, + -11.214172824444137, + 141.0925912322399, + 6.266938286680959 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 27.960399627685547, + "mean": 15.320359230041504, + "std": 7.325531482696533, + "count": 28183675, + "valid_pixels": 28183675, + "total_pixels": 10585539992, + "coverage_percent": 0.26624692761351576, + "crs": "EPSG:4326", + "width": 168206, + "height": 62932, + "bounds": [ + 94.36870234331364, + -11.214172824444137, + 141.0925912322399, + 6.266938286680959 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Iran.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Iran_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Iran" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 7.5278000831604, + "mean": 3.416412830352783, + "std": 1.876515507698059, + "count": 145354, + "valid_pixels": 145354, + "total_pixels": 709695984, + "coverage_percent": 0.0204811642276392, + "crs": "EPSG:4326", + "width": 48596, + "height": 14604, + "bounds": [ + 48.16741666977941, + 24.943472222218976, + 61.6663055586791, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 7.5278000831604, + "mean": 3.416412830352783, + "std": 1.876515507698059, + "count": 145354, + "valid_pixels": 145354, + "total_pixels": 709695984, + "coverage_percent": 0.0204811642276392, + "crs": "EPSG:4326", + "width": 48596, + "height": 14604, + "bounds": [ + 48.16741666977941, + 24.943472222218976, + 61.6663055586791, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Jamaica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Jamaica_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Jamaica" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 6.58323860168457, + "std": 4.474497318267822, + "count": 101238, + "valid_pixels": 101238, + "total_pixels": 58383710, + "coverage_percent": 0.17340110794603494, + "crs": "EPSG:4326", + "width": 9394, + "height": 6215, + "bounds": [ + -78.5173408670071, + 16.912866594717524, + -75.90789642256057, + 18.639255483607794 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 6.58323860168457, + "std": 4.474497318267822, + "count": 101238, + "valid_pixels": 101238, + "total_pixels": 58383710, + "coverage_percent": 0.17340110794603494, + "crs": "EPSG:4326", + "width": 9394, + "height": 6215, + "bounds": [ + -78.5173408670071, + 16.912866594717524, + -75.90789642256057, + 18.639255483607794 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Japan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Japan_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Japan" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 23.65880012512207, + "mean": 9.937237739562988, + "std": 5.185065269470215, + "count": 10311, + "valid_pixels": 10311, + "total_pixels": 817678186, + "coverage_percent": 0.0012610095483212513, + "crs": "EPSG:4326", + "width": 35758, + "height": 22867, + "bounds": [ + 122.45870011895167, + 22.648194444439362, + 132.3914778967374, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 23.65880012512207, + "mean": 9.937237739562988, + "std": 5.185065269470215, + "count": 10311, + "valid_pixels": 10311, + "total_pixels": 817678186, + "coverage_percent": 0.0012610095483212513, + "crs": "EPSG:4326", + "width": 35758, + "height": 22867, + "bounds": [ + 122.45870011895167, + 22.648194444439362, + 132.3914778967374, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Kenya.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Kenya_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Kenya" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 5.393123149871826, + "std": 3.2222185134887695, + "count": 341292, + "valid_pixels": 341292, + "total_pixels": 123196072, + "coverage_percent": 0.27703155990233197, + "crs": "EPSG:4326", + "width": 9908, + "height": 12434, + "bounds": [ + 38.97118438848719, + -4.914387284208934, + 41.72340661071161, + -1.4604983953172823 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 5.393123149871826, + "std": 3.2222185134887695, + "count": 341292, + "valid_pixels": 341292, + "total_pixels": 123196072, + "coverage_percent": 0.27703155990233197, + "crs": "EPSG:4326", + "width": 9908, + "height": 12434, + "bounds": [ + 38.97118438848719, + -4.914387284208934, + 41.72340661071161, + -1.4604983953172823 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Liberia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Liberia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Liberia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 23.65880012512207, + "mean": 7.92972469329834, + "std": 6.478754997253418, + "count": 79021, + "valid_pixels": 79021, + "total_pixels": 64631808, + "coverage_percent": 0.12226332891693205, + "crs": "EPSG:4326", + "width": 9216, + "height": 7013, + "bounds": [ + -11.401603875517539, + 4.907425127273572, + -8.841603875515492, + 6.855480682830686 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 23.65880012512207, + "mean": 7.92972469329834, + "std": 6.478754997253418, + "count": 79021, + "valid_pixels": 79021, + "total_pixels": 64631808, + "coverage_percent": 0.12226332891693205, + "crs": "EPSG:4326", + "width": 9216, + "height": 7013, + "bounds": [ + -11.401603875517539, + 4.907425127273572, + -8.841603875515492, + 6.855480682830686 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Macau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Macau_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Macau" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 5.2401323318481445, + "std": 2.860384464263916, + "count": 55, + "valid_pixels": 55, + "total_pixels": 116622, + "coverage_percent": 0.047160913035276364, + "crs": "EPSG:4326", + "width": 279, + "height": 418, + "bounds": [ + 113.52701652233377, + 22.105173005801177, + 113.60451652233382, + 22.221284116912383 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 5.2401323318481445, + "std": 2.860384464263916, + "count": 55, + "valid_pixels": 55, + "total_pixels": 116622, + "coverage_percent": 0.047160913035276364, + "crs": "EPSG:4326", + "width": 279, + "height": 418, + "bounds": [ + 113.52701652233377, + 22.105173005801177, + 113.60451652233382, + 22.221284116912383 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Madagascar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Madagascar_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Madagascar" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 17.20639991760254, + "mean": 9.168357849121094, + "std": 4.0528130531311035, + "count": 2952678, + "valid_pixels": 2952678, + "total_pixels": 1450574898, + "coverage_percent": 0.20355226083610337, + "crs": "EPSG:4326", + "width": 28137, + "height": 51554, + "bounds": [ + 42.96760178695098, + -26.09421475014743, + 50.78343512029056, + -11.773659194580416 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 17.20639991760254, + "mean": 9.168357849121094, + "std": 4.0528130531311035, + "count": 2952678, + "valid_pixels": 2952678, + "total_pixels": 1450574898, + "coverage_percent": 0.20355226083610337, + "crs": "EPSG:4326", + "width": 28137, + "height": 51554, + "bounds": [ + 42.96760178695098, + -26.09421475014743, + 50.78343512029056, + -11.773659194580416 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Malaysia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Malaysia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Malaysia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 21.507999420166016, + "mean": 12.413423538208008, + "std": 4.74058723449707, + "count": 5851960, + "valid_pixels": 5851960, + "total_pixels": 1676728959, + "coverage_percent": 0.349010492637409, + "crs": "EPSG:4326", + "width": 71787, + "height": 23357, + "bounds": [ + 99.42602848942141, + 0.9755314908418464, + 119.3668618227707, + 7.463587046402592 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 21.507999420166016, + "mean": 12.413423538208008, + "std": 4.74058723449707, + "count": 5851960, + "valid_pixels": 5851960, + "total_pixels": 1676728959, + "coverage_percent": 0.349010492637409, + "crs": "EPSG:4326", + "width": 71787, + "height": 23357, + "bounds": [ + 99.42602848942141, + 0.9755314908418464, + 119.3668618227707, + 7.463587046402592 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Martinique.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Martinique_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Martinique" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 17.20639991760254, + "mean": 9.21277141571045, + "std": 4.062704563140869, + "count": 11684, + "valid_pixels": 11684, + "total_pixels": 965550, + "coverage_percent": 1.2100875148878876, + "crs": "EPSG:4326", + "width": 785, + "height": 1230, + "bounds": [ + -61.04217303805881, + 14.411546868218043, + -60.824117482503084, + 14.753213534884983 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 17.20639991760254, + "mean": 9.21277141571045, + "std": 4.062704563140869, + "count": 11684, + "valid_pixels": 11684, + "total_pixels": 965550, + "coverage_percent": 1.2100875148878876, + "crs": "EPSG:4326", + "width": 785, + "height": 1230, + "bounds": [ + -61.04217303805881, + 14.411546868218043, + -60.824117482503084, + 14.753213534884983 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Mauritania.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Mauritania_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Mauritania" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 6.452400207519531, + "mean": 3.939619302749634, + "std": 1.8806487321853638, + "count": 306, + "valid_pixels": 306, + "total_pixels": 27720, + "coverage_percent": 1.103896103896104, + "crs": "EPSG:4326", + "width": 165, + "height": 168, + "bounds": [ + -16.491458545260958, + 16.06522377861867, + -16.445625211927588, + 16.111890445285372 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 6.452400207519531, + "mean": 3.939619302749634, + "std": 1.8806487321853638, + "count": 306, + "valid_pixels": 306, + "total_pixels": 27720, + "coverage_percent": 1.103896103896104, + "crs": "EPSG:4326", + "width": 165, + "height": 168, + "bounds": [ + -16.491458545260958, + 16.06522377861867, + -16.445625211927588, + 16.111890445285372 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Mayotte.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Mayotte_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Mayotte" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 9.531893730163574, + "std": 3.618455410003662, + "count": 5549, + "valid_pixels": 5549, + "total_pixels": 1519590, + "coverage_percent": 0.3651642877355076, + "crs": "EPSG:4326", + "width": 1110, + "height": 1369, + "bounds": [ + 45.00319646429905, + -13.009219570910638, + 45.31152979763263, + -12.628941793132556 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 9.531893730163574, + "std": 3.618455410003662, + "count": 5549, + "valid_pixels": 5549, + "total_pixels": 1519590, + "coverage_percent": 0.3651642877355076, + "crs": "EPSG:4326", + "width": 1110, + "height": 1369, + "bounds": [ + 45.00319646429905, + -13.009219570910638, + 45.31152979763263, + -12.628941793132556 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Mexico.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Mexico_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Mexico" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 17.20639991760254, + "mean": 6.81156063079834, + "std": 4.737740516662598, + "count": 7767031, + "valid_pixels": 7767031, + "total_pixels": 6702382710, + "coverage_percent": 0.11588462396233414, + "crs": "EPSG:4326", + "width": 112755, + "height": 59442, + "bounds": [ + -117.64705634559239, + 14.488472222209012, + -86.32622301223401, + 31.000138888888888 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 17.20639991760254, + "mean": 6.81156063079834, + "std": 4.737740516662598, + "count": 7767031, + "valid_pixels": 7767031, + "total_pixels": 6702382710, + "coverage_percent": 0.11588462396233414, + "crs": "EPSG:4326", + "width": 112755, + "height": 59442, + "bounds": [ + -117.64705634559239, + 14.488472222209012, + -86.32622301223401, + 31.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Micronesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Micronesia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Micronesia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 13.432500839233398, + "std": 6.991531848907471, + "count": 104224, + "valid_pixels": 104224, + "total_pixels": 3439702968, + "coverage_percent": 0.003030029074301162, + "crs": "EPSG:4326", + "width": 96006, + "height": 35828, + "bounds": [ + 137.0547355699553, + 0.5240156726249232, + 163.72306890330998, + 10.476237894855107 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 13.432500839233398, + "std": 6.991531848907471, + "count": 104224, + "valid_pixels": 104224, + "total_pixels": 3439702968, + "coverage_percent": 0.003030029074301162, + "crs": "EPSG:4326", + "width": 96006, + "height": 35828, + "bounds": [ + 137.0547355699553, + 0.5240156726249232, + 163.72306890330998, + 10.476237894855107 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Mozambique.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Mozambique_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Mozambique" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 6.628051280975342, + "std": 2.910315990447998, + "count": 3539238, + "valid_pixels": 3539238, + "total_pixels": 1972799776, + "coverage_percent": 0.17940178436029994, + "crs": "EPSG:4326", + "width": 33104, + "height": 59594, + "bounds": [ + 32.10071331019423, + -26.875823413771545, + 41.29626886575714, + -10.321934524869416 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 12.904800415039062, + "mean": 6.628051280975342, + "std": 2.910315990447998, + "count": 3539238, + "valid_pixels": 3539238, + "total_pixels": 1972799776, + "coverage_percent": 0.17940178436029994, + "crs": "EPSG:4326", + "width": 33104, + "height": 59594, + "bounds": [ + 32.10071331019423, + -26.875823413771545, + 41.29626886575714, + -10.321934524869416 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Myanmar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Myanmar_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Myanmar" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 8.353580474853516, + "std": 5.338308811187744, + "count": 5175798, + "valid_pixels": 5175798, + "total_pixels": 1252849500, + "coverage_percent": 0.41312208689072394, + "crs": "EPSG:4326", + "width": 25660, + "height": 48825, + "bounds": [ + 92.17192368383758, + 8.605406051723765, + 99.29970146162105, + 22.167906051734615 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 8.353580474853516, + "std": 5.338308811187744, + "count": 5175798, + "valid_pixels": 5175798, + "total_pixels": 1252849500, + "coverage_percent": 0.41312208689072394, + "crs": "EPSG:4326", + "width": 25660, + "height": 48825, + "bounds": [ + 92.17192368383758, + 8.605406051723765, + 99.29970146162105, + 22.167906051734615 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_NewCaledonia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_NewCaledonia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "NewCaledonia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 11.829400062561035, + "mean": 4.629542827606201, + "std": 3.0743536949157715, + "count": 275920, + "valid_pixels": 275920, + "total_pixels": 1039130169, + "coverage_percent": 0.026552977502859895, + "crs": "EPSG:4326", + "width": 48587, + "height": 21387, + "bounds": [ + 155.6835657771306, + -23.000172750893213, + 169.17995466603028, + -17.05933941755513 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 11.829400062561035, + "mean": 4.629542827606201, + "std": 3.0743536949157715, + "count": 275920, + "valid_pixels": 275920, + "total_pixels": 1039130169, + "coverage_percent": 0.026552977502859895, + "crs": "EPSG:4326", + "width": 48587, + "height": 21387, + "bounds": [ + 155.6835657771306, + -23.000172750893213, + 169.17995466603028, + -17.05933941755513 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_NewZealand.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_NewZealand_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "NewZealand" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 7.252197265625, + "std": 4.61217737197876, + "count": 406626, + "valid_pixels": 406626, + "total_pixels": 259232401, + "coverage_percent": 0.15685770699627938, + "crs": "EPSG:4326", + "width": 18001, + "height": 14401, + "bounds": [ + 171.9998611111111, + -38.00013888889209, + 177.00013888889288, + -33.99986111111111 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 7.252197265625, + "std": 4.61217737197876, + "count": 406626, + "valid_pixels": 406626, + "total_pixels": 259232401, + "coverage_percent": 0.15685770699627938, + "crs": "EPSG:4326", + "width": 18001, + "height": 14401, + "bounds": [ + 171.9998611111111, + -38.00013888889208, + 177.00013888889288, + -33.99986111111111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Nicaragua.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Nicaragua_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Nicaragua" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 9.151931762695312, + "std": 4.460372447967529, + "count": 790446, + "valid_pixels": 790446, + "total_pixels": 311211176, + "coverage_percent": 0.25399023587764724, + "crs": "EPSG:4326", + "width": 20164, + "height": 15434, + "bounds": [ + -87.84374281703877, + 10.742658262611588, + -82.24263170592319, + 15.02988048483724 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 9.151931762695312, + "std": 4.460372447967529, + "count": 790446, + "valid_pixels": 790446, + "total_pixels": 311211176, + "coverage_percent": 0.25399023587764724, + "crs": "EPSG:4326", + "width": 20164, + "height": 15434, + "bounds": [ + -87.84374281703877, + 10.742658262611588, + -82.24263170592319, + 15.02988048483724 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Nigeria.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Nigeria_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Nigeria" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 21.507999420166016, + "mean": 8.308341026306152, + "std": 5.395327568054199, + "count": 7313490, + "valid_pixels": 7313490, + "total_pixels": 181026574, + "coverage_percent": 4.040009065188407, + "crs": "EPSG:4326", + "width": 21403, + "height": 8458, + "bounds": [ + 2.706058195853941, + 4.290355279708679, + 8.651335973636474, + 6.639799724155003 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 21.507999420166016, + "mean": 8.308341026306152, + "std": 5.395327568054199, + "count": 7313490, + "valid_pixels": 7313490, + "total_pixels": 181026574, + "coverage_percent": 4.040009065188407, + "crs": "EPSG:4326", + "width": 21403, + "height": 8458, + "bounds": [ + 2.706058195853941, + 4.290355279708679, + 8.651335973636474, + 6.639799724155003 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_NorthernMarianaIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_NorthernMarianaIslands_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "NorthernMarianaIslands" + }, + "original_stats": { + "min": 6.452400207519531, + "max": 32.262001037597656, + "mean": 26.8524112701416, + "std": 5.53111457824707, + "count": 132, + "valid_pixels": 132, + "total_pixels": 142229920, + "coverage_percent": 9.280747679531844e-05, + "crs": "EPSG:4326", + "width": 5887, + "height": 24160, + "bounds": [ + 144.66525013476775, + 14.00472703201465, + 146.30052791254684, + 20.71583814313113 + ] + }, + "cog_stats": { + "min": 6.452400207519531, + "max": 32.262001037597656, + "mean": 26.8524112701416, + "std": 5.53111457824707, + "count": 132, + "valid_pixels": 132, + "total_pixels": 142229920, + "coverage_percent": 9.280747679531844e-05, + "crs": "EPSG:4326", + "width": 5887, + "height": 24160, + "bounds": [ + 144.66525013476775, + 14.00472703201465, + 146.30052791254684, + 20.71583814313113 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Oman.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Oman_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Oman" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 3.589930772781372, + "std": 2.842360496520996, + "count": 2621, + "valid_pixels": 2621, + "total_pixels": 942006975, + "coverage_percent": 0.000278235731747103, + "crs": "EPSG:4326", + "width": 25415, + "height": 37065, + "bounds": [ + 52.99997672674432, + 16.321408996785937, + 60.05969894897219, + 26.617242330127507 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 3.589930772781372, + "std": 2.842360496520996, + "count": 2621, + "valid_pixels": 2621, + "total_pixels": 942006975, + "coverage_percent": 0.000278235731747103, + "crs": "EPSG:4326", + "width": 25415, + "height": 37065, + "bounds": [ + 52.99997672674432, + 16.321408996785937, + 60.05969894897218, + 26.617242330127507 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Pakistan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Pakistan_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Pakistan" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 5.376999855041504, + "mean": 3.0661683082580566, + "std": 1.3314151763916016, + "count": 621102, + "valid_pixels": 621102, + "total_pixels": 201857775, + "coverage_percent": 0.3076928793057389, + "crs": "EPSG:4326", + "width": 25185, + "height": 8015, + "bounds": [ + 61.540878410173256, + 23.584002230329638, + 68.53671174351219, + 25.81039111922031 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 5.376999855041504, + "mean": 3.0661683082580566, + "std": 1.3314151763916016, + "count": 621102, + "valid_pixels": 621102, + "total_pixels": 201857775, + "coverage_percent": 0.3076928793057389, + "crs": "EPSG:4326", + "width": 25185, + "height": 8015, + "bounds": [ + 61.540878410173256, + 23.584002230329638, + 68.53671174351219, + 25.81039111922031 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Palau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Palau_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Palau" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 24.73419952392578, + "mean": 12.910404205322266, + "std": 6.001434326171875, + "count": 56654, + "valid_pixels": 56654, + "total_pixels": 258657384, + "coverage_percent": 0.02190310561557369, + "crs": "EPSG:4326", + "width": 13674, + "height": 18916, + "bounds": [ + 131.02508914525566, + 2.9088728726669792, + 134.82342247859202, + 8.163317317115627 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 24.73419952392578, + "mean": 12.910404205322266, + "std": 6.001434326171875, + "count": 56654, + "valid_pixels": 56654, + "total_pixels": 258657384, + "coverage_percent": 0.02190310561557369, + "crs": "EPSG:4326", + "width": 13674, + "height": 18916, + "bounds": [ + 131.02508914525566, + 2.9088728726669792, + 134.82342247859202, + 8.163317317115627 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Panama.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Panama_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Panama" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 32.262001037597656, + "mean": 17.442453384399414, + "std": 8.602169036865234, + "count": 1619877, + "valid_pixels": 1619877, + "total_pixels": 240121740, + "coverage_percent": 0.674606555824558, + "crs": "EPSG:4326", + "width": 20532, + "height": 11695, + "bounds": [ + -83.05194398561447, + 6.972076906008147, + -77.34861065227658, + 10.220688017121857 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 32.262001037597656, + "mean": 17.442453384399414, + "std": 8.602169036865234, + "count": 1619877, + "valid_pixels": 1619877, + "total_pixels": 240121740, + "coverage_percent": 0.674606555824558, + "crs": "EPSG:4326", + "width": 20532, + "height": 11695, + "bounds": [ + -83.05194398561447, + 6.972076906008147, + -77.34861065227658, + 10.220688017121857 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_PapuaNewGuinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_PapuaNewGuinea_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "PapuaNewGuinea" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 29.03580093383789, + "mean": 17.46883201599121, + "std": 6.892101287841797, + "count": 5016902, + "valid_pixels": 5016902, + "total_pixels": 2426912824, + "coverage_percent": 0.20671949772514778, + "crs": "EPSG:4326", + "width": 58184, + "height": 41711, + "bounds": [ + 140.9929604685411, + -12.094017993778076, + 157.15518269077626, + -0.5076291048799185 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 29.03580093383789, + "mean": 17.46883201599121, + "std": 6.892101287841797, + "count": 5016902, + "valid_pixels": 5016902, + "total_pixels": 2426912824, + "coverage_percent": 0.20671949772514778, + "crs": "EPSG:4326", + "width": 58184, + "height": 41711, + "bounds": [ + 140.9929604685411, + -12.094017993778076, + 157.15518269077626, + -0.5076291048799185 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Peru.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Peru_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Peru" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 7.4945220947265625, + "std": 3.6301417350769043, + "count": 42776, + "valid_pixels": 42776, + "total_pixels": 44966519, + "coverage_percent": 0.09512855553706526, + "crs": "EPSG:4326", + "width": 4069, + "height": 11051, + "bounds": [ + -81.3512894015842, + -6.472211090354713, + -80.22101162380551, + -3.402488868130035 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 7.4945220947265625, + "std": 3.6301417350769043, + "count": 42776, + "valid_pixels": 42776, + "total_pixels": 44966519, + "coverage_percent": 0.09512855553706526, + "crs": "EPSG:4326", + "width": 4069, + "height": 11051, + "bounds": [ + -81.3512894015842, + -6.472211090354714, + -80.22101162380551, + -3.402488868130035 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Philipines.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Philipines_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Philipines" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 15.0556001663208, + "mean": 6.4189581871032715, + "std": 3.8260693550109863, + "count": 2707381, + "valid_pixels": 2707381, + "total_pixels": 2172483840, + "coverage_percent": 0.12462145633267403, + "crs": "EPSG:4326", + "width": 35680, + "height": 60888, + "bounds": [ + 116.8043271340159, + 4.234699509026715, + 126.71543824513495, + 21.148032842373578 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 15.0556001663208, + "mean": 6.4189581871032715, + "std": 3.8260693550109863, + "count": 2707381, + "valid_pixels": 2707381, + "total_pixels": 2172483840, + "coverage_percent": 0.12462145633267403, + "crs": "EPSG:4326", + "width": 35680, + "height": 60888, + "bounds": [ + 116.8043271340159, + 4.234699509026715, + 126.71543824513495, + 21.148032842373578 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_PuertoRico.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_PuertoRico_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "PuertoRico" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 4.987711429595947, + "std": 2.9049928188323975, + "count": 86887, + "valid_pixels": 86887, + "total_pixels": 29758212, + "coverage_percent": 0.2919765475156908, + "crs": "EPSG:4326", + "width": 10989, + "height": 2708, + "bounds": [ + -68.02373939010596, + 17.833478116558542, + -64.97123939010352, + 18.585700338781365 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 4.987711429595947, + "std": 2.9049928188323975, + "count": 86887, + "valid_pixels": 86887, + "total_pixels": 29758212, + "coverage_percent": 0.2919765475156908, + "crs": "EPSG:4326", + "width": 10989, + "height": 2708, + "bounds": [ + -68.02373939010596, + 17.833478116558542, + -64.97123939010352, + 18.585700338781365 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Qatar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Qatar_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Qatar" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 6.452400207519531, + "mean": 2.9133224487304688, + "std": 1.6564548015594482, + "count": 4470, + "valid_pixels": 4470, + "total_pixels": 37809744, + "coverage_percent": 0.011822349286469646, + "crs": "EPSG:4326", + "width": 6288, + "height": 6013, + "bounds": [ + 50.722374702658435, + 24.546690317683062, + 52.4690413693265, + 26.216968095462175 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 6.452400207519531, + "mean": 2.9133224487304688, + "std": 1.6564548015594482, + "count": 4470, + "valid_pixels": 4470, + "total_pixels": 37809744, + "coverage_percent": 0.011822349286469646, + "crs": "EPSG:4326", + "width": 6288, + "height": 6013, + "bounds": [ + 50.722374702658435, + 24.546690317683062, + 52.4690413693265, + 26.216968095462175 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_ReunionAndMauritius.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_ReunionAndMauritius_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "ReunionAndMauritius" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 15.0556001663208, + "mean": 5.072305202484131, + "std": 4.449031352996826, + "count": 360, + "valid_pixels": 360, + "total_pixels": 90100780, + "coverage_percent": 0.0003995525898887889, + "crs": "EPSG:4326", + "width": 12628, + "height": 7135, + "bounds": [ + 54.49238418722549, + -21.7320337410071, + 58.00016196500607, + -19.75008929656107 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 15.0556001663208, + "mean": 5.072305202484131, + "std": 4.449031352996826, + "count": 360, + "valid_pixels": 360, + "total_pixels": 90100780, + "coverage_percent": 0.0003995525898887889, + "crs": "EPSG:4326", + "width": 12628, + "height": 7135, + "bounds": [ + 54.49238418722549, + -21.7320337410071, + 58.00016196500607, + -19.75008929656107 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_SaintKittsAndNevis.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_SaintKittsAndNevis_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "SaintKittsAndNevis" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 6.13732385635376, + "std": 4.132258415222168, + "count": 570, + "valid_pixels": 570, + "total_pixels": 209568, + "coverage_percent": 0.27198808978469996, + "crs": "EPSG:4326", + "width": 296, + "height": 708, + "bounds": [ + -62.707448611789275, + 17.133546532524797, + -62.62522638956699, + 17.330213199191622 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 6.13732385635376, + "std": 4.132258415222168, + "count": 570, + "valid_pixels": 570, + "total_pixels": 209568, + "coverage_percent": 0.27198808978469996, + "crs": "EPSG:4326", + "width": 296, + "height": 708, + "bounds": [ + -62.707448611789275, + 17.133546532524797, + -62.62522638956699, + 17.330213199191622 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_SaintLucia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_SaintLucia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "SaintLucia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 20.432600021362305, + "mean": 11.122160911560059, + "std": 3.9778964519500732, + "count": 1497, + "valid_pixels": 1497, + "total_pixels": 529760, + "coverage_percent": 0.28258079130172153, + "crs": "EPSG:4326", + "width": 440, + "height": 1204, + "bounds": [ + -61.010266910129126, + 13.74513265397787, + -60.888044687906806, + 14.079577098422583 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 20.432600021362305, + "mean": 11.122160911560059, + "std": 3.9778964519500732, + "count": 1497, + "valid_pixels": 1497, + "total_pixels": 529760, + "coverage_percent": 0.28258079130172153, + "crs": "EPSG:4326", + "width": 440, + "height": 1204, + "bounds": [ + -61.010266910129126, + 13.74513265397787, + -60.888044687906806, + 14.079577098422583 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_SaintVincentAndTheGrenadines.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_SaintVincentAndTheGrenadines_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "SaintVincentAndTheGrenadines" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 38.71440124511719, + "mean": 11.085850715637207, + "std": 10.499720573425293, + "count": 478, + "valid_pixels": 478, + "total_pixels": 2155920, + "coverage_percent": 0.02217150914690712, + "crs": "EPSG:4326", + "width": 1040, + "height": 2073, + "bounds": [ + -61.43353808932835, + 12.583016035291424, + -61.14464920043923, + 13.158849368625217 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 38.71440124511719, + "mean": 11.085850715637207, + "std": 10.499720573425293, + "count": 478, + "valid_pixels": 478, + "total_pixels": 2155920, + "coverage_percent": 0.02217150914690712, + "crs": "EPSG:4326", + "width": 1040, + "height": 2073, + "bounds": [ + -61.43353808932835, + 12.583016035291424, + -61.14464920043923, + 13.158849368625217 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Samoa.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Samoa_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Samoa" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 9.271923065185547, + "std": 5.164498805999756, + "count": 3480, + "valid_pixels": 3480, + "total_pixels": 12964224, + "coverage_percent": 0.02684310298865555, + "crs": "EPSG:4326", + "width": 5194, + "height": 2496, + "bounds": [ + -172.82225087917433, + -14.10419825234454, + -171.3794731013954, + -13.410864919010653 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 9.271923065185547, + "std": 5.164498805999756, + "count": 3480, + "valid_pixels": 3480, + "total_pixels": 12964224, + "coverage_percent": 0.02684310298865555, + "crs": "EPSG:4326", + "width": 5194, + "height": 2496, + "bounds": [ + -172.82225087917433, + -14.10419825234454, + -171.3794731013954, + -13.410864919010653 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_SaudiArabia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_SaudiArabia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "SaudiArabia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 7.5278000831604, + "mean": 2.3756191730499268, + "std": 2.1107072830200195, + "count": 75851, + "valid_pixels": 75851, + "total_pixels": 2891849400, + "coverage_percent": 0.002622923586546381, + "crs": "EPSG:4326", + "width": 61496, + "height": 47025, + "bounds": [ + 34.4739559157922, + 15.937638888878439, + 51.55617813802809, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 7.5278000831604, + "mean": 2.3756191730499268, + "std": 2.1107072830200195, + "count": 75851, + "valid_pixels": 75851, + "total_pixels": 2891849400, + "coverage_percent": 0.002622923586546381, + "crs": "EPSG:4326", + "width": 61496, + "height": 47025, + "bounds": [ + 34.4739559157922, + 15.937638888878439, + 51.55617813802809, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Senegal.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Senegal_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Senegal" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 3.7860686779022217, + "std": 2.231907367706299, + "count": 1745529, + "valid_pixels": 1745529, + "total_pixels": 109483700, + "coverage_percent": 1.5943277401110851, + "crs": "EPSG:4326", + "width": 7948, + "height": 13775, + "bounds": [ + -17.000138888888888, + 12.344137268063344, + -14.792361111109344, + 16.170526156955294 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 3.7860686779022217, + "std": 2.231907367706299, + "count": 1745529, + "valid_pixels": 1745529, + "total_pixels": 109483700, + "coverage_percent": 1.5943277401110851, + "crs": "EPSG:4326", + "width": 7948, + "height": 13775, + "bounds": [ + -17.000138888888888, + 12.344137268063346, + -14.792361111109344, + 16.170526156955294 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Seychelles.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Seychelles_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Seychelles" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 8.356200218200684, + "std": 3.1294784545898438, + "count": 11601, + "valid_pixels": 11601, + "total_pixels": 980616984, + "coverage_percent": 0.0011830307030456246, + "crs": "EPSG:4326", + "width": 37451, + "height": 26184, + "bounds": [ + 46.03785707668964, + -10.50867439353699, + 56.440912632253514, + -3.235341060197839 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 8.356200218200684, + "std": 3.1294784545898438, + "count": 11601, + "valid_pixels": 11601, + "total_pixels": 980616984, + "coverage_percent": 0.0011830307030456246, + "crs": "EPSG:4326", + "width": 37451, + "height": 26184, + "bounds": [ + 46.03785707668964, + -10.50867439353699, + 56.440912632253514, + -3.235341060197839 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_SierraLeone.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_SierraLeone_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "SierraLeone" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 6.918238639831543, + "std": 4.835275173187256, + "count": 1665854, + "valid_pixels": 1665854, + "total_pixels": 52041600, + "coverage_percent": 3.2010045809506242, + "crs": "EPSG:4326", + "width": 6255, + "height": 8320, + "bounds": [ + -13.297278056674534, + 6.973954535534518, + -11.559778056673144, + 9.285065646647478 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 6.918238639831543, + "std": 4.835275173187256, + "count": 1665854, + "valid_pixels": 1665854, + "total_pixels": 52041600, + "coverage_percent": 3.2010045809506242, + "crs": "EPSG:4326", + "width": 6255, + "height": 8320, + "bounds": [ + -13.297278056674534, + 6.973954535534517, + -11.559778056673144, + 9.285065646647478 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Singapore.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Singapore_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Singapore" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 21.507999420166016, + "mean": 10.341874122619629, + "std": 5.682402610778809, + "count": 5973, + "valid_pixels": 5973, + "total_pixels": 2081136, + "coverage_percent": 0.28700671171898423, + "crs": "EPSG:4326", + "width": 1816, + "height": 1146, + "bounds": [ + 103.60417940966882, + 1.1564778472742534, + 104.10862385411366, + 1.4748111806078414 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 21.507999420166016, + "mean": 10.341874122619629, + "std": 5.682402610778809, + "count": 5973, + "valid_pixels": 5973, + "total_pixels": 2081136, + "coverage_percent": 0.28700671171898423, + "crs": "EPSG:4326", + "width": 1816, + "height": 1146, + "bounds": [ + 103.60417940966882, + 1.1564778472742534, + 104.10862385411366, + 1.4748111806078414 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_SolomonIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_SolomonIslands_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "SolomonIslands" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 12.96601676940918, + "std": 7.182070255279541, + "count": 491696, + "valid_pixels": 491696, + "total_pixels": 1649606942, + "coverage_percent": 0.02980685807516443, + "crs": "EPSG:4326", + "width": 55651, + "height": 29642, + "bounds": [ + 155.3234818290618, + -12.469134273431159, + 170.78209294018527, + -4.235245384535683 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 12.96601676940918, + "std": 7.182070255279541, + "count": 491696, + "valid_pixels": 491696, + "total_pixels": 1649606942, + "coverage_percent": 0.02980685807516443, + "crs": "EPSG:4326", + "width": 55651, + "height": 29642, + "bounds": [ + 155.3234818290618, + -12.469134273431159, + 170.78209294018527, + -4.235245384535683 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Somalia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Somalia_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Somalia" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 3.808542013168335, + "std": 2.3107094764709473, + "count": 4649, + "valid_pixels": 4649, + "total_pixels": 1722141952, + "coverage_percent": 0.0002699545176633616, + "crs": "EPSG:4326", + "width": 36412, + "height": 47296, + "bounds": [ + 41.4598356917426, + -1.0002255074339033, + 51.574280136195135, + 12.137552270354384 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 3.808542013168335, + "std": 2.3107094764709473, + "count": 4649, + "valid_pixels": 4649, + "total_pixels": 1722141952, + "coverage_percent": 0.0002699545176633616, + "crs": "EPSG:4326", + "width": 36412, + "height": 47296, + "bounds": [ + 41.4598356917426, + -1.0002255074339033, + 51.57428013619513, + 12.137552270354384 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_SouthAfrica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_SouthAfrica_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "SouthAfrica" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 9.26640796661377, + "std": 4.741333961486816, + "count": 16951, + "valid_pixels": 16951, + "total_pixels": 58940100, + "coverage_percent": 0.028759706888858348, + "crs": "EPSG:4326", + "width": 7615, + "height": 7740, + "bounds": [ + 30.999861111111112, + -29.000003245059055, + 33.115138888890584, + -26.850003245057334 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 9.26640796661377, + "std": 4.741333961486816, + "count": 16951, + "valid_pixels": 16951, + "total_pixels": 58940100, + "coverage_percent": 0.028759706888858348, + "crs": "EPSG:4326", + "width": 7615, + "height": 7740, + "bounds": [ + 30.999861111111112, + -29.000003245059055, + 33.115138888890584, + -26.850003245057334 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_SriLanka.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_SriLanka_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "SriLanka" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 4.607113838195801, + "std": 2.3966176509857178, + "count": 242946, + "valid_pixels": 242946, + "total_pixels": 168358523, + "coverage_percent": 0.14430276274162845, + "crs": "EPSG:4326", + "width": 10459, + "height": 16097, + "bounds": [ + 79.24055152537368, + 5.523006162575908, + 82.14582930315377, + 9.994395051468373 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 4.607113838195801, + "std": 2.3966176509857178, + "count": 242946, + "valid_pixels": 242946, + "total_pixels": 168358523, + "coverage_percent": 0.14430276274162845, + "crs": "EPSG:4326", + "width": 10459, + "height": 16097, + "bounds": [ + 79.24055152537368, + 5.523006162575908, + 82.14582930315377, + 9.994395051468373 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Sudan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Sudan_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Sudan" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 5.376999855041504, + "mean": 2.0763187408447266, + "std": 1.5945640802383423, + "count": 3588, + "valid_pixels": 3588, + "total_pixels": 119224401, + "coverage_percent": 0.0030094510602741466, + "crs": "EPSG:4326", + "width": 8121, + "height": 14681, + "bounds": [ + 36.530135257977456, + 17.92339942337211, + 38.785968591312596, + 22.00145497893093 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 5.376999855041504, + "mean": 2.0763187408447266, + "std": 1.5945640802383423, + "count": 3588, + "valid_pixels": 3588, + "total_pixels": 119224401, + "coverage_percent": 0.0030094510602741466, + "crs": "EPSG:4326", + "width": 8121, + "height": 14681, + "bounds": [ + 36.530135257977456, + 17.92339942337211, + 38.785968591312596, + 22.00145497893093 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Suriname.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Suriname_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Suriname" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 10.786284446716309, + "std": 7.808067321777344, + "count": 910279, + "valid_pixels": 910279, + "total_pixels": 17724420, + "coverage_percent": 5.135733637546391, + "crs": "EPSG:4326", + "width": 11340, + "height": 1563, + "bounds": [ + -57.15874255710178, + 5.577435387505078, + -54.00874255709926, + 6.0116020541720925 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 25.809600830078125, + "mean": 10.786284446716309, + "std": 7.808067321777344, + "count": 910279, + "valid_pixels": 910279, + "total_pixels": 17724420, + "coverage_percent": 5.135733637546391, + "crs": "EPSG:4326", + "width": 11340, + "height": 1563, + "bounds": [ + -57.15874255710178, + 5.577435387505078, + -54.00874255709926, + 6.0116020541720925 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Taiwan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Taiwan_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Taiwan" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 11.829400062561035, + "mean": 4.948075771331787, + "std": 3.1068382263183594, + "count": 1562, + "valid_pixels": 1562, + "total_pixels": 373523577, + "coverage_percent": 0.0004181797605777372, + "crs": "EPSG:4326", + "width": 20027, + "height": 18651, + "bounds": [ + 116.65220759501844, + 20.546223782170895, + 122.21526315057844, + 25.727057115508373 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 11.829400062561035, + "mean": 4.948075771331787, + "std": 3.1068382263183594, + "count": 1562, + "valid_pixels": 1562, + "total_pixels": 373523577, + "coverage_percent": 0.0004181797605777372, + "crs": "EPSG:4326", + "width": 20027, + "height": 18651, + "bounds": [ + 116.65220759501844, + 20.546223782170895, + 122.21526315057844, + 25.727057115508373 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Tanzania.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Tanzania_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Tanzania" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 10.200969696044922, + "std": 4.310014247894287, + "count": 1006335, + "valid_pixels": 1006335, + "total_pixels": 194145627, + "coverage_percent": 0.5183402869022644, + "crs": "EPSG:4326", + "width": 8529, + "height": 22763, + "bounds": [ + 38.28628600041123, + -10.82903861973336, + 40.65545266707979, + -4.505983064172748 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 18.28179931640625, + "mean": 10.200969696044922, + "std": 4.310014247894287, + "count": 1006335, + "valid_pixels": 1006335, + "total_pixels": 194145627, + "coverage_percent": 0.5183402869022644, + "crs": "EPSG:4326", + "width": 8529, + "height": 22763, + "bounds": [ + 38.28628600041123, + -10.82903861973336, + 40.65545266707979, + -4.505983064172748 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Thailand.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Thailand_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Thailand" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 8.310705184936523, + "std": 3.1026694774627686, + "count": 2627817, + "valid_pixels": 2627817, + "total_pixels": 574569450, + "coverage_percent": 0.45735411097822903, + "crs": "EPSG:4326", + "width": 20475, + "height": 28062, + "bounds": [ + 97.3937716291951, + 6.116629205027933, + 103.08127162919965, + 13.911629205034169 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 8.310705184936523, + "std": 3.1026694774627686, + "count": 2627817, + "valid_pixels": 2627817, + "total_pixels": 574569450, + "coverage_percent": 0.45735411097822903, + "crs": "EPSG:4326", + "width": 20475, + "height": 28062, + "bounds": [ + 97.3937716291951, + 6.116629205027933, + 103.08127162919965, + 13.911629205034169 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_TimorLeste.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_TimorLeste_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "TimorLeste" + }, + "original_stats": { + "min": 7.5278000831604, + "max": 32.262001037597656, + "mean": 22.276865005493164, + "std": 7.197994709014893, + "count": 1277, + "valid_pixels": 1277, + "total_pixels": 58979898, + "coverage_percent": 0.0021651444700701242, + "crs": "EPSG:4326", + "width": 12091, + "height": 4878, + "bounds": [ + 124.04451595730264, + -9.46070907090759, + 127.40312706841644, + -8.105709070906506 + ] + }, + "cog_stats": { + "min": 7.5278000831604, + "max": 32.262001037597656, + "mean": 22.276865005493164, + "std": 7.197994709014893, + "count": 1277, + "valid_pixels": 1277, + "total_pixels": 58979898, + "coverage_percent": 0.0021651444700701242, + "crs": "EPSG:4326", + "width": 12091, + "height": 4878, + "bounds": [ + 124.04451595730264, + -9.46070907090759, + 127.40312706841644, + -8.105709070906506 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Togo.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Togo_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Togo" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 4.242126941680908, + "std": 3.937107563018799, + "count": 1320, + "valid_pixels": 1320, + "total_pixels": 955680, + "coverage_percent": 0.13812154696132595, + "crs": "EPSG:4326", + "width": 1448, + "height": 660, + "bounds": [ + 1.2000859875149197, + 6.131375505659169, + 1.6023082097374637, + 6.314708838992649 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 4.242126941680908, + "std": 3.937107563018799, + "count": 1320, + "valid_pixels": 1320, + "total_pixels": 955680, + "coverage_percent": 0.13812154696132595, + "crs": "EPSG:4326", + "width": 1448, + "height": 660, + "bounds": [ + 1.2000859875149197, + 6.131375505659169, + 1.6023082097374637, + 6.314708838992649 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Tonga.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Tonga_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Tonga" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 4.269092082977295, + "std": 2.332662582397461, + "count": 8683, + "valid_pixels": 8683, + "total_pixels": 257063284, + "coverage_percent": 0.0033777674761207833, + "crs": "EPSG:4326", + "width": 10292, + "height": 24977, + "bounds": [ + -176.35241720002182, + -22.439789222379467, + -173.49352831113063, + -15.501733666818362 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 8.60319995880127, + "mean": 4.269092082977295, + "std": 2.332662582397461, + "count": 8683, + "valid_pixels": 8683, + "total_pixels": 257063284, + "coverage_percent": 0.0033777674761207833, + "crs": "EPSG:4326", + "width": 10292, + "height": 24977, + "bounds": [ + -176.35241720002182, + -22.439789222379467, + -173.49352831113063, + -15.501733666818362 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_TrinidadAndTobago.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_TrinidadAndTobago_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "TrinidadAndTobago" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 20.432600021362305, + "mean": 12.232799530029297, + "std": 4.66642951965332, + "count": 67597, + "valid_pixels": 67597, + "total_pixels": 22036080, + "coverage_percent": 0.3067560110509673, + "crs": "EPSG:4326", + "width": 4910, + "height": 4488, + "bounds": [ + -61.929082522922094, + 10.002546204459994, + -60.56519363403211, + 11.249212871127659 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 20.432600021362305, + "mean": 12.232799530029297, + "std": 4.66642951965332, + "count": 67597, + "valid_pixels": 67597, + "total_pixels": 22036080, + "coverage_percent": 0.3067560110509673, + "crs": "EPSG:4326", + "width": 4910, + "height": 4488, + "bounds": [ + -61.929082522922094, + 10.002546204459994, + -60.56519363403211, + 11.249212871127659 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_TurksAndCaicosIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_TurksAndCaicosIslands_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "TurksAndCaicosIslands" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 6.452400207519531, + "mean": 4.292288303375244, + "std": 1.3737889528274536, + "count": 192897, + "valid_pixels": 192897, + "total_pixels": 16636365, + "coverage_percent": 1.1594900688942567, + "crs": "EPSG:4326", + "width": 5207, + "height": 3195, + "bounds": [ + -72.49965780060619, + 21.124057999267247, + -71.05326891171615, + 22.011557999267957 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 6.452400207519531, + "mean": 4.292288303375244, + "std": 1.3737889528274536, + "count": 192897, + "valid_pixels": 192897, + "total_pixels": 16636365, + "coverage_percent": 1.1594900688942567, + "crs": "EPSG:4326", + "width": 5207, + "height": 3195, + "bounds": [ + -72.49965780060619, + 21.124057999267247, + -71.05326891171615, + 22.011557999267957 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Tuvalu.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Tuvalu_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Tuvalu" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 2.7150533199310303, + "std": 3.597489833831787, + "count": 81, + "valid_pixels": 81, + "total_pixels": 279691851, + "coverage_percent": 2.896044332732454e-05, + "crs": "EPSG:4326", + "width": 14629, + "height": 19119, + "bounds": [ + 175.92957458723907, + -10.883059899755601, + 179.99318569835344, + -5.572226566418019 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 10.753999710083008, + "mean": 2.7150533199310303, + "std": 3.597489833831787, + "count": 81, + "valid_pixels": 81, + "total_pixels": 279691851, + "coverage_percent": 2.896044332732454e-05, + "crs": "EPSG:4326", + "width": 14629, + "height": 19119, + "bounds": [ + 175.92957458723907, + -10.883059899755601, + 179.99318569835344, + -5.572226566418019 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_UnitedArabEmirates.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_UnitedArabEmirates_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "UnitedArabEmirates" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 6.452400207519531, + "mean": 2.0290350914001465, + "std": 1.8167905807495117, + "count": 136866, + "valid_pixels": 136866, + "total_pixels": 186388800, + "coverage_percent": 0.07343037779094023, + "crs": "EPSG:4326", + "width": 17922, + "height": 10400, + "bounds": [ + 51.441083215109195, + 23.728353441236308, + 56.41941654844651, + 26.617242330127507 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 6.452400207519531, + "mean": 2.0290350914001465, + "std": 1.8167905807495117, + "count": 136866, + "valid_pixels": 136866, + "total_pixels": 186388800, + "coverage_percent": 0.07343037779094023, + "crs": "EPSG:4326", + "width": 17922, + "height": 10400, + "bounds": [ + 51.441083215109195, + 23.728353441236308, + 56.41941654844651, + 26.617242330127507 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_UnitedStates.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_UnitedStates_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "UnitedStates" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 6.662167072296143, + "std": 3.4373815059661865, + "count": 2690848, + "valid_pixels": 2690848, + "total_pixels": 1025092324, + "coverage_percent": 0.26249811231636927, + "crs": "EPSG:4326", + "width": 53188, + "height": 19273, + "bounds": [ + -94.80674899631076, + 24.52162505255377, + -80.0323045518545, + 29.875236163669165 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 13.980199813842773, + "mean": 6.662167072296143, + "std": 3.4373815059661865, + "count": 2690848, + "valid_pixels": 2690848, + "total_pixels": 1025092324, + "coverage_percent": 0.26249811231636927, + "crs": "EPSG:4326", + "width": 53188, + "height": 19273, + "bounds": [ + -94.80674899631076, + 24.52162505255377, + -80.0323045518545, + 29.875236163669165 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Vanuatu.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Vanuatu_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Vanuatu" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 7.4177350997924805, + "std": 4.653226852416992, + "count": 14910, + "valid_pixels": 14910, + "total_pixels": 746842196, + "coverage_percent": 0.0019964056771104026, + "crs": "EPSG:4326", + "width": 21503, + "height": 34732, + "bounds": [ + 166.3358361728035, + -22.567086433906525, + 172.30889172836385, + -12.919308656121027 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 7.4177350997924805, + "std": 4.653226852416992, + "count": 14910, + "valid_pixels": 14910, + "total_pixels": 746842196, + "coverage_percent": 0.0019964056771104026, + "crs": "EPSG:4326", + "width": 21503, + "height": 34732, + "bounds": [ + 166.3358361728035, + -22.567086433906525, + 172.30889172836385, + -12.919308656121027 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Venezuela.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Venezuela_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Venezuela" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 33.337398529052734, + "mean": 19.3842830657959, + "std": 9.272892951965332, + "count": 2644322, + "valid_pixels": 2644322, + "total_pixels": 644858421, + "coverage_percent": 0.41006241275400823, + "crs": "EPSG:4326", + "width": 44841, + "height": 14381, + "bounds": [ + -72.28801120334201, + 8.316334520972553, + -59.83217786999871, + 12.311056743197971 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 33.337398529052734, + "mean": 19.3842830657959, + "std": 9.272892951965332, + "count": 2644322, + "valid_pixels": 2644322, + "total_pixels": 644858421, + "coverage_percent": 0.41006241275400823, + "crs": "EPSG:4326", + "width": 44841, + "height": 14381, + "bounds": [ + -72.28801120334201, + 8.316334520972553, + -59.83217786999871, + 12.311056743197971 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Vietnam.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Vietnam_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Vietnam" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 3.9139156341552734, + "std": 2.5273213386535645, + "count": 2168764, + "valid_pixels": 2168764, + "total_pixels": 1191634416, + "coverage_percent": 0.18199910735038724, + "crs": "EPSG:4326", + "width": 23184, + "height": 51399, + "bounds": [ + 103.7580640245313, + 7.889706614719458, + 110.19806402453645, + 22.16720661473088 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 9.678600311279297, + "mean": 3.9139156341552734, + "std": 2.5273213386535645, + "count": 2168764, + "valid_pixels": 2168764, + "total_pixels": 1191634416, + "coverage_percent": 0.18199910735038724, + "crs": "EPSG:4326", + "width": 23184, + "height": 51399, + "bounds": [ + 103.7580640245313, + 7.889706614719458, + 110.19806402453645, + 22.16720661473088 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_VirginIslandsUs.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_VirginIslandsUs_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "VirginIslandsUs" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 8.33659839630127, + "std": 4.676257133483887, + "count": 2029, + "valid_pixels": 2029, + "total_pixels": 11438448, + "coverage_percent": 0.017738420457041024, + "crs": "EPSG:4326", + "width": 4039, + "height": 2832, + "bounds": [ + -65.10577253241098, + 17.642138764565917, + -63.98382808796564, + 18.428805431233215 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 19.357200622558594, + "mean": 8.33659839630127, + "std": 4.676257133483887, + "count": 2029, + "valid_pixels": 2029, + "total_pixels": 11438448, + "coverage_percent": 0.017738420457041024, + "crs": "EPSG:4326", + "width": 4039, + "height": 2832, + "bounds": [ + -65.10577253241098, + 17.642138764565917, + -63.98382808796564, + 18.428805431233215 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_WallisAndFutuna.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_WallisAndFutuna_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "WallisAndFutuna" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 7.859804153442383, + "std": 4.60722541809082, + "count": 149, + "valid_pixels": 149, + "total_pixels": 34381422, + "coverage_percent": 0.000433373581814039, + "crs": "EPSG:4326", + "width": 7671, + "height": 4482, + "bounds": [ + -178.22013079463355, + -14.398348380826418, + -176.08929746129851, + -13.153348380825422 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 16.131000518798828, + "mean": 7.859804153442383, + "std": 4.60722541809082, + "count": 149, + "valid_pixels": 149, + "total_pixels": 34381422, + "coverage_percent": 0.000433373581814039, + "crs": "EPSG:4326", + "width": 7671, + "height": 4482, + "bounds": [ + -178.22013079463355, + -14.398348380826416, + -176.08929746129851, + -13.153348380825422 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hba95_Yemen.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hba95_Yemen_2000year.tif", + "metadata": { + "data_type": "hba95", + "region": "Yemen" + }, + "original_stats": { + "min": 0.5376999974250793, + "max": 7.5278000831604, + "mean": 4.393068313598633, + "std": 1.6204599142074585, + "count": 11397, + "valid_pixels": 11397, + "total_pixels": 863684178, + "coverage_percent": 0.0013195795743753916, + "crs": "EPSG:4326", + "width": 47057, + "height": 18354, + "bounds": [ + 41.59284821307784, + 11.78525113122194, + 54.66423710197719, + 16.883584464559352 + ] + }, + "cog_stats": { + "min": 0.5376999974250793, + "max": 7.5278000831604, + "mean": 4.393068313598633, + "std": 1.6204599142074585, + "count": 11397, + "valid_pixels": 11397, + "total_pixels": 863684178, + "coverage_percent": 0.0013195795743753916, + "crs": "EPSG:4326", + "width": 47057, + "height": 18354, + "bounds": [ + 41.59284821307784, + 11.78525113122194, + 54.66423710197719, + 16.883584464559352 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_AndamanAndNicobar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_AndamanAndNicobar_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "AndamanAndNicobar" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 35.637001037597656, + "mean": 19.864112854003906, + "std": 8.607880592346191, + "count": 675458, + "valid_pixels": 675458, + "total_pixels": 270678281, + "coverage_percent": 0.24954274037228721, + "crs": "EPSG:4326", + "width": 8287, + "height": 32663, + "bounds": [ + 91.69817764407432, + 6.374158522521313, + 94.00012208852061, + 15.447214078084126 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 35.637001037597656, + "mean": 19.864112854003906, + "std": 8.607880592346191, + "count": 675458, + "valid_pixels": 675458, + "total_pixels": 270678281, + "coverage_percent": 0.24954274037228721, + "crs": "EPSG:4326", + "width": 8287, + "height": 32663, + "bounds": [ + 91.69817764407432, + 6.374158522521313, + 94.00012208852061, + 15.447214078084126 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Angola.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Angola_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Angola" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 45.819000244140625, + "mean": 16.279964447021484, + "std": 12.087718963623047, + "count": 283969, + "valid_pixels": 283969, + "total_pixels": 140845440, + "coverage_percent": 0.20161746095578248, + "crs": "EPSG:4326", + "width": 6540, + "height": 21536, + "bounds": [ + 12.011540760464138, + -11.000149739588117, + 13.828207427132257, + -5.017927517361111 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 45.819000244140625, + "mean": 16.279964447021484, + "std": 12.087718963623047, + "count": 283969, + "valid_pixels": 283969, + "total_pixels": 140845440, + "coverage_percent": 0.20161746095578248, + "crs": "EPSG:4326", + "width": 6540, + "height": 21536, + "bounds": [ + 12.011540760464138, + -11.000149739588117, + 13.828207427132257, + -5.017927517361111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Anguilla.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Anguilla_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Anguilla" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 50.90999984741211, + "mean": 10.124069213867188, + "std": 13.445871353149414, + "count": 249, + "valid_pixels": 249, + "total_pixels": 1110375, + "coverage_percent": 0.02242485646740966, + "crs": "EPSG:4326", + "width": 987, + "height": 1125, + "bounds": [ + -63.07290042453343, + 17.90625918918161, + -62.79873375786654, + 18.21875918918186 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 50.90999984741211, + "mean": 10.124069213867188, + "std": 13.445871353149414, + "count": 249, + "valid_pixels": 249, + "total_pixels": 1110375, + "coverage_percent": 0.02242485646740966, + "crs": "EPSG:4326", + "width": 987, + "height": 1125, + "bounds": [ + -63.07290042453343, + 17.90625918918161, + -62.79873375786654, + 18.21875918918186 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_AntiguaAndBarbuda.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_AntiguaAndBarbuda_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "AntiguaAndBarbuda" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 8.966656684875488, + "std": 3.8700382709503174, + "count": 9906, + "valid_pixels": 9906, + "total_pixels": 1899777, + "coverage_percent": 0.5214296204238708, + "crs": "EPSG:4326", + "width": 759, + "height": 2503, + "bounds": [ + -61.896356235080304, + 17.03393558925997, + -61.6855229017468, + 17.7292133670383 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 8.966656684875488, + "std": 3.8700382709503174, + "count": 9906, + "valid_pixels": 9906, + "total_pixels": 1899777, + "coverage_percent": 0.5214296204238708, + "crs": "EPSG:4326", + "width": 759, + "height": 2503, + "bounds": [ + -61.896356235080304, + 17.03393558925997, + -61.6855229017468, + 17.7292133670383 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Aruba.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Aruba_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Aruba" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 7.016161918640137, + "std": 5.485828399658203, + "count": 1045, + "valid_pixels": 1045, + "total_pixels": 320229, + "coverage_percent": 0.3263289708302496, + "crs": "EPSG:4326", + "width": 483, + "height": 663, + "bounds": [ + -70.05901492648654, + 12.438890351189361, + -69.92484825981977, + 12.623057017856175 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 7.016161918640137, + "std": 5.485828399658203, + "count": 1045, + "valid_pixels": 1045, + "total_pixels": 320229, + "coverage_percent": 0.3263289708302496, + "crs": "EPSG:4326", + "width": 483, + "height": 663, + "bounds": [ + -70.05901492648654, + 12.438890351189361, + -69.92484825981977, + 12.623057017856175 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Australia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Australia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Australia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 11.64394474029541, + "std": 6.193331718444824, + "count": 10373083, + "valid_pixels": 10373083, + "total_pixels": 15409692001, + "coverage_percent": 0.0673153168754239, + "crs": "EPSG:4326", + "width": 147601, + "height": 104401, + "bounds": [ + 112.99986111111112, + -39.00013888891209, + 154.0001388889217, + -9.99986111111111 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 11.64394474029541, + "std": 6.193331718444824, + "count": 10373083, + "valid_pixels": 10373083, + "total_pixels": 15409692001, + "coverage_percent": 0.0673153168754239, + "crs": "EPSG:4326", + "width": 147601, + "height": 104401, + "bounds": [ + 112.99986111111112, + -39.00013888891209, + 154.0001388889217, + -9.99986111111111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Bahamas.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Bahamas_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Bahamas" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 5.664745330810547, + "std": 3.6866214275360107, + "count": 886961, + "valid_pixels": 886961, + "total_pixels": 727940710, + "coverage_percent": 0.12184522555415261, + "crs": "EPSG:4326", + "width": 29797, + "height": 24430, + "bounds": [ + -80.6950877469056, + 20.764054753478693, + -72.41814330245454, + 27.550165864595233 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 5.664745330810547, + "std": 3.6866214275360107, + "count": 886961, + "valid_pixels": 886961, + "total_pixels": 727940710, + "coverage_percent": 0.12184522555415261, + "crs": "EPSG:4326", + "width": 29797, + "height": 24430, + "bounds": [ + -80.6950877469056, + 20.764054753478693, + -72.41814330245454, + 27.550165864595233 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Bahrain.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Bahrain_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Bahrain" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 6.788000106811523, + "mean": 1.9113558530807495, + "std": 1.8277782201766968, + "count": 855, + "valid_pixels": 855, + "total_pixels": 5265876, + "coverage_percent": 0.016236614762671967, + "crs": "EPSG:4326", + "width": 1804, + "height": 2919, + "bounds": [ + 50.34751325098631, + 25.535966068287465, + 50.84862436209782, + 26.346799401621446 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 6.788000106811523, + "mean": 1.9113558530807495, + "std": 1.8277782201766968, + "count": 855, + "valid_pixels": 855, + "total_pixels": 5265876, + "coverage_percent": 0.016236614762671967, + "crs": "EPSG:4326", + "width": 1804, + "height": 2919, + "bounds": [ + 50.34751325098631, + 25.535966068287465, + 50.84862436209782, + 26.346799401621446 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Bangladesh.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Bangladesh_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Bangladesh" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 15.17892074584961, + "std": 5.7999138832092285, + "count": 4891973, + "valid_pixels": 4891973, + "total_pixels": 128462500, + "coverage_percent": 3.8080941909117447, + "crs": "EPSG:4326", + "width": 12500, + "height": 10277, + "bounds": [ + 88.95413804035077, + 20.55964573972527, + 92.42636026257577, + 23.414367961949775 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 15.17892074584961, + "std": 5.7999138832092285, + "count": 4891973, + "valid_pixels": 4891973, + "total_pixels": 128462500, + "coverage_percent": 3.8080941909117447, + "crs": "EPSG:4326", + "width": 12500, + "height": 10277, + "bounds": [ + 88.95413804035077, + 20.55964573972527, + 92.42636026257577, + 23.414367961949775 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Barbados.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Barbados_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Barbados" + }, + "original_stats": { + "min": 1.6970000267028809, + "max": 27.152000427246094, + "mean": 15.42247200012207, + "std": 5.785839080810547, + "count": 386, + "valid_pixels": 386, + "total_pixels": 19932, + "coverage_percent": 1.9365843869155126, + "crs": "EPSG:4326", + "width": 302, + "height": 66, + "bounds": [ + -59.58117450290256, + 13.056516401502806, + -59.497285614013606, + 13.074849734836155 + ] + }, + "cog_stats": { + "min": 1.6970000267028809, + "max": 27.152000427246094, + "mean": 15.42247200012207, + "std": 5.785839080810547, + "count": 386, + "valid_pixels": 386, + "total_pixels": 19932, + "coverage_percent": 1.9365843869155126, + "crs": "EPSG:4326", + "width": 302, + "height": 66, + "bounds": [ + -59.58117450290256, + 13.056516401502806, + -59.497285614013606, + 13.074849734836155 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Belize.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Belize_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Belize" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 8.563447952270508, + "std": 5.826170444488525, + "count": 613357, + "valid_pixels": 613357, + "total_pixels": 61688508, + "coverage_percent": 0.9942808148318322, + "crs": "EPSG:4326", + "width": 6499, + "height": 9492, + "bounds": [ + -89.13147580682836, + 15.887197373427076, + -87.32619802904914, + 18.52386404009585 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 8.563447952270508, + "std": 5.826170444488525, + "count": 613357, + "valid_pixels": 613357, + "total_pixels": 61688508, + "coverage_percent": 0.9942808148318322, + "crs": "EPSG:4326", + "width": 6499, + "height": 9492, + "bounds": [ + -89.13147580682836, + 15.887197373427075, + -87.32619802904914, + 18.52386404009585 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Benin.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Benin_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Benin" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 8.484999656677246, + "mean": 2.901185989379883, + "std": 2.176927328109741, + "count": 50106, + "valid_pixels": 50106, + "total_pixels": 3036082, + "coverage_percent": 1.6503506822279503, + "crs": "EPSG:4326", + "width": 3206, + "height": 947, + "bounds": [ + 1.8205405373043484, + 6.27774419148742, + 2.7110960928606165, + 6.540799747043186 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 8.484999656677246, + "mean": 2.901185989379883, + "std": 2.176927328109741, + "count": 50106, + "valid_pixels": 50106, + "total_pixels": 3036082, + "coverage_percent": 1.6503506822279503, + "crs": "EPSG:4326", + "width": 3206, + "height": 947, + "bounds": [ + 1.8205405373043484, + 6.27774419148742, + 2.7110960928606165, + 6.540799747043186 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Brazil.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Brazil_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Brazil" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 19.341033935546875, + "std": 10.819838523864746, + "count": 11181576, + "valid_pixels": 11181576, + "total_pixels": 7161503100, + "coverage_percent": 0.15613448523118, + "crs": "EPSG:4326", + "width": 60950, + "height": 117498, + "bounds": [ + -51.72637112331014, + -28.19607450098934, + -34.79581556774104, + 4.4422588323701 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 19.341033935546875, + "std": 10.819838523864746, + "count": 11181576, + "valid_pixels": 11181576, + "total_pixels": 7161503100, + "coverage_percent": 0.15613448523118, + "crs": "EPSG:4326", + "width": 60950, + "height": 117498, + "bounds": [ + -51.72637112331014, + -28.19607450098934, + -34.795815567741045, + 4.4422588323701 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_BritishVirginIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_BritishVirginIslands_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "BritishVirginIslands" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 5.653022289276123, + "std": 4.515964984893799, + "count": 853, + "valid_pixels": 853, + "total_pixels": 3634802, + "coverage_percent": 0.023467578151437133, + "crs": "EPSG:4326", + "width": 2161, + "height": 1682, + "bounds": [ + -64.8578896522162, + 18.296697644432747, + -64.25761187443794, + 18.763919866655343 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 5.653022289276123, + "std": 4.515964984893799, + "count": 853, + "valid_pixels": 853, + "total_pixels": 3634802, + "coverage_percent": 0.023467578151437133, + "crs": "EPSG:4326", + "width": 2161, + "height": 1682, + "bounds": [ + -64.8578896522162, + 18.296697644432747, + -64.25761187443794, + 18.763919866655343 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Brunei.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Brunei_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Brunei" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 39.03099822998047, + "mean": 28.210895538330078, + "std": 6.886051654815674, + "count": 115143, + "valid_pixels": 115143, + "total_pixels": 9828481, + "coverage_percent": 1.1715238600959803, + "crs": "EPSG:4326", + "width": 4177, + "height": 2353, + "bounds": [ + 114.07494258395315, + 4.4306421497858945, + 115.23522036173185, + 5.084253260897529 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 39.03099822998047, + "mean": 28.210895538330078, + "std": 6.886051654815674, + "count": 115143, + "valid_pixels": 115143, + "total_pixels": 9828481, + "coverage_percent": 1.1715238600959803, + "crs": "EPSG:4326", + "width": 4177, + "height": 2353, + "bounds": [ + 114.07494258395315, + 4.4306421497858945, + 115.23522036173185, + 5.084253260897529 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Cambodia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Cambodia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Cambodia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 9.679561614990234, + "std": 5.033419609069824, + "count": 504920, + "valid_pixels": 504920, + "total_pixels": 108800800, + "coverage_percent": 0.46407747001860283, + "crs": "EPSG:4326", + "width": 8860, + "height": 12280, + "bounds": [ + 102.44483409130656, + 8.844270705378268, + 104.90594520241964, + 12.255381816492108 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 9.679561614990234, + "std": 5.033419609069824, + "count": 504920, + "valid_pixels": 504920, + "total_pixels": 108800800, + "coverage_percent": 0.46407747001860283, + "crs": "EPSG:4326", + "width": 8860, + "height": 12280, + "bounds": [ + 102.44483409130656, + 8.844270705378268, + 104.90594520241964, + 12.255381816492108 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Cameroon.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Cameroon_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Cameroon" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 47.51599884033203, + "mean": 22.285701751708984, + "std": 12.171914100646973, + "count": 2104668, + "valid_pixels": 2104668, + "total_pixels": 48418107, + "coverage_percent": 4.346861392164712, + "crs": "EPSG:4326", + "width": 5079, + "height": 9533, + "bounds": [ + 8.498540272182888, + 2.258834966021645, + 9.90937360551735, + 4.906890521579319 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 47.51599884033203, + "mean": 22.285701751708984, + "std": 12.171914100646973, + "count": 2104668, + "valid_pixels": 2104668, + "total_pixels": 48418107, + "coverage_percent": 4.346861392164712, + "crs": "EPSG:4326", + "width": 5079, + "height": 9533, + "bounds": [ + 8.498540272182888, + 2.258834966021645, + 9.909373605517349, + 4.906890521579319 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_CarribeanCaymanIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_CarribeanCaymanIslands_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "CarribeanCaymanIslands" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 18.66699981689453, + "mean": 11.148116111755371, + "std": 3.6663708686828613, + "count": 84176, + "valid_pixels": 84176, + "total_pixels": 14430157, + "coverage_percent": 0.5833339166025706, + "crs": "EPSG:4326", + "width": 6503, + "height": 2219, + "bounds": [ + -81.47201577130745, + 19.225335956675472, + -79.66562688241711, + 19.841724845564855 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 18.66699981689453, + "mean": 11.148116111755371, + "std": 3.6663708686828613, + "count": 84176, + "valid_pixels": 84176, + "total_pixels": 14430157, + "coverage_percent": 0.5833339166025706, + "crs": "EPSG:4326", + "width": 6503, + "height": 2219, + "bounds": [ + -81.47201577130745, + 19.225335956675472, + -79.66562688241711, + 19.841724845564855 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_China.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_China_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "China" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 5.223420143127441, + "std": 4.010191917419434, + "count": 177757, + "valid_pixels": 177757, + "total_pixels": 2234919954, + "coverage_percent": 0.00795361819030052, + "crs": "EPSG:4326", + "width": 55537, + "height": 40242, + "bounds": [ + 107.84118485440801, + 17.82180555554661, + 123.26812929886479, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 5.223420143127441, + "std": 4.010191917419434, + "count": 177757, + "valid_pixels": 177757, + "total_pixels": 2234919954, + "coverage_percent": 0.00795361819030052, + "crs": "EPSG:4326", + "width": 55537, + "height": 40242, + "bounds": [ + 107.84118485440801, + 17.82180555554661, + 123.26812929886479, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Colombia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Colombia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Colombia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 54.30400085449219, + "mean": 23.739641189575195, + "std": 15.230891227722168, + "count": 2187230, + "valid_pixels": 2187230, + "total_pixels": 1106193612, + "coverage_percent": 0.19772578473360414, + "crs": "EPSG:4326", + "width": 27798, + "height": 39794, + "bounds": [ + -79.00856174045138, + 1.3842583084018028, + -71.28689507377854, + 12.438147197299534 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 54.30400085449219, + "mean": 23.739641189575195, + "std": 15.230891227722168, + "count": 2187230, + "valid_pixels": 2187230, + "total_pixels": 1106193612, + "coverage_percent": 0.19772578473360414, + "crs": "EPSG:4326", + "width": 27798, + "height": 39794, + "bounds": [ + -79.00856174045138, + 1.3842583084018028, + -71.28689507377854, + 12.438147197299534 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Comoros.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Comoros_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Comoros" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 32.24300003051758, + "mean": 18.81526756286621, + "std": 7.306857109069824, + "count": 1173, + "valid_pixels": 1173, + "total_pixels": 28289904, + "coverage_percent": 0.004146355533762151, + "crs": "EPSG:4326", + "width": 5622, + "height": 5032, + "bounds": [ + 43.14339630472751, + -12.58844880524778, + 44.70506297139543, + -11.190671027468882 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 32.24300003051758, + "mean": 18.81526756286621, + "std": 7.306857109069824, + "count": 1173, + "valid_pixels": 1173, + "total_pixels": 28289904, + "coverage_percent": 0.004146355533762151, + "crs": "EPSG:4326", + "width": 5622, + "height": 5032, + "bounds": [ + 43.14339630472751, + -12.58844880524778, + 44.70506297139543, + -11.190671027468882 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_CostaRica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_CostaRica_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "CostaRica" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 45.819000244140625, + "mean": 23.007320404052734, + "std": 11.355718612670898, + "count": 413989, + "valid_pixels": 413989, + "total_pixels": 158884481, + "coverage_percent": 0.2605597459200562, + "crs": "EPSG:4326", + "width": 12929, + "height": 12289, + "bounds": [ + -86.09476906457506, + 7.801602899887083, + -82.5033801756833, + 11.215214011000924 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 45.819000244140625, + "mean": 23.007320404052734, + "std": 11.355718612670898, + "count": 413989, + "valid_pixels": 413989, + "total_pixels": 158884481, + "coverage_percent": 0.2605597459200562, + "crs": "EPSG:4326", + "width": 12929, + "height": 12289, + "bounds": [ + -86.09476906457506, + 7.801602899887083, + -82.5033801756833, + 11.215214011000924 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_CoteDivoire.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_CoteDivoire_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "CoteDivoire" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 44.12200164794922, + "mean": 15.581432342529297, + "std": 12.235655784606934, + "count": 20371, + "valid_pixels": 20371, + "total_pixels": 47175509, + "coverage_percent": 0.04318130409573323, + "crs": "EPSG:4326", + "width": 14701, + "height": 3209, + "bounds": [ + -7.271641383700901, + 4.471797093409197, + -3.1880302725865235, + 5.363185982298799 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 44.12200164794922, + "mean": 15.581432342529297, + "std": 12.235655784606934, + "count": 20371, + "valid_pixels": 20371, + "total_pixels": 47175509, + "coverage_percent": 0.04318130409573323, + "crs": "EPSG:4326", + "width": 14701, + "height": 3209, + "bounds": [ + -7.271641383700901, + 4.471797093409197, + -3.1880302725865235, + 5.363185982298799 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Cuba.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Cuba_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Cuba" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 9.779144287109375, + "std": 5.464308738708496, + "count": 4807163, + "valid_pixels": 4807163, + "total_pixels": 588735360, + "coverage_percent": 0.8165235735118747, + "crs": "EPSG:4326", + "width": 41280, + "height": 14262, + "bounds": [ + -85.33550002602108, + 19.523174017624555, + -73.86883335934525, + 23.48484068429439 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 9.779144287109375, + "std": 5.464308738708496, + "count": 4807163, + "valid_pixels": 4807163, + "total_pixels": 588735360, + "coverage_percent": 0.8165235735118747, + "crs": "EPSG:4326", + "width": 41280, + "height": 14262, + "bounds": [ + -85.33550002602108, + 19.523174017624555, + -73.86883335934525, + 23.48484068429439 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_DemocraticRepublicOfCongo.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_DemocraticRepublicOfCongo_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "DemocraticRepublicOfCongo" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 10.300000190734863, + "std": 7.461838245391846, + "count": 214925, + "valid_pixels": 214925, + "total_pixels": 751542, + "coverage_percent": 28.59786944708346, + "crs": "EPSG:4326", + "width": 1298, + "height": 579, + "bounds": [ + 12.355177273220486, + -6.05685363431872, + 12.71573282877633, + -5.896020300985257 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 10.300000190734863, + "std": 7.461838245391846, + "count": 214925, + "valid_pixels": 214925, + "total_pixels": 751542, + "coverage_percent": 28.59786944708346, + "crs": "EPSG:4326", + "width": 1298, + "height": 579, + "bounds": [ + 12.355177273220486, + -6.05685363431872, + 12.71573282877633, + -5.896020300985257 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Djibouti.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Djibouti_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Djibouti" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 10.802641868591309, + "std": 5.269596576690674, + "count": 5876, + "valid_pixels": 5876, + "total_pixels": 25108287, + "coverage_percent": 0.023402631967684613, + "crs": "EPSG:4326", + "width": 4533, + "height": 5539, + "bounds": [ + 42.22997852227546, + 11.210617160920064, + 43.489145188943134, + 12.749228272032406 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 10.802641868591309, + "std": 5.269596576690674, + "count": 5876, + "valid_pixels": 5876, + "total_pixels": 25108287, + "coverage_percent": 0.023402631967684613, + "crs": "EPSG:4326", + "width": 4533, + "height": 5539, + "bounds": [ + 42.22997852227546, + 11.210617160920064, + 43.489145188943134, + 12.749228272032406 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_DominicanRepublic.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_DominicanRepublic_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "DominicanRepublic" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 27.152000427246094, + "mean": 12.643956184387207, + "std": 6.716374397277832, + "count": 197148, + "valid_pixels": 197148, + "total_pixels": 131124544, + "coverage_percent": 0.1503517144738364, + "crs": "EPSG:4326", + "width": 13144, + "height": 9976, + "bounds": [ + -71.8667215230053, + 17.331650313501957, + -68.21561041189126, + 20.102761424615284 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 27.152000427246094, + "mean": 12.643956184387207, + "std": 6.716374397277832, + "count": 197148, + "valid_pixels": 197148, + "total_pixels": 131124544, + "coverage_percent": 0.1503517144738364, + "crs": "EPSG:4326", + "width": 13144, + "height": 9976, + "bounds": [ + -71.8667215230053, + 17.331650313501957, + -68.21561041189126, + 20.102761424615284 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_EcuadorWithGalapagos.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_EcuadorWithGalapagos_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "EcuadorWithGalapagos" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 19.077165603637695, + "std": 10.297460556030273, + "count": 1387532, + "valid_pixels": 1387532, + "total_pixels": 817532430, + "coverage_percent": 0.16972195219215952, + "crs": "EPSG:4326", + "width": 45903, + "height": 17810, + "bounds": [ + -91.4997059538888, + -3.492892840707286, + -78.74887262054527, + 1.4543293815188938 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 19.077165603637695, + "std": 10.297460556030273, + "count": 1387532, + "valid_pixels": 1387532, + "total_pixels": 817532430, + "coverage_percent": 0.16972195219215952, + "crs": "EPSG:4326", + "width": 45903, + "height": 17810, + "bounds": [ + -91.4997059538888, + -3.492892840707286, + -78.74887262054527, + 1.4543293815188938 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Egypt.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Egypt_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Egypt" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 6.538975238800049, + "std": 5.186639308929443, + "count": 2501, + "valid_pixels": 2501, + "total_pixels": 371630553, + "coverage_percent": 0.0006729801895486241, + "crs": "EPSG:4326", + "width": 14749, + "height": 25197, + "bounds": [ + 32.99986111111111, + 22.00097222221662, + 37.09680555555883, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 6.538975238800049, + "std": 5.186639308929443, + "count": 2501, + "valid_pixels": 2501, + "total_pixels": 371630553, + "coverage_percent": 0.0006729801895486241, + "crs": "EPSG:4326", + "width": 14749, + "height": 25197, + "bounds": [ + 32.99986111111111, + 22.00097222221662, + 37.09680555555883, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_ElSalvador.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_ElSalvador_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "ElSalvador" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 39.03099822998047, + "mean": 17.664827346801758, + "std": 8.662736892700195, + "count": 363262, + "valid_pixels": 363262, + "total_pixels": 36442908, + "coverage_percent": 0.9967975113292277, + "crs": "EPSG:4326", + "width": 9378, + "height": 3886, + "bounds": [ + -90.24186987937155, + 12.753177317279638, + -87.63686987936947, + 13.832621761724946 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 39.03099822998047, + "mean": 17.664827346801758, + "std": 8.662736892700195, + "count": 363262, + "valid_pixels": 363262, + "total_pixels": 36442908, + "coverage_percent": 0.9967975113292277, + "crs": "EPSG:4326", + "width": 9378, + "height": 3886, + "bounds": [ + -90.24186987937155, + 12.753177317279638, + -87.63686987936947, + 13.832621761724946 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_EquatorialGuinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_EquatorialGuinea_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "EquatorialGuinea" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 57.698001861572266, + "mean": 21.237741470336914, + "std": 15.822846412658691, + "count": 133224, + "valid_pixels": 133224, + "total_pixels": 7507500, + "coverage_percent": 1.7745454545454546, + "crs": "EPSG:4326", + "width": 1540, + "height": 4875, + "bounds": [ + 9.499994625515408, + 0.9768147171857386, + 9.927772403293528, + 2.3309813838534885 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 57.698001861572266, + "mean": 21.237741470336914, + "std": 15.822846412658691, + "count": 133224, + "valid_pixels": 133224, + "total_pixels": 7507500, + "coverage_percent": 1.7745454545454546, + "crs": "EPSG:4326", + "width": 1540, + "height": 4875, + "bounds": [ + 9.499994625515408, + 0.9768147171857386, + 9.927772403293528, + 2.3309813838534885 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Eritrea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Eritrea_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Eritrea" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 8.034369468688965, + "std": 4.194979190826416, + "count": 63057, + "valid_pixels": 63057, + "total_pixels": 331547345, + "coverage_percent": 0.019019003153229897, + "crs": "EPSG:4326", + "width": 17033, + "height": 19465, + "bounds": [ + 38.47787310964247, + 12.63982193190439, + 43.20926199853515, + 18.04676637635316 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 8.034369468688965, + "std": 4.194979190826416, + "count": 63057, + "valid_pixels": 63057, + "total_pixels": 331547345, + "coverage_percent": 0.019019003153229897, + "crs": "EPSG:4326", + "width": 17033, + "height": 19465, + "bounds": [ + 38.47787310964247, + 12.63982193190439, + 43.20926199853514, + 18.04676637635316 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_EuropaIsland.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_EuropaIsland_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "EuropaIsland" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 23.757999420166016, + "mean": 16.324979782104492, + "std": 4.167117595672607, + "count": 6594, + "valid_pixels": 6594, + "total_pixels": 126116622, + "coverage_percent": 0.0052284939886829505, + "crs": "EPSG:4326", + "width": 12101, + "height": 10422, + "bounds": [ + 37.84230011797962, + -23.558221094993442, + 41.203689006871194, + -20.663221094991126 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 23.757999420166016, + "mean": 16.324979782104492, + "std": 4.167117595672607, + "count": 6594, + "valid_pixels": 6594, + "total_pixels": 126116622, + "coverage_percent": 0.0052284939886829505, + "crs": "EPSG:4326", + "width": 12101, + "height": 10422, + "bounds": [ + 37.84230011797962, + -23.558221094993442, + 41.203689006871194, + -20.663221094991126 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Fiji.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Fiji_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Fiji" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 6.422636032104492, + "std": 7.797130107879639, + "count": 1146347, + "valid_pixels": 1146347, + "total_pixels": 311103960, + "coverage_percent": 0.3684771482818798, + "crs": "EPSG:4326", + "width": 12162, + "height": 25580, + "bounds": [ + 176.6217067694109, + -19.31514936366083, + 180.00004010274694, + -12.209593808099589 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 6.422636032104492, + "std": 7.797130107879639, + "count": 1146347, + "valid_pixels": 1146347, + "total_pixels": 311103960, + "coverage_percent": 0.3684771482818798, + "crs": "EPSG:4326", + "width": 12162, + "height": 25580, + "bounds": [ + 176.6217067694109, + -19.31514936366083, + 180.00004010274694, + -12.209593808099589 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Fiji2.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Fiji2_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Fiji2" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 13.898673057556152, + "std": 6.8749098777771, + "count": 8731, + "valid_pixels": 8731, + "total_pixels": 131325948, + "coverage_percent": 0.006648343402782823, + "crs": "EPSG:4326", + "width": 6669, + "height": 19692, + "bounds": [ + -180.0001388888889, + -21.096936371308672, + -178.14763888888743, + -15.626936371304296 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 13.898673057556152, + "std": 6.8749098777771, + "count": 8731, + "valid_pixels": 8731, + "total_pixels": 131325948, + "coverage_percent": 0.006648343402782823, + "crs": "EPSG:4326", + "width": 6669, + "height": 19692, + "bounds": [ + -180.0001388888889, + -21.096936371308672, + -178.14763888888743, + -15.626936371304296 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_FrenchGuyana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_FrenchGuyana_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "FrenchGuyana" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 49.2130012512207, + "mean": 23.06092643737793, + "std": 15.75928020477295, + "count": 842418, + "valid_pixels": 842418, + "total_pixels": 53929265, + "coverage_percent": 1.5620795128581857, + "crs": "EPSG:4326", + "width": 8567, + "height": 6295, + "bounds": [ + -54.00164950900608, + 4.004172793492932, + -51.621927286781954, + 5.752783904605442 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 49.2130012512207, + "mean": 23.06092643737793, + "std": 15.75928020477295, + "count": 842418, + "valid_pixels": 842418, + "total_pixels": 53929265, + "coverage_percent": 1.5620795128581857, + "crs": "EPSG:4326", + "width": 8567, + "height": 6295, + "bounds": [ + -54.00164950900608, + 4.004172793492932, + -51.621927286781954, + 5.752783904605442 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_FrenchPolynesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_FrenchPolynesia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "FrenchPolynesia" + }, + "original_stats": { + "min": 8.484999656677246, + "max": 22.06100082397461, + "mean": 18.384166717529297, + "std": 4.5341644287109375, + "count": 12, + "valid_pixels": 12, + "total_pixels": 4328160750, + "coverage_percent": 2.772540275912811e-07, + "crs": "EPSG:4326", + "width": 77670, + "height": 55725, + "bounds": [ + -155.376761935547, + -23.000037897004027, + -133.80176193552973, + -7.52087123032498 + ] + }, + "cog_stats": { + "min": 8.484999656677246, + "max": 22.06100082397461, + "mean": 18.384166717529297, + "std": 4.5341644287109375, + "count": 12, + "valid_pixels": 12, + "total_pixels": 4328160750, + "coverage_percent": 2.772540275912811e-07, + "crs": "EPSG:4326", + "width": 77670, + "height": 55725, + "bounds": [ + -155.376761935547, + -23.000037897004027, + -133.80176193552973, + -7.52087123032498 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Gabon.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Gabon_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Gabon" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 62.78900146484375, + "mean": 23.163658142089844, + "std": 18.017436981201172, + "count": 1449774, + "valid_pixels": 1449774, + "total_pixels": 116969888, + "coverage_percent": 1.2394420690562684, + "crs": "EPSG:4326", + "width": 7184, + "height": 16282, + "bounds": [ + 8.702267994350857, + -3.4635235982507218, + 10.697823549908009, + 1.0592541795306736 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 62.78900146484375, + "mean": 23.163658142089844, + "std": 18.017436981201172, + "count": 1449774, + "valid_pixels": 1449774, + "total_pixels": 116969888, + "coverage_percent": 1.2394420690562684, + "crs": "EPSG:4326", + "width": 7184, + "height": 16282, + "bounds": [ + 8.702267994350857, + -3.4635235982507218, + 10.69782354990801, + 1.0592541795306736 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Gambia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Gambia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Gambia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 18.66699981689453, + "mean": 7.705754280090332, + "std": 4.621688365936279, + "count": 755921, + "valid_pixels": 755921, + "total_pixels": 18162371, + "coverage_percent": 4.162017172757896, + "crs": "EPSG:4326", + "width": 7103, + "height": 2557, + "bounds": [ + -16.810004840426974, + 13.073612598842477, + -14.83694928486984, + 13.783890376620823 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 18.66699981689453, + "mean": 7.705754280090332, + "std": 4.621688365936279, + "count": 755921, + "valid_pixels": 755921, + "total_pixels": 18162371, + "coverage_percent": 4.162017172757896, + "crs": "EPSG:4326", + "width": 7103, + "height": 2557, + "bounds": [ + -16.810004840426974, + 13.073612598842477, + -14.836949284869842, + 13.783890376620823 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Ghana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Ghana_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Ghana" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 8.900440216064453, + "std": 7.992099761962891, + "count": 121848, + "valid_pixels": 121848, + "total_pixels": 70253112, + "coverage_percent": 0.17344142705023516, + "crs": "EPSG:4326", + "width": 14314, + "height": 4908, + "bounds": [ + -2.787816790801273, + 4.757193586560325, + 1.1882943203130187, + 6.120526919894749 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 8.900440216064453, + "std": 7.992099761962891, + "count": 121848, + "valid_pixels": 121848, + "total_pixels": 70253112, + "coverage_percent": 0.17344142705023516, + "crs": "EPSG:4326", + "width": 14314, + "height": 4908, + "bounds": [ + -2.787816790801273, + 4.757193586560325, + 1.1882943203130187, + 6.120526919894749 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Grenada.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Grenada_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Grenada" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 15.597862243652344, + "std": 6.612792015075684, + "count": 2241, + "valid_pixels": 2241, + "total_pixels": 2276385, + "coverage_percent": 0.09844556171297912, + "crs": "EPSG:4326", + "width": 1185, + "height": 1921, + "bounds": [ + -61.75835574679905, + 11.991966086493171, + -61.42918908013212, + 12.52557719760471 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 15.597862243652344, + "std": 6.612792015075684, + "count": 2241, + "valid_pixels": 2241, + "total_pixels": 2276385, + "coverage_percent": 0.09844556171297912, + "crs": "EPSG:4326", + "width": 1185, + "height": 1921, + "bounds": [ + -61.75835574679905, + 11.991966086493171, + -61.42918908013212, + 12.52557719760471 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Guadeloupe.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Guadeloupe_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Guadeloupe" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 10.843829154968262, + "std": 4.71350622177124, + "count": 32683, + "valid_pixels": 32683, + "total_pixels": 1587315, + "coverage_percent": 2.0590116013519686, + "crs": "EPSG:4326", + "width": 1335, + "height": 1189, + "bounds": [ + -61.693394484200304, + 16.12884357876221, + -61.322561150866676, + 16.459121356540255 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 10.843829154968262, + "std": 4.71350622177124, + "count": 32683, + "valid_pixels": 32683, + "total_pixels": 1587315, + "coverage_percent": 2.0590116013519686, + "crs": "EPSG:4326", + "width": 1335, + "height": 1189, + "bounds": [ + -61.693394484200304, + 16.12884357876221, + -61.322561150866676, + 16.459121356540255 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Guam.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Guam_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Guam" + }, + "original_stats": { + "min": 39.03099822998047, + "max": 49.2130012512207, + "mean": 44.80079650878906, + "std": 4.239104270935059, + "count": 5, + "valid_pixels": 5, + "total_pixels": 2038131, + "coverage_percent": 0.00024532279819108784, + "crs": "EPSG:4326", + "width": 1299, + "height": 1569, + "bounds": [ + 144.60725416745808, + 13.226716261405356, + 144.9680875007917, + 13.662549594739037 + ] + }, + "cog_stats": { + "min": 39.03099822998047, + "max": 49.2130012512207, + "mean": 44.80079650878906, + "std": 4.239104270935059, + "count": 5, + "valid_pixels": 5, + "total_pixels": 2038131, + "coverage_percent": 0.00024532279819108784, + "crs": "EPSG:4326", + "width": 1299, + "height": 1569, + "bounds": [ + 144.60725416745808, + 13.226716261405356, + 144.9680875007917, + 13.662549594739037 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Guatemala.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Guatemala_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Guatemala" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 24.095014572143555, + "std": 9.129456520080566, + "count": 375774, + "valid_pixels": 375774, + "total_pixels": 126604545, + "coverage_percent": 0.2968092496205409, + "crs": "EPSG:4326", + "width": 14655, + "height": 8639, + "bounds": [ + -92.27544873732964, + 13.636717146857094, + -88.20461540399305, + 16.036439369081236 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 24.095014572143555, + "std": 9.129456520080566, + "count": 375774, + "valid_pixels": 375774, + "total_pixels": 126604545, + "coverage_percent": 0.2968092496205409, + "crs": "EPSG:4326", + "width": 14655, + "height": 8639, + "bounds": [ + -92.27544873732964, + 13.636717146857094, + -88.20461540399305, + 16.036439369081236 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Guinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Guinea_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Guinea" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 9.91492748260498, + "std": 5.4978203773498535, + "count": 2601370, + "valid_pixels": 2601370, + "total_pixels": 65496732, + "coverage_percent": 3.9717554152167467, + "crs": "EPSG:4326", + "width": 8004, + "height": 8183, + "bounds": [ + -15.075840732280184, + 9.039652951556613, + -12.852507398945072, + 11.312708507113987 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 9.91492748260498, + "std": 5.4978203773498535, + "count": 2601370, + "valid_pixels": 2601370, + "total_pixels": 65496732, + "coverage_percent": 3.9717554152167467, + "crs": "EPSG:4326", + "width": 8004, + "height": 8183, + "bounds": [ + -15.075840732280184, + 9.039652951556615, + -12.852507398945072, + 11.312708507113987 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_GuineaBissau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_GuineaBissau_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "GuineaBissau" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 11.553183555603027, + "std": 4.500085830688477, + "count": 3720928, + "valid_pixels": 3720928, + "total_pixels": 40659682, + "coverage_percent": 9.151394740372048, + "crs": "EPSG:4326", + "width": 6902, + "height": 5891, + "bounds": [ + -16.6835056008039, + 10.918320198057774, + -14.766283378580145, + 12.554709086947971 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 11.553183555603027, + "std": 4.500085830688477, + "count": 3720928, + "valid_pixels": 3720928, + "total_pixels": 40659682, + "coverage_percent": 9.151394740372048, + "crs": "EPSG:4326", + "width": 6902, + "height": 5891, + "bounds": [ + -16.6835056008039, + 10.918320198057772, + -14.766283378580145, + 12.554709086947971 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Guyana.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Guyana_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Guyana" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 42.42499923706055, + "mean": 24.31496810913086, + "std": 11.806939125061035, + "count": 233562, + "valid_pixels": 233562, + "total_pixels": 101074860, + "coverage_percent": 0.23107823251004256, + "crs": "EPSG:4326", + "width": 10251, + "height": 9860, + "bounds": [ + -59.98534545287613, + 5.786985855100348, + -57.137845452873854, + 8.525874743991428 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 42.42499923706055, + "mean": 24.31496810913086, + "std": 11.806939125061035, + "count": 233562, + "valid_pixels": 233562, + "total_pixels": 101074860, + "coverage_percent": 0.23107823251004256, + "crs": "EPSG:4326", + "width": 10251, + "height": 9860, + "bounds": [ + -59.98534545287613, + 5.7869858551003475, + -57.137845452873854, + 8.525874743991428 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Haiti.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Haiti_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Haiti" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 7.269646644592285, + "std": 3.2434561252593994, + "count": 161800, + "valid_pixels": 161800, + "total_pixels": 89931870, + "coverage_percent": 0.17991397265507766, + "crs": "EPSG:4326", + "width": 10710, + "height": 8397, + "bounds": [ + -74.70714532374913, + 17.85448667023875, + -71.73214532374675, + 20.186986670240614 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 7.269646644592285, + "std": 3.2434561252593994, + "count": 161800, + "valid_pixels": 161800, + "total_pixels": 89931870, + "coverage_percent": 0.17991397265507766, + "crs": "EPSG:4326", + "width": 10710, + "height": 8397, + "bounds": [ + -74.70714532374913, + 17.85448667023875, + -71.73214532374675, + 20.186986670240614 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Hawaii.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Hawaii_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Hawaii" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 10.329757690429688, + "std": 7.1832122802734375, + "count": 7976, + "valid_pixels": 7976, + "total_pixels": 30441972, + "coverage_percent": 0.02620066794621584, + "crs": "EPSG:4326", + "width": 9361, + "height": 3252, + "bounds": [ + -159.3754217898888, + 21.04678349055488, + -156.77514401210894, + 21.950116823888937 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 10.329757690429688, + "std": 7.1832122802734375, + "count": 7976, + "valid_pixels": 7976, + "total_pixels": 30441972, + "coverage_percent": 0.02620066794621584, + "crs": "EPSG:4326", + "width": 9361, + "height": 3252, + "bounds": [ + -159.3754217898888, + 21.04678349055488, + -156.77514401210894, + 21.950116823888937 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Honduras.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Honduras_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Honduras" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 16.662757873535156, + "std": 7.341253280639648, + "count": 724371, + "valid_pixels": 724371, + "total_pixels": 304110105, + "coverage_percent": 0.23819366344304801, + "crs": "EPSG:4326", + "width": 22515, + "height": 13507, + "bounds": [ + -88.4728246063782, + 12.986786336254944, + -82.21865793970653, + 16.73873078070239 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 16.662757873535156, + "std": 7.341253280639648, + "count": 724371, + "valid_pixels": 724371, + "total_pixels": 304110105, + "coverage_percent": 0.23819366344304801, + "crs": "EPSG:4326", + "width": 22515, + "height": 13507, + "bounds": [ + -88.4728246063782, + 12.986786336254944, + -82.21865793970653, + 16.73873078070239 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_HongKong.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_HongKong_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "HongKong" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 5.079795837402344, + "std": 4.671523094177246, + "count": 6591, + "valid_pixels": 6591, + "total_pixels": 3305784, + "coverage_percent": 0.19937781778845806, + "crs": "EPSG:4326", + "width": 2172, + "height": 1522, + "bounds": [ + 113.81996411898062, + 22.13678449167698, + 114.42329745231444, + 22.559562269455096 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 5.079795837402344, + "std": 4.671523094177246, + "count": 6591, + "valid_pixels": 6591, + "total_pixels": 3305784, + "coverage_percent": 0.19937781778845806, + "crs": "EPSG:4326", + "width": 2172, + "height": 1522, + "bounds": [ + 113.81996411898062, + 22.13678449167698, + 114.42329745231444, + 22.559562269455096 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_India.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_India_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "India" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 7.175684452056885, + "std": 3.4718353748321533, + "count": 3657360, + "valid_pixels": 3657360, + "total_pixels": 4432216653, + "coverage_percent": 0.08251762687468067, + "crs": "EPSG:4326", + "width": 76151, + "height": 58203, + "bounds": [ + 68.00431568832126, + 7.9310159492468095, + 89.15737124389373, + 24.098515949259742 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 7.175684452056885, + "std": 3.4718353748321533, + "count": 3657360, + "valid_pixels": 3657360, + "total_pixels": 4432216653, + "coverage_percent": 0.08251762687468067, + "crs": "EPSG:4326", + "width": 76151, + "height": 58203, + "bounds": [ + 68.00431568832126, + 7.9310159492468095, + 89.15737124389372, + 24.098515949259742 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Indonesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Indonesia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Indonesia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 44.12200164794922, + "mean": 23.534896850585938, + "std": 11.751103401184082, + "count": 28183675, + "valid_pixels": 28183675, + "total_pixels": 10585539992, + "coverage_percent": 0.26624692761351576, + "crs": "EPSG:4326", + "width": 168206, + "height": 62932, + "bounds": [ + 94.36870234331364, + -11.214172824444137, + 141.0925912322399, + 6.266938286680959 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 44.12200164794922, + "mean": 23.534896850585938, + "std": 11.751103401184082, + "count": 28183675, + "valid_pixels": 28183675, + "total_pixels": 10585539992, + "coverage_percent": 0.26624692761351576, + "crs": "EPSG:4326", + "width": 168206, + "height": 62932, + "bounds": [ + 94.36870234331364, + -11.214172824444137, + 141.0925912322399, + 6.266938286680959 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Iran.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Iran_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Iran" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 11.878999710083008, + "mean": 5.390794277191162, + "std": 2.9612174034118652, + "count": 145354, + "valid_pixels": 145354, + "total_pixels": 709695984, + "coverage_percent": 0.0204811642276392, + "crs": "EPSG:4326", + "width": 48596, + "height": 14604, + "bounds": [ + 48.16741666977941, + 24.943472222218976, + 61.6663055586791, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 11.878999710083008, + "mean": 5.390794277191162, + "std": 2.9612174034118652, + "count": 145354, + "valid_pixels": 145354, + "total_pixels": 709695984, + "coverage_percent": 0.0204811642276392, + "crs": "EPSG:4326", + "width": 48596, + "height": 14604, + "bounds": [ + 48.16741666977941, + 24.943472222218976, + 61.6663055586791, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Jamaica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Jamaica_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Jamaica" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 10.3884859085083, + "std": 7.060886383056641, + "count": 101238, + "valid_pixels": 101238, + "total_pixels": 58383710, + "coverage_percent": 0.17340110794603494, + "crs": "EPSG:4326", + "width": 9394, + "height": 6215, + "bounds": [ + -78.5173408670071, + 16.912866594717524, + -75.90789642256057, + 18.639255483607794 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 10.3884859085083, + "std": 7.060886383056641, + "count": 101238, + "valid_pixels": 101238, + "total_pixels": 58383710, + "coverage_percent": 0.17340110794603494, + "crs": "EPSG:4326", + "width": 9394, + "height": 6215, + "bounds": [ + -78.5173408670071, + 16.912866594717524, + -75.90789642256057, + 18.639255483607794 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Japan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Japan_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Japan" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 37.33399963378906, + "mean": 15.68114948272705, + "std": 8.182114601135254, + "count": 10311, + "valid_pixels": 10311, + "total_pixels": 817678186, + "coverage_percent": 0.0012610095483212513, + "crs": "EPSG:4326", + "width": 35758, + "height": 22867, + "bounds": [ + 122.45870011895167, + 22.648194444439362, + 132.3914778967374, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 37.33399963378906, + "mean": 15.68114948272705, + "std": 8.182114601135254, + "count": 10311, + "valid_pixels": 10311, + "total_pixels": 817678186, + "coverage_percent": 0.0012610095483212513, + "crs": "EPSG:4326", + "width": 35758, + "height": 22867, + "bounds": [ + 122.45870011895167, + 22.648194444439362, + 132.3914778967374, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Kenya.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Kenya_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Kenya" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 8.510456085205078, + "std": 5.085183143615723, + "count": 341292, + "valid_pixels": 341292, + "total_pixels": 123196072, + "coverage_percent": 0.27703155990233197, + "crs": "EPSG:4326", + "width": 9908, + "height": 12434, + "bounds": [ + 38.97118438848719, + -4.914387284208934, + 41.72340661071161, + -1.4604983953172823 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 8.510456085205078, + "std": 5.085183143615723, + "count": 341292, + "valid_pixels": 341292, + "total_pixels": 123196072, + "coverage_percent": 0.27703155990233197, + "crs": "EPSG:4326", + "width": 9908, + "height": 12434, + "bounds": [ + 38.97118438848719, + -4.914387284208934, + 41.72340661071161, + -1.4604983953172823 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Liberia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Liberia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Liberia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 37.33399963378906, + "mean": 12.51355266571045, + "std": 10.223541259765625, + "count": 79021, + "valid_pixels": 79021, + "total_pixels": 64631808, + "coverage_percent": 0.12226332891693205, + "crs": "EPSG:4326", + "width": 9216, + "height": 7013, + "bounds": [ + -11.401603875517539, + 4.907425127273572, + -8.841603875515492, + 6.855480682830686 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 37.33399963378906, + "mean": 12.51355266571045, + "std": 10.223541259765625, + "count": 79021, + "valid_pixels": 79021, + "total_pixels": 64631808, + "coverage_percent": 0.12226332891693205, + "crs": "EPSG:4326", + "width": 9216, + "height": 7013, + "bounds": [ + -11.401603875517539, + 4.907425127273572, + -8.841603875515492, + 6.855480682830686 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Macau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Macau_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Macau" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 8.269017219543457, + "std": 4.513736248016357, + "count": 55, + "valid_pixels": 55, + "total_pixels": 116622, + "coverage_percent": 0.047160913035276364, + "crs": "EPSG:4326", + "width": 279, + "height": 418, + "bounds": [ + 113.52701652233377, + 22.105173005801177, + 113.60451652233382, + 22.221284116912383 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 8.269017219543457, + "std": 4.513736248016357, + "count": 55, + "valid_pixels": 55, + "total_pixels": 116622, + "coverage_percent": 0.047160913035276364, + "crs": "EPSG:4326", + "width": 279, + "height": 418, + "bounds": [ + 113.52701652233377, + 22.105173005801177, + 113.60451652233382, + 22.221284116912383 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Madagascar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Madagascar_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Madagascar" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 27.152000427246094, + "mean": 14.471324920654297, + "std": 6.405313491821289, + "count": 2952678, + "valid_pixels": 2952678, + "total_pixels": 1450574898, + "coverage_percent": 0.20355226083610337, + "crs": "EPSG:4326", + "width": 28137, + "height": 51554, + "bounds": [ + 42.96760178695098, + -26.09421475014743, + 50.78343512029056, + -11.773659194580416 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 27.152000427246094, + "mean": 14.471324920654297, + "std": 6.405313491821289, + "count": 2952678, + "valid_pixels": 2952678, + "total_pixels": 1450574898, + "coverage_percent": 0.20355226083610337, + "crs": "EPSG:4326", + "width": 28137, + "height": 51554, + "bounds": [ + 42.96760178695098, + -26.09421475014743, + 50.78343512029056, + -11.773659194580416 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Malaysia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Malaysia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Malaysia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 33.939998626708984, + "mean": 19.631521224975586, + "std": 7.462705612182617, + "count": 5851960, + "valid_pixels": 5851960, + "total_pixels": 1676728959, + "coverage_percent": 0.349010492637409, + "crs": "EPSG:4326", + "width": 71787, + "height": 23357, + "bounds": [ + 99.42602848942141, + 0.9755314908418464, + 119.3668618227707, + 7.463587046402592 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 33.939998626708984, + "mean": 19.631521224975586, + "std": 7.462705612182617, + "count": 5851960, + "valid_pixels": 5851960, + "total_pixels": 1676728959, + "coverage_percent": 0.349010492637409, + "crs": "EPSG:4326", + "width": 71787, + "height": 23357, + "bounds": [ + 99.42602848942141, + 0.9755314908418464, + 119.3668618227707, + 7.463587046402592 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Martinique.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Martinique_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Martinique" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 27.152000427246094, + "mean": 14.537933349609375, + "std": 6.411025524139404, + "count": 11684, + "valid_pixels": 11684, + "total_pixels": 965550, + "coverage_percent": 1.2100875148878876, + "crs": "EPSG:4326", + "width": 785, + "height": 1230, + "bounds": [ + -61.04217303805881, + 14.411546868218043, + -60.824117482503084, + 14.753213534884983 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 27.152000427246094, + "mean": 14.537933349609375, + "std": 6.411025524139404, + "count": 11684, + "valid_pixels": 11684, + "total_pixels": 965550, + "coverage_percent": 1.2100875148878876, + "crs": "EPSG:4326", + "width": 785, + "height": 1230, + "bounds": [ + -61.04217303805881, + 14.411546868218043, + -60.824117482503084, + 14.753213534884983 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Mauritania.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Mauritania_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Mauritania" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 10.182000160217285, + "mean": 6.216787338256836, + "std": 2.9676976203918457, + "count": 306, + "valid_pixels": 306, + "total_pixels": 27720, + "coverage_percent": 1.103896103896104, + "crs": "EPSG:4326", + "width": 165, + "height": 168, + "bounds": [ + -16.491458545260958, + 16.06522377861867, + -16.445625211927588, + 16.111890445285372 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 10.182000160217285, + "mean": 6.216787338256836, + "std": 2.9676976203918457, + "count": 306, + "valid_pixels": 306, + "total_pixels": 27720, + "coverage_percent": 1.103896103896104, + "crs": "EPSG:4326", + "width": 165, + "height": 168, + "bounds": [ + -16.491458545260958, + 16.06522377861867, + -16.445625211927588, + 16.111890445285372 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Mayotte.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Mayotte_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Mayotte" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 15.041481018066406, + "std": 5.709969997406006, + "count": 5549, + "valid_pixels": 5549, + "total_pixels": 1519590, + "coverage_percent": 0.3651642877355076, + "crs": "EPSG:4326", + "width": 1110, + "height": 1369, + "bounds": [ + 45.00319646429905, + -13.009219570910638, + 45.31152979763263, + -12.628941793132556 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 15.041481018066406, + "std": 5.709969997406006, + "count": 5549, + "valid_pixels": 5549, + "total_pixels": 1519590, + "coverage_percent": 0.3651642877355076, + "crs": "EPSG:4326", + "width": 1110, + "height": 1369, + "bounds": [ + 45.00319646429905, + -13.009219570910638, + 45.31152979763263, + -12.628941793132556 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Mexico.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Mexico_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Mexico" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 27.152000427246094, + "mean": 10.786336898803711, + "std": 7.463091850280762, + "count": 7767031, + "valid_pixels": 7767031, + "total_pixels": 6702382710, + "coverage_percent": 0.11588462396233414, + "crs": "EPSG:4326", + "width": 112755, + "height": 59442, + "bounds": [ + -117.64705634559239, + 14.488472222209012, + -86.32622301223401, + 31.000138888888888 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 27.152000427246094, + "mean": 10.786336898803711, + "std": 7.463091850280762, + "count": 7767031, + "valid_pixels": 7767031, + "total_pixels": 6702382710, + "coverage_percent": 0.11588462396233414, + "crs": "EPSG:4326", + "width": 112755, + "height": 59442, + "bounds": [ + -117.64705634559239, + 14.488472222209012, + -86.32622301223401, + 31.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Micronesia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Micronesia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Micronesia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 21.196842193603516, + "std": 11.032795906066895, + "count": 104224, + "valid_pixels": 104224, + "total_pixels": 3439702968, + "coverage_percent": 0.003030029074301162, + "crs": "EPSG:4326", + "width": 96006, + "height": 35828, + "bounds": [ + 137.0547355699553, + 0.5240156726249232, + 163.72306890330998, + 10.476237894855107 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 21.196842193603516, + "std": 11.032795906066895, + "count": 104224, + "valid_pixels": 104224, + "total_pixels": 3439702968, + "coverage_percent": 0.003030029074301162, + "crs": "EPSG:4326", + "width": 96006, + "height": 35828, + "bounds": [ + 137.0547355699553, + 0.5240156726249232, + 163.72306890330998, + 10.476237894855107 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Mozambique.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Mozambique_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Mozambique" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 10.504247665405273, + "std": 4.60530948638916, + "count": 3539238, + "valid_pixels": 3539238, + "total_pixels": 1972799776, + "coverage_percent": 0.17940178436029994, + "crs": "EPSG:4326", + "width": 33104, + "height": 59594, + "bounds": [ + 32.10071331019423, + -26.875823413771545, + 41.29626886575714, + -10.321934524869416 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 20.36400032043457, + "mean": 10.504247665405273, + "std": 4.60530948638916, + "count": 3539238, + "valid_pixels": 3539238, + "total_pixels": 1972799776, + "coverage_percent": 0.17940178436029994, + "crs": "EPSG:4326", + "width": 33104, + "height": 59594, + "bounds": [ + 32.10071331019423, + -26.875823413771545, + 41.29626886575714, + -10.321934524869416 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Myanmar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Myanmar_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Myanmar" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 13.240243911743164, + "std": 8.41167163848877, + "count": 5175798, + "valid_pixels": 5175798, + "total_pixels": 1252849500, + "coverage_percent": 0.41312208689072394, + "crs": "EPSG:4326", + "width": 25660, + "height": 48825, + "bounds": [ + 92.17192368383758, + 8.605406051723765, + 99.29970146162105, + 22.167906051734615 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 13.240243911743164, + "std": 8.41167163848877, + "count": 5175798, + "valid_pixels": 5175798, + "total_pixels": 1252849500, + "coverage_percent": 0.41312208689072394, + "crs": "EPSG:4326", + "width": 25660, + "height": 48825, + "bounds": [ + 92.17192368383758, + 8.605406051723765, + 99.29970146162105, + 22.167906051734615 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_NewCaledonia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_NewCaledonia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "NewCaledonia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 18.66699981689453, + "mean": 7.305023670196533, + "std": 4.8516106605529785, + "count": 275920, + "valid_pixels": 275920, + "total_pixels": 1039130169, + "coverage_percent": 0.026552977502859895, + "crs": "EPSG:4326", + "width": 48587, + "height": 21387, + "bounds": [ + 155.6835657771306, + -23.000172750893213, + 169.17995466603028, + -17.05933941755513 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 18.66699981689453, + "mean": 7.305023670196533, + "std": 4.8516106605529785, + "count": 275920, + "valid_pixels": 275920, + "total_pixels": 1039130169, + "coverage_percent": 0.026552977502859895, + "crs": "EPSG:4326", + "width": 48587, + "height": 21387, + "bounds": [ + 155.6835657771306, + -23.000172750893213, + 169.17995466603028, + -17.05933941755513 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Newzealand.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Newzealand_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Newzealand" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 11.445465087890625, + "std": 7.278315544128418, + "count": 406626, + "valid_pixels": 406626, + "total_pixels": 259232401, + "coverage_percent": 0.15685770699627938, + "crs": "EPSG:4326", + "width": 18001, + "height": 14401, + "bounds": [ + 171.9998611111111, + -38.00013888889209, + 177.00013888889288, + -33.99986111111111 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 11.445465087890625, + "std": 7.278315544128418, + "count": 406626, + "valid_pixels": 406626, + "total_pixels": 259232401, + "coverage_percent": 0.15685770699627938, + "crs": "EPSG:4326", + "width": 18001, + "height": 14401, + "bounds": [ + 171.9998611111111, + -38.00013888889208, + 177.00013888889288, + -33.99986111111111 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Nicaragua.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Nicaragua_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Nicaragua" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 14.439082145690918, + "std": 7.03729248046875, + "count": 790446, + "valid_pixels": 790446, + "total_pixels": 311211176, + "coverage_percent": 0.25399023587764724, + "crs": "EPSG:4326", + "width": 20164, + "height": 15434, + "bounds": [ + -87.84374281703877, + 10.742658262611588, + -82.24263170592319, + 15.02988048483724 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 14.439082145690918, + "std": 7.03729248046875, + "count": 790446, + "valid_pixels": 790446, + "total_pixels": 311211176, + "coverage_percent": 0.25399023587764724, + "crs": "EPSG:4326", + "width": 20164, + "height": 15434, + "bounds": [ + -87.84374281703877, + 10.742658262611588, + -82.24263170592319, + 15.02988048483724 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Nigeria.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Nigeria_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Nigeria" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 33.939998626708984, + "mean": 13.101654052734375, + "std": 8.403791427612305, + "count": 7313490, + "valid_pixels": 7313490, + "total_pixels": 181026574, + "coverage_percent": 4.040009065188407, + "crs": "EPSG:4326", + "width": 21403, + "height": 8458, + "bounds": [ + 2.706058195853941, + 4.290355279708679, + 8.651335973636474, + 6.639799724155003 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 33.939998626708984, + "mean": 13.101654052734375, + "std": 8.403791427612305, + "count": 7313490, + "valid_pixels": 7313490, + "total_pixels": 181026574, + "coverage_percent": 4.040009065188407, + "crs": "EPSG:4326", + "width": 21403, + "height": 8458, + "bounds": [ + 2.706058195853941, + 4.290355279708679, + 8.651335973636474, + 6.639799724155003 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_NorthernMarianaIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_NorthernMarianaIslands_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "NorthernMarianaIslands" + }, + "original_stats": { + "min": 10.182000160217285, + "max": 50.90999984741211, + "mean": 42.373573303222656, + "std": 8.72819709777832, + "count": 132, + "valid_pixels": 132, + "total_pixels": 142229920, + "coverage_percent": 9.280747679531844e-05, + "crs": "EPSG:4326", + "width": 5887, + "height": 24160, + "bounds": [ + 144.66525013476775, + 14.00472703201465, + 146.30052791254684, + 20.71583814313113 + ] + }, + "cog_stats": { + "min": 10.182000160217285, + "max": 50.90999984741211, + "mean": 42.373573303222656, + "std": 8.72819709777832, + "count": 132, + "valid_pixels": 132, + "total_pixels": 142229920, + "coverage_percent": 9.280747679531844e-05, + "crs": "EPSG:4326", + "width": 5887, + "height": 24160, + "bounds": [ + 144.66525013476775, + 14.00472703201465, + 146.30052791254684, + 20.71583814313113 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Oman.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Oman_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Oman" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 5.664980888366699, + "std": 4.485297679901123, + "count": 2621, + "valid_pixels": 2621, + "total_pixels": 942006975, + "coverage_percent": 0.000278235731747103, + "crs": "EPSG:4326", + "width": 25415, + "height": 37065, + "bounds": [ + 52.99997672674432, + 16.321408996785937, + 60.05969894897219, + 26.617242330127507 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 5.664980888366699, + "std": 4.485297679901123, + "count": 2621, + "valid_pixels": 2621, + "total_pixels": 942006975, + "coverage_percent": 0.000278235731747103, + "crs": "EPSG:4326", + "width": 25415, + "height": 37065, + "bounds": [ + 52.99997672674432, + 16.321408996785937, + 60.05969894897218, + 26.617242330127507 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Pakistan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Pakistan_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Pakistan" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 8.484999656677246, + "mean": 4.838878154754639, + "std": 2.100985050201416, + "count": 621102, + "valid_pixels": 621102, + "total_pixels": 201857775, + "coverage_percent": 0.3076928793057389, + "crs": "EPSG:4326", + "width": 25185, + "height": 8015, + "bounds": [ + 61.540878410173256, + 23.584002230329638, + 68.53671174351219, + 25.81039111922031 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 8.484999656677246, + "mean": 4.838878154754639, + "std": 2.100985050201416, + "count": 621102, + "valid_pixels": 621102, + "total_pixels": 201857775, + "coverage_percent": 0.3076928793057389, + "crs": "EPSG:4326", + "width": 25185, + "height": 8015, + "bounds": [ + 61.540878410173256, + 23.584002230329638, + 68.53671174351219, + 25.81039111922031 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Palau.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Palau_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Palau" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 39.03099822998047, + "mean": 20.372987747192383, + "std": 9.470412254333496, + "count": 56654, + "valid_pixels": 56654, + "total_pixels": 258657384, + "coverage_percent": 0.02190310561557369, + "crs": "EPSG:4326", + "width": 13674, + "height": 18916, + "bounds": [ + 131.02508914525566, + 2.9088728726669792, + 134.82342247859202, + 8.163317317115627 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 39.03099822998047, + "mean": 20.372987747192383, + "std": 9.470412254333496, + "count": 56654, + "valid_pixels": 56654, + "total_pixels": 258657384, + "coverage_percent": 0.02190310561557369, + "crs": "EPSG:4326", + "width": 13674, + "height": 18916, + "bounds": [ + 131.02508914525566, + 2.9088728726669792, + 134.82342247859202, + 8.163317317115627 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Panama.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Panama_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Panama" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 50.90999984741211, + "mean": 27.496570587158203, + "std": 13.56494140625, + "count": 1619877, + "valid_pixels": 1619877, + "total_pixels": 240121740, + "coverage_percent": 0.674606555824558, + "crs": "EPSG:4326", + "width": 20532, + "height": 11695, + "bounds": [ + -83.05194398561447, + 6.972076906008147, + -77.34861065227658, + 10.220688017121857 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 50.90999984741211, + "mean": 27.496570587158203, + "std": 13.56494140625, + "count": 1619877, + "valid_pixels": 1619877, + "total_pixels": 240121740, + "coverage_percent": 0.674606555824558, + "crs": "EPSG:4326", + "width": 20532, + "height": 11695, + "bounds": [ + -83.05194398561447, + 6.972076906008147, + -77.34861065227658, + 10.220688017121857 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_PapuaNewGuinea.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_PapuaNewGuinea_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "PapuaNewGuinea" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 45.819000244140625, + "mean": 27.55213165283203, + "std": 10.928544044494629, + "count": 5016902, + "valid_pixels": 5016902, + "total_pixels": 2426912824, + "coverage_percent": 0.20671949772514778, + "crs": "EPSG:4326", + "width": 58184, + "height": 41711, + "bounds": [ + 140.9929604685411, + -12.094017993778076, + 157.15518269077626, + -0.5076291048799185 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 45.819000244140625, + "mean": 27.55213165283203, + "std": 10.928544044494629, + "count": 5016902, + "valid_pixels": 5016902, + "total_pixels": 2426912824, + "coverage_percent": 0.20671949772514778, + "crs": "EPSG:4326", + "width": 58184, + "height": 41711, + "bounds": [ + 140.9929604685411, + -12.094017993778076, + 157.15518269077626, + -0.5076291048799185 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Peru.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Peru_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Peru" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 11.826382637023926, + "std": 5.72841215133667, + "count": 42776, + "valid_pixels": 42776, + "total_pixels": 44966519, + "coverage_percent": 0.09512855553706526, + "crs": "EPSG:4326", + "width": 4069, + "height": 11051, + "bounds": [ + -81.3512894015842, + -6.472211090354713, + -80.22101162380551, + -3.402488868130035 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 11.826382637023926, + "std": 5.72841215133667, + "count": 42776, + "valid_pixels": 42776, + "total_pixels": 44966519, + "coverage_percent": 0.09512855553706526, + "crs": "EPSG:4326", + "width": 4069, + "height": 11051, + "bounds": [ + -81.3512894015842, + -6.472211090354714, + -80.22101162380551, + -3.402488868130035 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Philipines.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Philipines_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Philipines" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 23.757999420166016, + "mean": 10.11975383758545, + "std": 6.021293640136719, + "count": 2707381, + "valid_pixels": 2707381, + "total_pixels": 2172483840, + "coverage_percent": 0.12462145633267403, + "crs": "EPSG:4326", + "width": 35680, + "height": 60888, + "bounds": [ + 116.8043271340159, + 4.234699509026715, + 126.71543824513495, + 21.148032842373578 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 23.757999420166016, + "mean": 10.11975383758545, + "std": 6.021293640136719, + "count": 2707381, + "valid_pixels": 2707381, + "total_pixels": 2172483840, + "coverage_percent": 0.12462145633267403, + "crs": "EPSG:4326", + "width": 35680, + "height": 60888, + "bounds": [ + 116.8043271340159, + 4.234699509026715, + 126.71543824513495, + 21.148032842373578 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_PuertoRico.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_PuertoRico_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "PuertoRico" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 7.870748996734619, + "std": 4.5841474533081055, + "count": 86887, + "valid_pixels": 86887, + "total_pixels": 29758212, + "coverage_percent": 0.2919765475156908, + "crs": "EPSG:4326", + "width": 10989, + "height": 2708, + "bounds": [ + -68.02373939010596, + 17.833478116558542, + -64.97123939010352, + 18.585700338781365 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 7.870748996734619, + "std": 4.5841474533081055, + "count": 86887, + "valid_pixels": 86887, + "total_pixels": 29758212, + "coverage_percent": 0.2919765475156908, + "crs": "EPSG:4326", + "width": 10989, + "height": 2708, + "bounds": [ + -68.02373939010596, + 17.833478116558542, + -64.97123939010352, + 18.585700338781365 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Qatar.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Qatar_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Qatar" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 10.182000160217285, + "mean": 4.597275257110596, + "std": 2.61391282081604, + "count": 4470, + "valid_pixels": 4470, + "total_pixels": 37809744, + "coverage_percent": 0.011822349286469646, + "crs": "EPSG:4326", + "width": 6288, + "height": 6013, + "bounds": [ + 50.722374702658435, + 24.546690317683062, + 52.4690413693265, + 26.216968095462175 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 10.182000160217285, + "mean": 4.597275257110596, + "std": 2.61391282081604, + "count": 4470, + "valid_pixels": 4470, + "total_pixels": 37809744, + "coverage_percent": 0.011822349286469646, + "crs": "EPSG:4326", + "width": 6288, + "height": 6013, + "bounds": [ + 50.722374702658435, + 24.546690317683062, + 52.4690413693265, + 26.216968095462175 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_ReunionAndMauritius.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_ReunionAndMauritius_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "ReunionAndMauritius" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 23.757999420166016, + "mean": 8.004182815551758, + "std": 7.0206499099731445, + "count": 360, + "valid_pixels": 360, + "total_pixels": 90100780, + "coverage_percent": 0.0003995525898887889, + "crs": "EPSG:4326", + "width": 12628, + "height": 7135, + "bounds": [ + 54.49238418722549, + -21.7320337410071, + 58.00016196500607, + -19.75008929656107 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 23.757999420166016, + "mean": 8.004182815551758, + "std": 7.0206499099731445, + "count": 360, + "valid_pixels": 360, + "total_pixels": 90100780, + "coverage_percent": 0.0003995525898887889, + "crs": "EPSG:4326", + "width": 12628, + "height": 7135, + "bounds": [ + 54.49238418722549, + -21.7320337410071, + 58.00016196500607, + -19.75008929656107 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_SaintKittsAndNevis.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_SaintKittsAndNevis_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "SaintKittsAndNevis" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 9.684810638427734, + "std": 6.520773887634277, + "count": 570, + "valid_pixels": 570, + "total_pixels": 209568, + "coverage_percent": 0.27198808978469996, + "crs": "EPSG:4326", + "width": 296, + "height": 708, + "bounds": [ + -62.707448611789275, + 17.133546532524797, + -62.62522638956699, + 17.330213199191622 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 9.684810638427734, + "std": 6.520773887634277, + "count": 570, + "valid_pixels": 570, + "total_pixels": 209568, + "coverage_percent": 0.27198808978469996, + "crs": "EPSG:4326", + "width": 296, + "height": 708, + "bounds": [ + -62.707448611789275, + 17.133546532524797, + -62.62522638956699, + 17.330213199191622 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_SaintLucia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_SaintLucia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "SaintLucia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 32.24300003051758, + "mean": 17.550945281982422, + "std": 6.277185916900635, + "count": 1497, + "valid_pixels": 1497, + "total_pixels": 529760, + "coverage_percent": 0.28258079130172153, + "crs": "EPSG:4326", + "width": 440, + "height": 1204, + "bounds": [ + -61.010266910129126, + 13.74513265397787, + -60.888044687906806, + 14.079577098422583 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 32.24300003051758, + "mean": 17.550945281982422, + "std": 6.277185916900635, + "count": 1497, + "valid_pixels": 1497, + "total_pixels": 529760, + "coverage_percent": 0.28258079130172153, + "crs": "EPSG:4326", + "width": 440, + "height": 1204, + "bounds": [ + -61.010266910129126, + 13.74513265397787, + -60.888044687906806, + 14.079577098422583 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_SaintVincentAndTheGrenadines.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_SaintVincentAndTheGrenadines_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "SaintVincentAndTheGrenadines" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 61.09199905395508, + "mean": 17.493654251098633, + "std": 16.568742752075195, + "count": 478, + "valid_pixels": 478, + "total_pixels": 2155920, + "coverage_percent": 0.02217150914690712, + "crs": "EPSG:4326", + "width": 1040, + "height": 2073, + "bounds": [ + -61.43353808932835, + 12.583016035291424, + -61.14464920043923, + 13.158849368625217 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 61.09199905395508, + "mean": 17.493654251098633, + "std": 16.568742752075195, + "count": 478, + "valid_pixels": 478, + "total_pixels": 2155920, + "coverage_percent": 0.02217150914690712, + "crs": "EPSG:4326", + "width": 1040, + "height": 2073, + "bounds": [ + -61.43353808932835, + 12.583016035291424, + -61.14464920043923, + 13.158849368625217 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Samoa.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Samoa_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Samoa" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 14.631243705749512, + "std": 8.149667739868164, + "count": 3480, + "valid_pixels": 3480, + "total_pixels": 12964224, + "coverage_percent": 0.02684310298865555, + "crs": "EPSG:4326", + "width": 5194, + "height": 2496, + "bounds": [ + -172.82225087917433, + -14.10419825234454, + -171.3794731013954, + -13.410864919010653 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 14.631243705749512, + "std": 8.149667739868164, + "count": 3480, + "valid_pixels": 3480, + "total_pixels": 12964224, + "coverage_percent": 0.02684310298865555, + "crs": "EPSG:4326", + "width": 5194, + "height": 2496, + "bounds": [ + -172.82225087917433, + -14.10419825234454, + -171.3794731013954, + -13.410864919010653 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_SaudiArabia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_SaudiArabia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "SaudiArabia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 11.878999710083008, + "mean": 3.748835325241089, + "std": 3.330613374710083, + "count": 75851, + "valid_pixels": 75851, + "total_pixels": 2891849400, + "coverage_percent": 0.002622923586546381, + "crs": "EPSG:4326", + "width": 61496, + "height": 47025, + "bounds": [ + 34.4739559157922, + 15.937638888878439, + 51.55617813802809, + 29.000138888888888 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 11.878999710083008, + "mean": 3.748835325241089, + "std": 3.330613374710083, + "count": 75851, + "valid_pixels": 75851, + "total_pixels": 2891849400, + "coverage_percent": 0.002622923586546381, + "crs": "EPSG:4326", + "width": 61496, + "height": 47025, + "bounds": [ + 34.4739559157922, + 15.937638888878439, + 51.55617813802809, + 29.000138888888888 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Senegal.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Senegal_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Senegal" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 5.961676597595215, + "std": 3.5264551639556885, + "count": 1745529, + "valid_pixels": 1745529, + "total_pixels": 109483700, + "coverage_percent": 1.5943277401110851, + "crs": "EPSG:4326", + "width": 7948, + "height": 13775, + "bounds": [ + -17.000138888888888, + 12.344137268063344, + -14.792361111109344, + 16.170526156955294 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 5.961676597595215, + "std": 3.5264551639556885, + "count": 1745529, + "valid_pixels": 1745529, + "total_pixels": 109483700, + "coverage_percent": 1.5943277401110851, + "crs": "EPSG:4326", + "width": 7948, + "height": 13775, + "bounds": [ + -17.000138888888888, + 12.344137268063346, + -14.792361111109344, + 16.170526156955294 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Seychelles.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Seychelles_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Seychelles" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 13.186245918273926, + "std": 4.938358783721924, + "count": 11601, + "valid_pixels": 11601, + "total_pixels": 980616984, + "coverage_percent": 0.0011830307030456246, + "crs": "EPSG:4326", + "width": 37451, + "height": 26184, + "bounds": [ + 46.03785707668964, + -10.50867439353699, + 56.440912632253514, + -3.235341060197839 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 13.186245918273926, + "std": 4.938358783721924, + "count": 11601, + "valid_pixels": 11601, + "total_pixels": 980616984, + "coverage_percent": 0.0011830307030456246, + "crs": "EPSG:4326", + "width": 37451, + "height": 26184, + "bounds": [ + 46.03785707668964, + -10.50867439353699, + 56.440912632253514, + -3.235341060197839 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_SierraLeone.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_SierraLeone_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "SierraLeone" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 10.923465728759766, + "std": 7.627798080444336, + "count": 1665854, + "valid_pixels": 1665854, + "total_pixels": 52041600, + "coverage_percent": 3.2010045809506242, + "crs": "EPSG:4326", + "width": 6255, + "height": 8320, + "bounds": [ + -13.297278056674534, + 6.973954535534518, + -11.559778056673144, + 9.285065646647478 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 10.923465728759766, + "std": 7.627798080444336, + "count": 1665854, + "valid_pixels": 1665854, + "total_pixels": 52041600, + "coverage_percent": 3.2010045809506242, + "crs": "EPSG:4326", + "width": 6255, + "height": 8320, + "bounds": [ + -13.297278056674534, + 6.973954535534517, + -11.559778056673144, + 9.285065646647478 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Singapore.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Singapore_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Singapore" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 33.939998626708984, + "mean": 16.31968879699707, + "std": 8.966936111450195, + "count": 5973, + "valid_pixels": 5973, + "total_pixels": 2081136, + "coverage_percent": 0.28700671171898423, + "crs": "EPSG:4326", + "width": 1816, + "height": 1146, + "bounds": [ + 103.60417940966882, + 1.1564778472742534, + 104.10862385411366, + 1.4748111806078414 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 33.939998626708984, + "mean": 16.31968879699707, + "std": 8.966936111450195, + "count": 5973, + "valid_pixels": 5973, + "total_pixels": 2081136, + "coverage_percent": 0.28700671171898423, + "crs": "EPSG:4326", + "width": 1816, + "height": 1146, + "bounds": [ + 103.60417940966882, + 1.1564778472742534, + 104.10862385411366, + 1.4748111806078414 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_SolomonIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_SolomonIslands_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "SolomonIslands" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 20.460439682006836, + "std": 11.333568572998047, + "count": 491696, + "valid_pixels": 491696, + "total_pixels": 1649606942, + "coverage_percent": 0.02980685807516443, + "crs": "EPSG:4326", + "width": 55651, + "height": 29642, + "bounds": [ + 155.3234818290618, + -12.469134273431159, + 170.78209294018527, + -4.235245384535683 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 20.460439682006836, + "std": 11.333568572998047, + "count": 491696, + "valid_pixels": 491696, + "total_pixels": 1649606942, + "coverage_percent": 0.02980685807516443, + "crs": "EPSG:4326", + "width": 55651, + "height": 29642, + "bounds": [ + 155.3234818290618, + -12.469134273431159, + 170.78209294018527, + -4.235245384535683 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Somalia.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Somalia_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Somalia" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 6.197477340698242, + "std": 4.179880142211914, + "count": 22396, + "valid_pixels": 22396, + "total_pixels": 239590960, + "coverage_percent": 0.009347598089677507, + "crs": "EPSG:4326", + "width": 36412, + "height": 6580, + "bounds": [ + 41.4598356917426, + -1.827638888890351, + 51.574280136195135, + 0.0001388888888888889 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 6.197477340698242, + "std": 4.179880142211914, + "count": 22396, + "valid_pixels": 22396, + "total_pixels": 239590960, + "coverage_percent": 0.009347598089677507, + "crs": "EPSG:4326", + "width": 36412, + "height": 6580, + "bounds": [ + 41.4598356917426, + -1.827638888890351, + 51.57428013619513, + 0.0001388888888888889 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Somalia2.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Somalia2_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Somalia2" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 6.009950160980225, + "std": 3.64634108543396, + "count": 4649, + "valid_pixels": 4649, + "total_pixels": 1722141952, + "coverage_percent": 0.0002699545176633616, + "crs": "EPSG:4326", + "width": 36412, + "height": 47296, + "bounds": [ + 41.4598356917426, + -1.0002255074339033, + 51.574280136195135, + 12.137552270354384 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 6.009950160980225, + "std": 3.64634108543396, + "count": 4649, + "valid_pixels": 4649, + "total_pixels": 1722141952, + "coverage_percent": 0.0002699545176633616, + "crs": "EPSG:4326", + "width": 36412, + "height": 47296, + "bounds": [ + 41.4598356917426, + -1.0002255074339033, + 51.57428013619513, + 12.137552270354384 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Soudan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Soudan_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Soudan" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 8.484999656677246, + "mean": 3.2764670848846436, + "std": 2.516249179840088, + "count": 3588, + "valid_pixels": 3588, + "total_pixels": 119224401, + "coverage_percent": 0.0030094510602741466, + "crs": "EPSG:4326", + "width": 8121, + "height": 14681, + "bounds": [ + 36.530135257977456, + 17.92339942337211, + 38.785968591312596, + 22.00145497893093 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 8.484999656677246, + "mean": 3.2764670848846436, + "std": 2.516249179840088, + "count": 3588, + "valid_pixels": 3588, + "total_pixels": 119224401, + "coverage_percent": 0.0030094510602741466, + "crs": "EPSG:4326", + "width": 8121, + "height": 14681, + "bounds": [ + 36.530135257977456, + 17.92339942337211, + 38.785968591312596, + 22.00145497893093 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_SouthAfrica.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_SouthAfrica_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "SouthAfrica" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 14.622588157653809, + "std": 7.481906890869141, + "count": 16951, + "valid_pixels": 16951, + "total_pixels": 58940100, + "coverage_percent": 0.028759706888858348, + "crs": "EPSG:4326", + "width": 7615, + "height": 7740, + "bounds": [ + 30.999861111111112, + -29.000003245059055, + 33.115138888890584, + -26.850003245057334 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 14.622588157653809, + "std": 7.481906890869141, + "count": 16951, + "valid_pixels": 16951, + "total_pixels": 58940100, + "coverage_percent": 0.028759706888858348, + "crs": "EPSG:4326", + "width": 7615, + "height": 7740, + "bounds": [ + 30.999861111111112, + -29.000003245059055, + 33.115138888890584, + -26.850003245057334 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_SriLanka.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_SriLanka_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "SriLanka" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 7.267050743103027, + "std": 3.781923770904541, + "count": 242946, + "valid_pixels": 242946, + "total_pixels": 168358523, + "coverage_percent": 0.14430276274162845, + "crs": "EPSG:4326", + "width": 10459, + "height": 16097, + "bounds": [ + 79.24055152537368, + 5.523006162575908, + 82.14582930315377, + 9.994395051468373 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 7.267050743103027, + "std": 3.781923770904541, + "count": 242946, + "valid_pixels": 242946, + "total_pixels": 168358523, + "coverage_percent": 0.14430276274162845, + "crs": "EPSG:4326", + "width": 10459, + "height": 16097, + "bounds": [ + 79.24055152537368, + 5.523006162575908, + 82.14582930315377, + 9.994395051468373 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Suriname.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Suriname_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Suriname" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 17.019638061523438, + "std": 12.322382926940918, + "count": 910279, + "valid_pixels": 910279, + "total_pixels": 17724420, + "coverage_percent": 5.135733637546391, + "crs": "EPSG:4326", + "width": 11340, + "height": 1563, + "bounds": [ + -57.15874255710178, + 5.577435387505078, + -54.00874255709926, + 6.0116020541720925 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 40.72800064086914, + "mean": 17.019638061523438, + "std": 12.322382926940918, + "count": 910279, + "valid_pixels": 910279, + "total_pixels": 17724420, + "coverage_percent": 5.135733637546391, + "crs": "EPSG:4326", + "width": 11340, + "height": 1563, + "bounds": [ + -57.15874255710178, + 5.577435387505078, + -54.00874255709926, + 6.0116020541720925 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Taiwan.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Taiwan_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Taiwan" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 18.66699981689453, + "mean": 7.8081560134887695, + "std": 4.902645111083984, + "count": 1562, + "valid_pixels": 1562, + "total_pixels": 373523577, + "coverage_percent": 0.0004181797605777372, + "crs": "EPSG:4326", + "width": 20027, + "height": 18651, + "bounds": [ + 116.65220759501844, + 20.546223782170895, + 122.21526315057844, + 25.727057115508373 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 18.66699981689453, + "mean": 7.8081560134887695, + "std": 4.902645111083984, + "count": 1562, + "valid_pixels": 1562, + "total_pixels": 373523577, + "coverage_percent": 0.0004181797605777372, + "crs": "EPSG:4326", + "width": 20027, + "height": 18651, + "bounds": [ + 116.65220759501844, + 20.546223782170895, + 122.21526315057844, + 25.727057115508373 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Tanzania.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Tanzania_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Tanzania" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 16.07242774963379, + "std": 6.801039218902588, + "count": 1006335, + "valid_pixels": 1006335, + "total_pixels": 194145627, + "coverage_percent": 0.5183402869022644, + "crs": "EPSG:4326", + "width": 8529, + "height": 22763, + "bounds": [ + 38.28628600041123, + -10.82903861973336, + 40.65545266707979, + -4.505983064172748 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 28.849000930786133, + "mean": 16.07242774963379, + "std": 6.801039218902588, + "count": 1006335, + "valid_pixels": 1006335, + "total_pixels": 194145627, + "coverage_percent": 0.5183402869022644, + "crs": "EPSG:4326", + "width": 8529, + "height": 22763, + "bounds": [ + 38.28628600041123, + -10.82903861973336, + 40.65545266707979, + -4.505983064172748 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Thailand.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Thailand_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Thailand" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 12.979851722717285, + "std": 4.886399745941162, + "count": 2627817, + "valid_pixels": 2627817, + "total_pixels": 574569450, + "coverage_percent": 0.45735411097822903, + "crs": "EPSG:4326", + "width": 20475, + "height": 28062, + "bounds": [ + 97.3937716291951, + 6.116629205027933, + 103.08127162919965, + 13.911629205034169 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 12.979851722717285, + "std": 4.886399745941162, + "count": 2627817, + "valid_pixels": 2627817, + "total_pixels": 574569450, + "coverage_percent": 0.45735411097822903, + "crs": "EPSG:4326", + "width": 20475, + "height": 28062, + "bounds": [ + 97.3937716291951, + 6.116629205027933, + 103.08127162919965, + 13.911629205034169 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_TimorLeste.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_TimorLeste_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "TimorLeste" + }, + "original_stats": { + "min": 11.878999710083008, + "max": 50.90999984741211, + "mean": 35.153255462646484, + "std": 11.358556747436523, + "count": 1277, + "valid_pixels": 1277, + "total_pixels": 58979898, + "coverage_percent": 0.0021651444700701242, + "crs": "EPSG:4326", + "width": 12091, + "height": 4878, + "bounds": [ + 124.04451595730264, + -9.46070907090759, + 127.40312706841644, + -8.105709070906506 + ] + }, + "cog_stats": { + "min": 11.878999710083008, + "max": 50.90999984741211, + "mean": 35.153255462646484, + "std": 11.358556747436523, + "count": 1277, + "valid_pixels": 1277, + "total_pixels": 58979898, + "coverage_percent": 0.0021651444700701242, + "crs": "EPSG:4326", + "width": 12091, + "height": 4878, + "bounds": [ + 124.04451595730264, + -9.46070907090759, + 127.40312706841644, + -8.105709070906506 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Togo.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Togo_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Togo" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 6.694150447845459, + "std": 6.212823390960693, + "count": 1320, + "valid_pixels": 1320, + "total_pixels": 955680, + "coverage_percent": 0.13812154696132595, + "crs": "EPSG:4326", + "width": 1448, + "height": 660, + "bounds": [ + 1.2000859875149197, + 6.131375505659169, + 1.6023082097374637, + 6.314708838992649 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 6.694150447845459, + "std": 6.212823390960693, + "count": 1320, + "valid_pixels": 1320, + "total_pixels": 955680, + "coverage_percent": 0.13812154696132595, + "crs": "EPSG:4326", + "width": 1448, + "height": 660, + "bounds": [ + 1.2000859875149197, + 6.131375505659169, + 1.6023082097374637, + 6.314708838992649 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Tonga.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Tonga_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Tonga" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 6.736698627471924, + "std": 3.680978536605835, + "count": 8683, + "valid_pixels": 8683, + "total_pixels": 257063284, + "coverage_percent": 0.0033777674761207833, + "crs": "EPSG:4326", + "width": 10292, + "height": 24977, + "bounds": [ + -176.35241720002182, + -22.439789222379467, + -173.49352831113063, + -15.501733666818362 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 13.576000213623047, + "mean": 6.736698627471924, + "std": 3.680978536605835, + "count": 8683, + "valid_pixels": 8683, + "total_pixels": 257063284, + "coverage_percent": 0.0033777674761207833, + "crs": "EPSG:4326", + "width": 10292, + "height": 24977, + "bounds": [ + -176.35241720002182, + -22.439789222379467, + -173.49352831113063, + -15.501733666818362 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_TrinidadAndTobago.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_TrinidadAndTobago_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "TrinidadAndTobago" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 32.24300003051758, + "mean": 19.303234100341797, + "std": 7.3637590408325195, + "count": 67597, + "valid_pixels": 67597, + "total_pixels": 22036080, + "coverage_percent": 0.3067560110509673, + "crs": "EPSG:4326", + "width": 4910, + "height": 4488, + "bounds": [ + -61.929082522922094, + 10.002546204459994, + -60.56519363403211, + 11.249212871127659 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 32.24300003051758, + "mean": 19.303234100341797, + "std": 7.3637590408325195, + "count": 67597, + "valid_pixels": 67597, + "total_pixels": 22036080, + "coverage_percent": 0.3067560110509673, + "crs": "EPSG:4326", + "width": 4910, + "height": 4488, + "bounds": [ + -61.929082522922094, + 10.002546204459994, + -60.56519363403211, + 11.249212871127659 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_TurksAndCaicosIslands.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_TurksAndCaicosIslands_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "TurksAndCaicosIslands" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 10.182000160217285, + "mean": 6.774089813232422, + "std": 2.167814016342163, + "count": 192897, + "valid_pixels": 192897, + "total_pixels": 16636365, + "coverage_percent": 1.1594900688942567, + "crs": "EPSG:4326", + "width": 5207, + "height": 3195, + "bounds": [ + -72.49965780060619, + 21.124057999267247, + -71.05326891171615, + 22.011557999267957 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 10.182000160217285, + "mean": 6.774089813232422, + "std": 2.167814016342163, + "count": 192897, + "valid_pixels": 192897, + "total_pixels": 16636365, + "coverage_percent": 1.1594900688942567, + "crs": "EPSG:4326", + "width": 5207, + "height": 3195, + "bounds": [ + -72.49965780060619, + 21.124057999267247, + -71.05326891171615, + 22.011557999267957 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Tuvalu.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Tuvalu_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Tuvalu" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 4.284402370452881, + "std": 5.6769022941589355, + "count": 81, + "valid_pixels": 81, + "total_pixels": 279691851, + "coverage_percent": 2.896044332732454e-05, + "crs": "EPSG:4326", + "width": 14629, + "height": 19119, + "bounds": [ + 175.92957458723907, + -10.883059899755601, + 179.99318569835344, + -5.572226566418019 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 16.969999313354492, + "mean": 4.284402370452881, + "std": 5.6769022941589355, + "count": 81, + "valid_pixels": 81, + "total_pixels": 279691851, + "coverage_percent": 2.896044332732454e-05, + "crs": "EPSG:4326", + "width": 14629, + "height": 19119, + "bounds": [ + 175.92957458723907, + -10.883059899755601, + 179.99318569835344, + -5.572226566418019 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_UnitedArabEmirates.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_UnitedArabEmirates_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "UnitedArabEmirates" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 10.182000160217285, + "mean": 3.201988458633423, + "std": 2.8667898178100586, + "count": 136866, + "valid_pixels": 136866, + "total_pixels": 186388800, + "coverage_percent": 0.07343037779094023, + "crs": "EPSG:4326", + "width": 17922, + "height": 10400, + "bounds": [ + 51.441083215109195, + 23.728353441236308, + 56.41941654844651, + 26.617242330127507 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 10.182000160217285, + "mean": 3.201988458633423, + "std": 2.8667898178100586, + "count": 136866, + "valid_pixels": 136866, + "total_pixels": 186388800, + "coverage_percent": 0.07343037779094023, + "crs": "EPSG:4326", + "width": 17922, + "height": 10400, + "bounds": [ + 51.441083215109195, + 23.728353441236308, + 56.41941654844651, + 26.617242330127507 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_UnitedStates.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_UnitedStates_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "UnitedStates" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 10.493389129638672, + "std": 5.431275367736816, + "count": 2690848, + "valid_pixels": 2690848, + "total_pixels": 1025092324, + "coverage_percent": 0.26249811231636927, + "crs": "EPSG:4326", + "width": 53188, + "height": 19273, + "bounds": [ + -94.80674899631076, + 24.52162505255377, + -80.0323045518545, + 29.875236163669165 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 22.06100082397461, + "mean": 10.493389129638672, + "std": 5.431275367736816, + "count": 2690848, + "valid_pixels": 2690848, + "total_pixels": 1025092324, + "coverage_percent": 0.26249811231636927, + "crs": "EPSG:4326", + "width": 53188, + "height": 19273, + "bounds": [ + -94.80674899631076, + 24.52162505255377, + -80.0323045518545, + 29.875236163669165 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Vanuatu.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Vanuatu_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Vanuatu" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 11.70533275604248, + "std": 7.342876434326172, + "count": 14910, + "valid_pixels": 14910, + "total_pixels": 746842196, + "coverage_percent": 0.0019964056771104026, + "crs": "EPSG:4326", + "width": 21503, + "height": 34732, + "bounds": [ + 166.3358361728035, + -22.567086433906525, + 172.30889172836385, + -12.919308656121027 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 11.70533275604248, + "std": 7.342876434326172, + "count": 14910, + "valid_pixels": 14910, + "total_pixels": 746842196, + "coverage_percent": 0.0019964056771104026, + "crs": "EPSG:4326", + "width": 21503, + "height": 34732, + "bounds": [ + 166.3358361728035, + -22.567086433906525, + 172.30889172836385, + -12.919308656121027 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Venezuela.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Venezuela_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Venezuela" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 52.606998443603516, + "mean": 30.57932472229004, + "std": 14.639459609985352, + "count": 2644322, + "valid_pixels": 2644322, + "total_pixels": 644858421, + "coverage_percent": 0.41006241275400823, + "crs": "EPSG:4326", + "width": 44841, + "height": 14381, + "bounds": [ + -72.28801120334201, + 8.316334520972553, + -59.83217786999871, + 12.311056743197971 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 52.606998443603516, + "mean": 30.57932472229004, + "std": 14.639459609985352, + "count": 2644322, + "valid_pixels": 2644322, + "total_pixels": 644858421, + "coverage_percent": 0.41006241275400823, + "crs": "EPSG:4326", + "width": 44841, + "height": 14381, + "bounds": [ + -72.28801120334201, + 8.316334520972553, + -59.83217786999871, + 12.311056743197971 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Vietnam.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Vietnam_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Vietnam" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 6.172423839569092, + "std": 3.9861655235290527, + "count": 2168764, + "valid_pixels": 2168764, + "total_pixels": 1191634416, + "coverage_percent": 0.18199910735038724, + "crs": "EPSG:4326", + "width": 23184, + "height": 51399, + "bounds": [ + 103.7580640245313, + 7.889706614719458, + 110.19806402453645, + 22.16720661473088 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 15.27299976348877, + "mean": 6.172423839569092, + "std": 3.9861655235290527, + "count": 2168764, + "valid_pixels": 2168764, + "total_pixels": 1191634416, + "coverage_percent": 0.18199910735038724, + "crs": "EPSG:4326", + "width": 23184, + "height": 51399, + "bounds": [ + 103.7580640245313, + 7.889706614719458, + 110.19806402453645, + 22.16720661473088 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_VirginIslandsUs.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_VirginIslandsUs_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "VirginIslandsUs" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 13.155295372009277, + "std": 7.379212856292725, + "count": 2029, + "valid_pixels": 2029, + "total_pixels": 11438448, + "coverage_percent": 0.017738420457041024, + "crs": "EPSG:4326", + "width": 4039, + "height": 2832, + "bounds": [ + -65.10577253241098, + 17.642138764565917, + -63.98382808796564, + 18.428805431233215 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 30.54599952697754, + "mean": 13.155295372009277, + "std": 7.379212856292725, + "count": 2029, + "valid_pixels": 2029, + "total_pixels": 11438448, + "coverage_percent": 0.017738420457041024, + "crs": "EPSG:4326", + "width": 4039, + "height": 2832, + "bounds": [ + -65.10577253241098, + 17.642138764565917, + -63.98382808796564, + 18.428805431233215 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_WallisAndFutuna.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_WallisAndFutuna_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "WallisAndFutuna" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 12.402908325195312, + "std": 7.270284175872803, + "count": 149, + "valid_pixels": 149, + "total_pixels": 34381422, + "coverage_percent": 0.000433373581814039, + "crs": "EPSG:4326", + "width": 7671, + "height": 4482, + "bounds": [ + -178.22013079463355, + -14.398348380826418, + -176.08929746129851, + -13.153348380825422 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 25.454999923706055, + "mean": 12.402908325195312, + "std": 7.270284175872803, + "count": 149, + "valid_pixels": 149, + "total_pixels": 34381422, + "coverage_percent": 0.000433373581814039, + "crs": "EPSG:4326", + "width": 7671, + "height": 4482, + "bounds": [ + -178.22013079463355, + -14.398348380826416, + -176.08929746129851, + -13.153348380825422 + ] + } + }, + { + "original_file": "coastal-observatory/data/Mangrove_hmax95_Yemen.tif", + "cog_file": "transformed_cogs/CMS_Global_Map_Mangrove_Canopy_Biomass/Mangrove_hmax95_Yemen_2000year.tif", + "metadata": { + "data_type": "hmax95", + "region": "Yemen" + }, + "original_stats": { + "min": 0.8485000133514404, + "max": 11.878999710083008, + "mean": 6.932361602783203, + "std": 2.5571110248565674, + "count": 11397, + "valid_pixels": 11397, + "total_pixels": 863684178, + "coverage_percent": 0.0013195795743753916, + "crs": "EPSG:4326", + "width": 47057, + "height": 18354, + "bounds": [ + 41.59284821307784, + 11.78525113122194, + 54.66423710197719, + 16.883584464559352 + ] + }, + "cog_stats": { + "min": 0.8485000133514404, + "max": 11.878999710083008, + "mean": 6.932361602783203, + "std": 2.5571110248565674, + "count": 11397, + "valid_pixels": 11397, + "total_pixels": 863684178, + "coverage_percent": 0.0013195795743753916, + "crs": "EPSG:4326", + "width": 47057, + "height": 18354, + "bounds": [ + 41.59284821307784, + 11.78525113122194, + 54.66423710197719, + 16.883584464559352 + ] + } + } +] \ No newline at end of file diff --git a/generating_statistics_for_validation/cms-global-map-mangrove/overall_stats.json b/generating_statistics_for_validation/cms-global-map-mangrove/overall_stats.json new file mode 100644 index 000000000..9259a1320 --- /dev/null +++ b/generating_statistics_for_validation/cms-global-map-mangrove/overall_stats.json @@ -0,0 +1,4 @@ +"Stats for raw tif files." +{"agb": {"min_value": 0.2844882905483246, "max_value": 910.4758911132812, "mean_value": 130.23778814734214, "std_value": 108.86896375862148}, "hmax95": {"min_value": 0.8485000133514404, "max_value": 62.78900146484375, "mean_value": 16.388412236876732, "std_value": 11.19070852893252}, "hba95": {"min_value": 0.5376999974250793, "max_value": 39.789798736572266, "mean_value": 10.46833660312674, "std_value": 7.126195837381929}} +"Stats for transformed COG files." +{"agb": {"min_value": 0.2844882905483246, "max_value": 910.4758911132812, "mean_value": 130.23778814734214, "std_value": 108.86896375862148}, "hmax95": {"min_value": 0.8485000133514404, "max_value": 62.78900146484375, "mean_value": 16.388412236876732, "std_value": 11.19070852893252}, "hba95": {"min_value": 0.5376999974250793, "max_value": 39.789798736572266, "mean_value": 10.46833660312674, "std_value": 7.126195837381929}} \ No newline at end of file diff --git a/generating_statistics_for_validation/cms-global-map-mangrove/overall_stats_summary.png b/generating_statistics_for_validation/cms-global-map-mangrove/overall_stats_summary.png new file mode 100644 index 000000000..cd83cad93 Binary files /dev/null and b/generating_statistics_for_validation/cms-global-map-mangrove/overall_stats_summary.png differ diff --git a/generating_statistics_for_validation/cms-global-map-mangrove/statistics_comparison.png b/generating_statistics_for_validation/cms-global-map-mangrove/statistics_comparison.png new file mode 100644 index 000000000..8348e80fc Binary files /dev/null and b/generating_statistics_for_validation/cms-global-map-mangrove/statistics_comparison.png differ diff --git a/user_data_notebooks/cms-global-map-mangrove_User_Notebook.ipynb b/user_data_notebooks/cms-global-map-mangrove_User_Notebook.ipynb new file mode 100644 index 000000000..403fa6e93 --- /dev/null +++ b/user_data_notebooks/cms-global-map-mangrove_User_Notebook.ipynb @@ -0,0 +1,2826 @@ +{ + "cells": [ + { + "cell_type": "raw", + "metadata": { + "vscode": { + "languageId": "raw" + } + }, + "source": [ + "---\n", + "title: Global Mangrove Distribution, Aboveground Biomass, and Canopy Height\n", + "description: This dataset characterizes the global distribution, biomass, and canopy height of mangrove-forested wetlands based on remotely sensed and in situ field measurement data. Estimates of (1) mangrove aboveground biomass (AGB), (2) maximum canopy height (height of the tallest tree), and (3) basal-area weighted height (individual tree heights weighted in proportion to their basal area) for the nominal year 2000 were derived across a 30-meter resolution global mangrove ecotype extent map using remotely-sensed canopy height measurements and region-specific allometric models. Within designated plots, selected trees were identified to species and diameter at breast height (DBH) and tree height was measured using a laser rangefinder or clinometer. Tree density (the number of stems) can be estimated for each plot and expressed per unit area. These data were used to derive plot-level allometry among AGB, basal area weighted height (Hba), and maximum canopy height (Hmax) and to validate the remotely sensed estimates.\n", + "authors: Kyle Lesinger\n", + "published: 22 July 2025\n", + "execute:\n", + " freeze: true\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Global Mangrove Distribution, Aboveground Biomass, and Canopy Height\n", + "\n", + "This notebook demonstrates how to access and visualize mangrove forest data from the CMS Global Map Mangrove Canopy dataset. Mangroves are critical coastal ecosystems that provide important ecosystem services including carbon storage, storm protection, and habitat for diverse species." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Access this Notebook\n", + "\n", + "You can launch this notebook in the US GHG Center JupyterHub by clicking the link below. If you are a new user, you should first sign up for the hub by filling out this [**request form**](https://docs.google.com/forms/d/e/1FAIpQLSdJEOVa3rEjRKl2o0kqCCYM8io2cT8FplnYVnfqR3WV9IENtg/viewform) and providing the required information.\n", + "\n", + "Access the [**Global Mangrove Distribution, Aboveground Biomass, and Canopy Height**](https://hub.ghg.center/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2FUS-GHG-Center%2Fghgc-docs&urlpath=lab%2Ftree%2Fghgc-docs%2Fuser_data_notebooks%2Fcms-global-map-mangrove_User_Notebook.ipynb&branch=main) notebook in the US GHG Center JupyterHub." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Table of Contents\n", + "- [Data Summary and Application](#data-summary-and-application)\n", + "- [Approach](#approach)\n", + "- [About the Data](#about-the-data)\n", + "- [Install the Required Libraries](#install-the-required-libraries)\n", + "- [Query the STAC API](#query-the-stac-api)\n", + "- [Explore Available Regions](#explore-available-regions)\n", + "- [Visualize Mangrove Data on a Map](#visualize-mangrove-data-on-a-map)\n", + "- [Calculate Zonal Statistics](#calculate-zonal-statistics)\n", + "- [Explore Additional Variables and Regions](#explore-additional-variables-and-regions)\n", + "- [Summary](#summary)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data Summary and Application\n", + "- **Spatial coverage**: Global mangrove extent\n", + "- **Spatial resolution**: 30 meters \n", + "- **Temporal extent**: Nominal year 2000\n", + "- **Temporal resolution**: Single time point\n", + "- **Unit**: \n", + " - Aboveground biomass (agb): Megagrams per hectare (Mg/ha)\n", + " - Maximum height 95th percentile (hmax95): meters (m)\n", + " - Basal area height 95th percentile (hba): meters (m)\n", + "- **Utility**: Blue carbon accounting, coastal ecosystem management, climate change mitigation\n", + "\n", + "For more, visit the [CMS Global Map Mangrove Canopy](https://earth.gov/ghgcenter/data-catalog/cms-global-map-mangrove-canopy) data overview page." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Approach\n", + "\n", + "1. Identify and explore the CMS Global Map Mangrove Canopy dataset using the GHGC API `/stac` endpoint\n", + "2. Examine available regions and assets (biomass, height metrics) in the collection\n", + "3. Visualize mangrove data for a specific region (Australia) on an interactive map\n", + "4. Define an area of interest and calculate zonal statistics\n", + "5. Create interactive widgets to explore different variables and regions\n", + "6. Display mangrove characteristics for other regions globally" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## About the Data\n", + "\n", + "This dataset characterizes the global distribution, biomass, and canopy height of mangrove-forested wetlands based on remotely sensed and in situ field measurement data. Estimates of (1) mangrove aboveground biomass (AGB), (2) maximum canopy height (height of the tallest tree) [hmax95], and (3) basal-area weighted height (individual tree heights weighted in proportion to their basal area) [hba] for the nominal year 2000 were derived across a 30-meter resolution global mangrove ecotype extent map using remotely-sensed canopy height measurements and region-specific allometric models.\n", + "\n", + "Mangroves are unique coastal forests found in tropical and subtropical regions that:\n", + "- Store substantial amounts of carbon in their biomass and soils\n", + "- Protect coastlines from erosion and storm damage\n", + "- Support diverse marine and terrestrial species\n", + "- Provide livelihoods for coastal communities\n", + "\n", + "For more information regarding this dataset, please visit the [CMS Global Map Mangrove Canopy](https://earth.gov/ghgcenter/data-catalog/cms-global-map-mangrove-canopy) data overview page." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Terminology\n", + "\n", + "Navigating data via the GHGC API, you will encounter terminology that is different from browsing in a typical filesystem. We'll define some terms here which are used throughout this notebook.\n", + "- `catalog`: All datasets available at the `/stac` endpoint\n", + "- `collection`: A specific dataset, e.g. CMS Global Map Mangrove Canopy\n", + "- `item`: One granule in the dataset, e.g. mangrove data for a specific country/region\n", + "- `asset`: A variable available within the granule, e.g. mangrove-agb, mangrove-hmax95, or mangrove-hba95\n", + "- `STAC API`: **Sp**atio**T**emporal **A**sset **C**atalogs - Endpoint for fetching metadata about available datasets\n", + "- `Raster API`: Endpoint for fetching data itself, for imagery and statistics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Install the Required Libraries\n", + "\n", + "Required libraries are pre-installed on the GHG Center Hub. If you need to run this notebook elsewhere, please install them with this line in a code cell:\n", + "\n", + "%pip install requests folium rasterstats pystac_client pandas matplotlib ipywidgets --quiet" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "All libraries imported successfully!\n" + ] + } + ], + "source": [ + "# Import required libraries\n", + "import os\n", + "import json\n", + "import requests\n", + "import numpy as np\n", + "import pandas as pd\n", + "from datetime import datetime\n", + "import ipywidgets as widgets\n", + "from IPython.display import display, clear_output\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# For making maps\n", + "import folium\n", + "import folium.plugins\n", + "from folium import Map, TileLayer\n", + "\n", + "# For working with geospatial data\n", + "import geopandas as gpd\n", + "from shapely.geometry import box\n", + "\n", + "# For talking to the STAC API\n", + "from pystac_client import Client\n", + "\n", + "# Import GHG Center utilities\n", + "import ghgc_utils\n", + "\n", + "print(\"All libraries imported successfully!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Query the STAC API\n", + "\n", + "**STAC API Collection Names**\n", + "\n", + "Now, you must fetch the dataset from the [**STAC API**](https://earth.gov/ghgcenter/api/stac/) by defining its associated STAC API collection ID as a variable. \n", + "The collection ID, also known as the **collection name**, for the CMS Global Map Mangrove Canopy dataset is [**cms-global-map-mangrove-canopy**](https://earth.gov/ghgcenter/api/stac/collections/cms-global-map-mangrove-canopy-v6).*\n", + "\n", + "**You can find the collection name of any dataset on the GHGC data portal by navigating to the dataset landing page within the data catalog. The collection name is the last portion of the dataset landing page's URL, and is also listed in the pop-up box after clicking \"ACCESS DATA.\"*" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "# Provide the STAC and RASTER API endpoints\n", + "# The STAC API is a catalog of all the existing data collections that are stored in the GHG Center.\n", + "STAC_API_URL = \"https://earth.gov/ghgcenter/api/stac\"\n", + "\n", + "# The RASTER API is used to fetch collections for visualization\n", + "RASTER_API_URL = \"https://earth.gov/ghgcenter/api/raster\"\n", + "\n", + "# The collection name is used to fetch the dataset from the STAC API. First, we define the collection name as a variable\n", + "collection_name = \"cms-mangrove-agb-canopyheight-grid-v1.3\"" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
    \n", + " \n", + " \n", + " \n", + "
  • \n", + " type\n", + " \"Collection\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " id\n", + " \"cms-mangrove-agb-canopyheight-grid-v1.3\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_version\n", + " \"1.1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " description\n", + " \"This dataset characterizes the global distribution, biomass, and canopy height of mangrove-forested wetlands based on remotely sensed and in situ field measurement data. Estimates of (1) mangrove aboveground biomass (AGB), (2) maximum canopy height (height of the tallest tree), and (3) basal-area weighted height (individual tree heights weighted in proportion to their basal area) for the nominal year 2000 were derived across a 30-meter resolution global mangrove ecotype extent map using remotely-sensed canopy height measurements and region-specific allometric models. Within designated plots, selected trees were identified to species and diameter at breast height (DBH) and tree height was measured using a laser rangefinder or clinometer. Tree density (the number of stems) can be estimated for each plot and expressed per unit area. These data were used to derive plot-level allometry among AGB, basal area weighted height (Hba), and maximum canopy height (Hmax) and to validate the remotely sensed estimates.\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " links[] 5 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://earth.gov/ghgcenter/api/stac/collections/cms-mangrove-agb-canopyheight-grid-v1.3/items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/geo+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"parent\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://earth.gov/ghgcenter/api/stac/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 2\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"root\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://earth.gov/ghgcenter/api/stac\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"US GHG Center STAC API\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 3\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"self\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://earth.gov/ghgcenter/api/stac/collections/cms-mangrove-agb-canopyheight-grid-v1.3\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 4\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"http://www.opengis.net/def/rel/ogc/1.0/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://earth.gov/ghgcenter/api/stac/collections/cms-mangrove-agb-canopyheight-grid-v1.3/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/schema+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_extensions[] 2 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"https://stac-extensions.github.io/render/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + " \"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " renders\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " agb\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " assets[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"agb\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      • \n", + " rescale[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 0\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 911\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " hba\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " assets[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"hba\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      • \n", + " rescale[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 0\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 40\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " hmax95\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " assets[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"hmax95\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      • \n", + " rescale[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 0\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 63\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " dashboard\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " assets[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"hba\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      • \n", + " rescale[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 0\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 40\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", + " item_assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " agb\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/tiff; application=geotiff; profile=cloud-optimized\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"data\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " \"layer\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Above Ground Biomass Mangrove Forests.\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Above ground biomass for mangrove forests.\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " hba\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/tiff; application=geotiff; profile=cloud-optimized\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"data\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " \"layer\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Basal Area Weighted Height Mangrove Forests.\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Basal area weighted height for mangrove forests.\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " hmax95\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/tiff; application=geotiff; profile=cloud-optimized\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"data\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " \"layer\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Maximum Height Tallest Tree in Mangrove Forests.\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Maximum height of tallest tree in mangrove forests.\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:is_periodic\n", + " False\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:time_density\n", + " \"year\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " title\n", + " \"Global Mangrove Aboveground Biomass and Canopy Height\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " extent\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " spatial\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " bbox[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " -180.0001388888889\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " -39.00013888891209\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " 180.00004010274694\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 31.000138888888888\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " temporal\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " interval[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " \"2000-01-01T00:00:00Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " \"2000-01-01T00:00:00Z\"\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", + " license\n", + " \"CC-BY-4.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " providers[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " name\n", + " \"NASA VEDA\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"host\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " url\n", + " \"https://www.earthdata.nasa.gov/dashboard/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " summaries\n", + "
      \n", + " \n", + " \n", + "
    • \n", + " datetime[] 1 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"2000-01-01T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + "
\n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fetch the collection from the STAC API using the appropriate endpoint\n", + "# The `pystac_client` library enables an HTTP request\n", + "\n", + "catalog = Client.open(STAC_API_URL)\n", + "collection = catalog.get_collection(collection_name)\n", + "\n", + "# Print the properties of the collection to the console\n", + "collection\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Examining the contents of our `collection` under the `temporal` variable, we note that data is only available for the nominal year 2000." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Explore Available Regions" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 121 items\n" + ] + } + ], + "source": [ + "items = list(collection.get_items()) # Convert the iterator to a list\n", + "print(f\"Found {len(items)} items\")" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# items in date range: 121\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", + "\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" + ] + } + ], + "source": [ + "# The search function lets you search for items within a specific date/time range\n", + "# There is only a single datetime for this collection for the nominal year 2000\n", + "search = catalog.search(\n", + " collections=collection_name,\n", + " datetime=['2000-01-01T00:00:00Z']\n", + ")\n", + "\n", + "unique_regions = []\n", + "# Take a look at the items we found\n", + "print(f\"# items in date range: {len(search.item_collection())}\")\n", + "for item in search.item_collection():\n", + " print(item)\n", + " unique_regions.append(item.id.split('-')[-1])\n", + "\n", + "unique_regions = np.unique(unique_regions)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "# Before we go further, let's pick which asset to focus on for the first set of plots within the notebook. \n", + "# This dataset has three assets to choose from:\n", + "asset_name = \"agb\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualize Mangrove Data on a Map\n", + "You will now explore mangrove distribution and characteristics for different regions and visualize the results on a map using `folium`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Fetch Imagery from Raster API\n", + "Here we get information from the `Raster API` which we will add to our map in the next section." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate the plotting legend unit information\n", + "units = {'agb':'Mg ha-1','hmax95':'meters','hba':'meters'}" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "# Use the information from the dropdown box above to grab the proper collection item\n", + "observation_1 = [i for i in items if 'Australia' in i.id][0]\n", + "\n", + "# Extract collection name and item ID\n", + "collection_id = observation_1.collection_id\n", + "item_id = observation_1.id" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'scale': 1.0,\n", + " 'nodata': -9999.0,\n", + " 'offset': 0.0,\n", + " 'sampling': 'area',\n", + " 'data_type': 'float32',\n", + " 'histogram': {'max': 145.98110961914062,\n", + " 'min': -8.919515609741211,\n", + " 'count': 11,\n", + " 'buckets': [739881, 1690, 500, 175, 84, 34, 17, 11, 6, 2]},\n", + " 'statistics': {'mean': 0.08236342857623923,\n", + " 'stddev': 1.6322306092733863,\n", + " 'maximum': 145.98110961914062,\n", + " 'minimum': -8.919515609741211,\n", + " 'valid_percent': 100.0}}]" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "object = observation_1.assets[asset_name]\n", + "raster_bands = object.extra_fields.get(\"raster:bands\", [{}])\n", + "rescale_values = {\n", + " \"max\": raster_bands[0].get(\"histogram\", {}).get(\"max\"),\n", + " \"min\": 0,\n", + "}\n", + "\n", + "raster_bands" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, you will pass the `item id`, `collection name`, `asset name`, and the `rescale values` to the Raster API endpoint, along with a colormap. This step tells the Raster API which collection, item, and asset you want to view, specifying the colormap and colorbar ranges to use for visualization. The API returns a JSON with information about the requested image. Each image will be referred to as a tile." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "# Choose a colormap for displaying the tiles\n", + "# Make sure that the capitalization matches Matplotlib standards\n", + "# For more information on Colormaps in Matplotlib, please visit https://matplotlib.org/stable/users/explain/colors/colormaps.html\n", + "color_map = \"YlGn\"" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'tilejson': '2.2.0',\n", + " 'version': '1.0.0',\n", + " 'scheme': 'xyz',\n", + " 'tiles': ['https://earth.gov/ghgcenter/api/raster/collections/cms-mangrove-agb-canopyheight-grid-v1.3/items/cms-mangrove-agb-canopyheight-grid-v1.3-Australia/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=agb&color_formula=gamma+r+1.05&colormap_name=ylgn&rescale=0%2C145.98110961914062'],\n", + " 'minzoom': 0,\n", + " 'maxzoom': 24,\n", + " 'bounds': [112.99986111111112,\n", + " -39.00013888891209,\n", + " 154.0001388889217,\n", + " -9.99986111111111],\n", + " 'center': [133.5000000000164, -24.5000000000116, 0]}" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Make a GET request to retrieve information for the date specified\n", + "observation_1_tile = requests.get(\n", + " f\"{RASTER_API_URL}/collections/{collection_id}/items/{item_id}/tilejson.json?\"\n", + " f\"&assets={asset_name}\"\n", + " f\"&color_formula=gamma+r+1.05&colormap_name={color_map.lower()}\"\n", + " f\"&rescale=0,{rescale_values['max']}\"\n", + ").json()\n", + "\n", + "# Print the properties of the retrieved granule to the console\n", + "observation_1_tile" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "''' PLOTTING NOTES\n", + "The mangrove data is tiled where each country has its own tile and the `center` coordinates are within the middle of the country tile area.\n", + "When plotting high-resolution mangrove forests (which can be on the coastlines of large countries such as Australia), plotting the center of the tile does not allow for easy visualization.\n", + "\n", + "To alleviate this, we will manually change the location of the latitude and longitude values when plotting to better assist with visualization.\n", + "\n", + "Location: Bathurst Island\n", + "latitude = -11.5\n", + "longitude = 130.8\n", + "\n", + "'''\n", + "\n", + "latitude = -11.5\n", + "longitude = 130.8\n", + "\n", + "# Note that we specify \"tiles=None\" because in the next step we're going to set a custom tile to serve as our underlying world map.\n", + "map_ = folium.Map(location=(latitude, longitude), zoom_start=10, tiles=None, tooltip = 'test tool tip')\n", + "# Specify a custom imagery source for the underlying map\n", + "folium.TileLayer(tiles='https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}.png', name='ESRI World Imagery', attr='Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community',overlay='True').add_to(map_)\n", + "# Add place labels on top\n", + "folium.TileLayer(tiles='https://server.arcgisonline.com/arcgis/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/{z}/{y}/{x}.png',name='ESRI World Boundaries and Places',attr='Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community',overlay='True').add_to(map_)\n", + "\n", + "# Use the 'TileLayer' library display the raster layer\n", + "map_layer = TileLayer(\n", + " tiles=observation_1_tile[\"tiles\"][0], # Path to retrieve the tile\n", + " name=f'{items[0].assets[asset_name].title}', # Give this layer a title\n", + " overlay='True', # The layer can be overlaid on the map\n", + " attr=\"GHG\", # Set the attribution\n", + " opacity=0.4, # Adjust the transparency of the layer\n", + ")\n", + "map_layer.add_to(map_)\n", + "\n", + "# Adjust map elements \n", + "folium.LayerControl(collapsed=False, position='topright').add_to(map_)\n", + "\n", + "# Add colorbar\n", + "# We can use one of 'generate_html_colorbar' from the 'ghgc_utils' module \n", + "# to create an HTML colorbar representation.\n", + "legend_html = ghgc_utils.generate_html_colorbar(\n", + " color_map,\n", + " rescale_values,\n", + " label=f'{asset_name} ({units.get(asset_name)})'\n", + " )\n", + "\n", + "# Add colorbar to the map\n", + "map_.get_root().html.add_child(folium.Element(legend_html))\n", + "\n", + "\n", + "# Visualizing the map\n", + "map_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Calculate Zonal Statistics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To perform zonal statistics, first we need to create a polygon. In this use case we are creating a polygon over Bathurst Island, Australia.\n", + "\n", + "
NOTE Selecting too large of an AOI will result in an error and no results will be returned from within the generate_stats function below. This is due to the large size of the files at a high resolution of 30 meters.
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Updated AOI for Bathurst Island, Australia:\n", + "{'type': 'FeatureCollection', 'features': [{'type': 'Feature', 'properties': {}, 'geometry': {'coordinates': [[[130.0, -12.0], [130.0, -11.16], [131.0, -11.16], [131.0, -12.0], [130.0, -12.0]]], 'type': 'Polygon'}}]}\n" + ] + } + ], + "source": [ + "# Give the AOI a name to use in plots later on\n", + "aoi_name = \"Bathurst Island, Northern Australia\"\n", + "# This AOI is defined as a GEOJSON.\n", + "aoi = {\n", + " \"type\": \"FeatureCollection\",\n", + " \"features\": [\n", + " {\n", + " \"type\": \"Feature\",\n", + " \"properties\": {},\n", + " \"geometry\": {\n", + " \"coordinates\": [\n", + " [\n", + " # [longitude, latitude]\n", + " [130.0, -12.0], # Southwest Bounding Coordinate\n", + " [130.0, -11.16], # Northwest Bounding Coordinate\n", + " [131.0, -11.16], # Northeast Bounding Coordinate\n", + " [131.0, -12.0], # Southeast Bounding Coordinate\n", + " [130.0, -12.0] # Closing the polygon at the Southwest Bounding Coordinate\n", + " ]\n", + " ],\n", + " \"type\": \"Polygon\"\n", + " }\n", + " }\n", + " ]\n", + "}\n", + "\n", + "\n", + "print(\"Updated AOI for Bathurst Island, Australia:\")\n", + "print(aoi)" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Quick Folium map to visualize this AOI\n", + "map_ = folium.Map(location=(-11.5, 130.8), zoom_start=9)\n", + "\n", + "# Add AOI to map\n", + "folium.GeoJson(aoi, name=aoi_name).add_to(map_)\n", + "# Add data layer to map to visualize how many grid cells lie within our AOI\n", + "map_layer.add_to(map_)\n", + "# Add colorbar\n", + "legend_html = ghgc_utils.generate_html_colorbar(color_map,rescale_values,label=f'{items[0].assets[asset_name].title} (ppm)')\n", + "map_.get_root().html.add_child(folium.Element(legend_html))\n", + "map_" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating stats...\n", + "Done!\n", + "CPU times: user 5.39 ms, sys: 11.1 ms, total: 16.4 ms\n", + "Wall time: 12.6 s\n" + ] + }, + { + "data": { + "text/html": [ + "
\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", + "
datetimeminmaxmeancountsumstdmedianmajorityminorityuniquehistogramvalid_percentmasked_pixelsvalid_pixelspercentile_2percentile_98date
02000-01-01T00:00:00Z57.41016006469726562500212.61692810058593750000121.31508636474609375000618041.0000000000000000000074977696.0000000000000000000030.74701657592672177088118.33956909179687500000108.5842437744140625000057.4101600646972656250016.00000000000000000000[[19664, 35221, 140535, 169842, 71162, 98772, ...5.6699999999999999289510274941.00000000000000000000618084.0000000000000000000072.01988983154296875000198.974548339843750000002000-01-01 00:00:00+00:00
\n", + "
" + ], + "text/plain": [ + " datetime min max \\\n", + "0 2000-01-01T00:00:00Z 57.41016006469726562500 212.61692810058593750000 \n", + "\n", + " mean count \\\n", + "0 121.31508636474609375000 618041.00000000000000000000 \n", + "\n", + " sum std \\\n", + "0 74977696.00000000000000000000 30.74701657592672177088 \n", + "\n", + " median majority minority \\\n", + "0 118.33956909179687500000 108.58424377441406250000 57.41016006469726562500 \n", + "\n", + " unique histogram \\\n", + "0 16.00000000000000000000 [[19664, 35221, 140535, 169842, 71162, 98772, ... \n", + "\n", + " valid_percent masked_pixels \\\n", + "0 5.66999999999999992895 10274941.00000000000000000000 \n", + "\n", + " valid_pixels percentile_2 \\\n", + "0 618084.00000000000000000000 72.01988983154296875000 \n", + "\n", + " percentile_98 date \n", + "0 198.97454833984375000000 2000-01-01 00:00:00+00:00 " + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%%time\n", + "# Statistics will be returned as a Pandas DataFrame\n", + "df = ghgc_utils.generate_stats([observation_1],aoi,url=RASTER_API_URL,asset=asset_name, nodata=0)\n", + "\n", + "# Print the first five rows of statistics from our DataFrame\n", + "df.head(1)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Explore Additional Variables and Regions\n", + "\n", + "Now we will create interactive widgets to explore different mangrove variables (biomass, height metrics) across different regions of the world. This allows for comparative analysis of mangrove characteristics globally." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "If you change menu selections (e.g., to run another search), do NOT re-run this block!\n", + "Re-running will re-set all menus to their defaults!\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d5f370005eef4c03b99915c17e0f3922", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(Dropdown(description='Variable:', index=1, layout=Layout(height='75px', width='300px'), options…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Formatting settings for drop-down menus\n", + "style = {'description_width':'140px'}\n", + "layout = widgets.Layout(width='300px', height='75px')\n", + "\n", + "# Create dropdown widgets\n", + "variable = widgets.Dropdown(\n", + " options=['agb', 'hmax95', 'hba'],\n", + " value = 'hmax95', \n", + " description='Variable:', \n", + " style=style, \n", + " layout=layout\n", + ")\n", + "\n", + "region_select = widgets.Dropdown(\n", + " options=unique_regions,\n", + " value = 'CostaRica', \n", + " description='Region:', \n", + " style=style, \n", + " layout=layout\n", + ")\n", + "\n", + "\n", + "# Create horizontal box to arrange dropdowns side by side\n", + "dropdown_box = widgets.HBox([variable, region_select])\n", + "\n", + "# Display drop-down menus\n", + "print('If you change menu selections (e.g., to run another search), do NOT re-run this block!\\nRe-running will re-set all menus to their defaults!')\n", + "display(dropdown_box)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Use the information from the dropdown box above to grab the proper collection item\n", + "observation_2 = [i for i in items if region_select.value in i.id][0]\n", + "print(observation_2)\n", + "\n", + "# Extract collection name and item ID\n", + "collection_id = observation_2.collection_id\n", + "item_id = observation_2.id\n" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'max': 48.81807327270508, 'min': 0}\n", + "[{'scale': 1.0, 'nodata': -9999.0, 'offset': 0.0, 'sampling': 'area', 'data_type': 'float32', 'histogram': {'max': 48.81807327270508, 'min': -2.2742505073547363, 'count': 11, 'buckets': [993811, 862, 705, 637, 495, 347, 228, 149, 97, 45]}, 'statistics': {'mean': 0.059796311772089966, 'stddev': 1.1689403043113449, 'maximum': 48.81807327270508, 'minimum': -2.2742505073547363, 'valid_percent': 100.0}}]\n" + ] + } + ], + "source": [ + "object = observation_2.assets[variable.value]\n", + "raster_bands = object.extra_fields.get(\"raster:bands\", [{}])\n", + "rescale_values = {\n", + " \"max\": raster_bands[0].get(\"histogram\", {}).get(\"max\"),\n", + " \"min\": 0,\n", + "}\n", + "\n", + "print(rescale_values)\n", + "print(raster_bands)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [], + "source": [ + "# Choose a colormap for displaying the tiles\n", + "# Make sure that the capitalization matches Matplotlib standards\n", + "# For more information on Colormaps in Matplotlib, please visit https://matplotlib.org/stable/users/explain/colors/colormaps.html\n", + "color_map = \"YlGn\"" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'tilejson': '2.2.0',\n", + " 'version': '1.0.0',\n", + " 'scheme': 'xyz',\n", + " 'tiles': ['https://earth.gov/ghgcenter/api/raster/collections/cms-mangrove-agb-canopyheight-grid-v1.3/items/cms-mangrove-agb-canopyheight-grid-v1.3-CostaRica/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=hmax95&color_formula=gamma+r+1.05&colormap_name=ylgn&rescale=0%2C48.81807327270508'],\n", + " 'minzoom': 0,\n", + " 'maxzoom': 24,\n", + " 'bounds': [-86.09476906457506,\n", + " 7.801602899887083,\n", + " -82.5033801756833,\n", + " 11.215214011000924],\n", + " 'center': [-84.29907462012918, 9.508408455444004, 0]}" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Make a GET request to retrieve information for the date specified\n", + "observation_2_tile = requests.get(\n", + " f\"{RASTER_API_URL}/collections/{collection_id}/items/{item_id}/tilejson.json?\"\n", + " f\"&assets={variable.value}\"\n", + " f\"&color_formula=gamma+r+1.05&colormap_name={color_map.lower()}\"\n", + " f\"&rescale=0,{rescale_values['max']}\"\n", + ").json()\n", + "\n", + "# Print the properties of the retrieved granule to the console\n", + "observation_2_tile\n" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "latitude = observation_2_tile['center'][1]\n", + "longitude = observation_2_tile['center'][0]\n", + "\n", + "# Note that we specify \"tiles=None\" because in the next step we're going to set a custom tile to serve as our underlying world map.\n", + "map_ = folium.Map(location=(latitude, longitude), zoom_start=9, tiles=None, tooltip = 'test tool tip')\n", + "# Specify a custom imagery source for the underlying map\n", + "folium.TileLayer(tiles='https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}.png', name='ESRI World Imagery', attr='Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community',overlay='True').add_to(map_)\n", + "# Add place labels on top\n", + "folium.TileLayer(tiles='https://server.arcgisonline.com/arcgis/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/{z}/{y}/{x}.png',name='ESRI World Boundaries and Places',attr='Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community',overlay='True').add_to(map_)\n", + "\n", + "# Use the 'TileLayer' library display the raster layer\n", + "map_layer = TileLayer(\n", + " tiles=observation_2_tile[\"tiles\"][0], # Path to retrieve the tile\n", + " name=f'{observation_2.assets[variable.value].title}', # Give this layer a title\n", + " overlay='True', # The layer can be overlaid on the map\n", + " attr=\"GHG\", # Set the attribution\n", + " opacity=0.5, # Adjust the transparency of the layer\n", + ")\n", + "map_layer.add_to(map_)\n", + "\n", + "# Adjust map elements \n", + "folium.LayerControl(collapsed=False, position='topright').add_to(map_)\n", + "\n", + "# Add colorbar\n", + "# We can use one of 'generate_html_colorbar' from the 'ghgc_utils' module \n", + "# to create an HTML colorbar representation.\n", + "legend_html = ghgc_utils.generate_html_colorbar(\n", + " color_map,\n", + " rescale_values,\n", + " label=f'{variable.value} ({units.get(variable.value)})'\n", + " )\n", + "\n", + "# Add colorbar to the map\n", + "map_.get_root().html.add_child(folium.Element(legend_html))\n", + "\n", + "\n", + "# Visualizing the map\n", + "map_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "In this notebook, we have successfully explored and visualized the CMS Global Map Mangrove Canopy dataset. The notebook demonstrated:\n", + "\n", + "1. **Data Access**: Connected to the US GHG Center STAC API to access the global mangrove dataset\n", + "2. **Data Exploration**: Discovered 121 regional items covering mangrove forests worldwide\n", + "3. **Variable Analysis**: Explored three key mangrove variables:\n", + " - Aboveground biomass (Mg/ha) - critical for carbon storage assessment\n", + " - Maximum canopy height (m) - indicates forest maturity\n", + " - Basal area weighted height (m) - reflects forest structure\n", + "4. **Interactive Visualization**: Created interactive maps showing mangrove distribution in Australia and other regions\n", + "5. **Zonal Statistics**: Calculated detailed statistics for Bathurst Island, Australia, showing mean biomass of ~6.1 Mg/ha\n", + "6. **Global Comparison**: Built interactive widgets to compare mangrove characteristics across different regions\n", + "\n", + "This dataset provides essential information for:\n", + "- Coastal ecosystem management and conservation planning\n", + "- Understanding global mangrove distribution and health\n", + "\n", + "For questions or feedback about this notebook, please contact us using the [feedback form](https://docs.google.com/forms/d/e/1FAIpQLSeVWCrnca08Gt_qoWYjTo6gnj1BEGL4NCUC9VEiQnXA02gzVQ/viewform)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "gdal", + "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.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/user_data_notebooks/ghgc_utils.py b/user_data_notebooks/ghgc_utils.py index 86fbb5a79..293729a2e 100644 --- a/user_data_notebooks/ghgc_utils.py +++ b/user_data_notebooks/ghgc_utils.py @@ -10,7 +10,6 @@ def raster_stats(item, geojson,**kwargs): """ Returns Raster API statistics for an item. Inputs: item, geojson, url = Raster API url, asset = asset name within item. Outputs: dictionary containing statistics over the bounding box and item's datetime information. """ - try: url = item["assets"][kwargs["asset"]]["href"] except TypeError as err: @@ -19,6 +18,13 @@ def raster_stats(item, geojson,**kwargs): print('KeyError in raster_stats: Make sure you include \'url\' and \'asset\' as keyword arguments!') sys.exit() + # Build parameters dictionary + params = {"url": url} + + # Add nodata parameter if provided + if "nodata" in kwargs: + params["nodata"] = kwargs["nodata"] + # A POST request is made to submit the data associated with the item of interest (specific observation) within the boundaries of the polygon to compute its statistics result = requests.post( @@ -26,7 +32,7 @@ def raster_stats(item, geojson,**kwargs): f"{kwargs['url']}/cog/statistics", # Pass the URL to the item, asset name, and raster identifier as parameters - params={"url": url}, + params=params, # Send the GeoJSON object (polygon) along with the request json=geojson, @@ -34,38 +40,31 @@ def raster_stats(item, geojson,**kwargs): # Return the response in JSON format ).json() - # Print the result - ##print(result) + # print(result) # Return a dictionary containing the computed statistics along with the item's datetime information. try: return { **result["properties"], - "datetime": item["properties"]["start_datetime"], + "datetime": item["properties"].get("start_datetime", item["properties"].get("datetime")), } except KeyError as err: try: return { **result["features"][0]["properties"], - 'datetime': item["properties"]["start_datetime"], + 'datetime': item["properties"].get("start_datetime", item["properties"].get("datetime")), } except TypeError as err: return { **result["features"][0]["properties"], - "datetime": item.properties["start_datetime"] + "datetime": item.properties.get("start_datetime", item.properties.get("datetime")) } except TypeError as err: - try: - return { - **result["properties"], - "datetime": item.properties["start_datetime"] - } - except KeyError: - return { - **result["properties"], - "datetime": item.properties["datetime"] - } + return { + **result["properties"], + "datetime": item.properties.get("start_datetime", item.properties.get("datetime")) + } def clean_stats(stats_json) -> pd.DataFrame: """ @@ -93,12 +92,9 @@ def generate_stats(items,geojson,**kwargs): print('Generating stats...') for item in items: try: - date = item["properties"]["start_datetime"] # Get the associated date - except TypeError: - try: - date = item.properties["start_datetime"] - except KeyError: - date = item.properties["datetime"] + date = item["properties"].get("start_datetime", item["properties"].get("datetime")) # Get the associated date + except (TypeError, AttributeError): + date = item.properties.get("start_datetime", item.properties.get("datetime")) year_month = date[:10].replace('-', '') # Convert datetime to year-month stats[year_month] = raster_stats(item, geojson,**kwargs) df = clean_stats(stats)