From 518cc3a9268d2c86686de8ee86facb620f4ba386 Mon Sep 17 00:00:00 2001 From: mathvansoest Date: Wed, 15 Jan 2025 11:39:59 +0100 Subject: [PATCH 1/8] Fixed pop_stats_LAU, ready to go to the STAC --- notebooks/26_pp_stats.ipynb | 1271 +++++++++++++++++++++++++++++++++++ 1 file changed, 1271 insertions(+) create mode 100644 notebooks/26_pp_stats.ipynb diff --git a/notebooks/26_pp_stats.ipynb b/notebooks/26_pp_stats.ipynb new file mode 100644 index 0000000000..022459c245 --- /dev/null +++ b/notebooks/26_pp_stats.ipynb @@ -0,0 +1,1271 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Population projections statistics\n", + "\n", + "Notebook environment to migrate TIF files to CF compliant CoG" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Import standard packages\n", + "import os\n", + "import glob\n", + "import pathlib\n", + "import sys\n", + "import numpy as np\n", + "import geopandas as gpd\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import xarray as xr\n", + "from dotenv import load_dotenv\n", + "import math\n", + "from pathlib import Path\n", + "from typing import Any, Dict, List, Optional, Tuple, Union\n", + "import rioxarray as rio\n", + "#load_dotenv()\n", + "\n", + "# Import custom functionality\n", + "from coclicodata.drive_config import p_drive\n", + "from coclicodata.etl.cf_compliancy_checker import check_compliancy, save_compliancy\n", + "from coastmonitor.io.utils import name_block\n", + "\n", + "# Define (local and) remote drives\n", + "coclico_data_dir = p_drive.joinpath(\"11207608-coclico\", \"FULLTRACK_DATA\")\n", + "\n", + "# Workaround to the Windows OS (10) udunits error after installation of cfchecker: https://github.com/SciTools/iris/issues/404\n", + "os.environ[\"UDUNITS2_XML_PATH\"] = str(\n", + " pathlib.Path().home().joinpath( # change to the udunits2.xml file dir in your Python installation\n", + " r\"Anaconda3\\pkgs\\udunits2-2.2.28-h892ecd3_0\\Library\\share\\udunits\\udunits2.xml\"\n", + " )\n", + ")\n", + "\n", + "# use local or remote data dir\n", + "use_local_data = False\n", + "ds_dirname = \"WP5\"\n", + "\n", + "if use_local_data: \n", + " ds_dir = pathlib.Path().home().joinpath(\"data\", ds_dirname)\n", + "else: \n", + " ds_dir = coclico_data_dir.joinpath(ds_dirname, \"data\", \"pop_fp_statistics\")\n", + "\n", + "if not ds_dir.exists():\n", + " raise FileNotFoundError(\"Directory with data does not exist.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2010.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2030.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2050.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2100.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2150.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2010.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2030.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2050.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2100.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2150.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2010.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2030.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2050.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2100.csv'),\n", + " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2150.csv')]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# List all .csv files from ds_dir\n", + "csv_files = list(ds_dir.glob(\"*.csv\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['year', 'pop_scenario', 'tot_pop',\n", + " 'HIGH_DEFENDED_MAPS_Mean_spring_tide_B01',\n", + " 'HIGH_DEFENDED_MAPS_RP_1000_B01', 'HIGH_DEFENDED_MAPS_RP_100_B01',\n", + " 'HIGH_DEFENDED_MAPS_RP_1_B01', 'LOW_DEFENDED_MAPS_Mean_spring_tide_B01',\n", + " 'LOW_DEFENDED_MAPS_RP_1000_B01', 'LOW_DEFENDED_MAPS_RP_100_B01',\n", + " 'LOW_DEFENDED_MAPS_RP_1_B01', 'UNDEFENDED_MAPS_Mean_spring_tide_B01',\n", + " 'UNDEFENDED_MAPS_RP_1000_B01', 'UNDEFENDED_MAPS_RP_100_B01',\n", + " 'UNDEFENDED_MAPS_RP_1_B01'],\n", + " dtype='object')\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", + " \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", + " \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", + "
idUnnamed: 0LAU_nameGISCO_IDCNTR_CODEnuts2nuts3LAU_IDyearpop_scenario...HIGH_DEFENDED_MAPS_RP_100_B01HIGH_DEFENDED_MAPS_RP_1_B01LOW_DEFENDED_MAPS_Mean_spring_tide_B01LOW_DEFENDED_MAPS_RP_1000_B01LOW_DEFENDED_MAPS_RP_100_B01LOW_DEFENDED_MAPS_RP_1_B01UNDEFENDED_MAPS_Mean_spring_tide_B01UNDEFENDED_MAPS_RP_1000_B01UNDEFENDED_MAPS_RP_100_B01UNDEFENDED_MAPS_RP_1_B01
0759759BakarHR_00043HRHR03HR031000432010SSP1...NaNNaNNaNNaNNaNNaN0.0000000.0000000.0000000.000000
1760760BakarHR_00043HRHR03HR031000432010SSP1...NaNNaNNaN0.000000NaNNaNNaNNaNNaNNaN
2761761BakarHR_00043HRHR03HR031000432010SSP1...NaNNaN0.0NaNNaNNaNNaNNaNNaNNaN
3762762BakarHR_00043HRHR03HR031000432010SSP1...NaNNaNNaNNaN0.0NaNNaNNaNNaNNaN
4763763BakarHR_00043HRHR03HR031000432010SSP1...NaN0.0NaNNaNNaN0.0NaNNaNNaNNaN
..................................................................
59931468376923MonmouthshireUK_W06000021UKUKL2UKL21W060000212010SSP5...NaNNaNNaN4.100625NaNNaNNaNNaNNaNNaN
59932472667352NewportUK_W06000022UKUKL2UKL21W060000222010SSP5...NaNNaNNaN50.677500NaNNaNNaNNaNNaNNaN
59933472677353NewportUK_W06000022UKUKL2UKL21W060000222010SSP5...NaNNaNNaNNaNNaNNaN2381.2406258672.8806256955.3812503738.029375
59934485458631PowysUK_W06000023UKUKL2UKL24W060000232010SSP5...NaNNaNNaNNaNNaNNaN0.64750015.43375010.2506252.530625
59935485468632PowysUK_W06000023UKUKL2UKL24W060000232010SSP5...NaNNaNNaN0.000000NaNNaNNaNNaNNaNNaN
\n", + "

59936 rows × 23 columns

\n", + "
" + ], + "text/plain": [ + " id Unnamed: 0 LAU_name GISCO_ID CNTR_CODE nuts2 nuts3 \\\n", + "0 759 759 Bakar HR_00043 HR HR03 HR031 \n", + "1 760 760 Bakar HR_00043 HR HR03 HR031 \n", + "2 761 761 Bakar HR_00043 HR HR03 HR031 \n", + "3 762 762 Bakar HR_00043 HR HR03 HR031 \n", + "4 763 763 Bakar HR_00043 HR HR03 HR031 \n", + "... ... ... ... ... ... ... ... \n", + "59931 46837 6923 Monmouthshire UK_W06000021 UK UKL2 UKL21 \n", + "59932 47266 7352 Newport UK_W06000022 UK UKL2 UKL21 \n", + "59933 47267 7353 Newport UK_W06000022 UK UKL2 UKL21 \n", + "59934 48545 8631 Powys UK_W06000023 UK UKL2 UKL24 \n", + "59935 48546 8632 Powys UK_W06000023 UK UKL2 UKL24 \n", + "\n", + " LAU_ID year pop_scenario ... HIGH_DEFENDED_MAPS_RP_100_B01 \\\n", + "0 00043 2010 SSP1 ... NaN \n", + "1 00043 2010 SSP1 ... NaN \n", + "2 00043 2010 SSP1 ... NaN \n", + "3 00043 2010 SSP1 ... NaN \n", + "4 00043 2010 SSP1 ... NaN \n", + "... ... ... ... ... ... \n", + "59931 W06000021 2010 SSP5 ... NaN \n", + "59932 W06000022 2010 SSP5 ... NaN \n", + "59933 W06000022 2010 SSP5 ... NaN \n", + "59934 W06000023 2010 SSP5 ... NaN \n", + "59935 W06000023 2010 SSP5 ... NaN \n", + "\n", + " HIGH_DEFENDED_MAPS_RP_1_B01 LOW_DEFENDED_MAPS_Mean_spring_tide_B01 \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN 0.0 \n", + "3 NaN NaN \n", + "4 0.0 NaN \n", + "... ... ... \n", + "59931 NaN NaN \n", + "59932 NaN NaN \n", + "59933 NaN NaN \n", + "59934 NaN NaN \n", + "59935 NaN NaN \n", + "\n", + " LOW_DEFENDED_MAPS_RP_1000_B01 LOW_DEFENDED_MAPS_RP_100_B01 \\\n", + "0 NaN NaN \n", + "1 0.000000 NaN \n", + "2 NaN NaN \n", + "3 NaN 0.0 \n", + "4 NaN NaN \n", + "... ... ... \n", + "59931 4.100625 NaN \n", + "59932 50.677500 NaN \n", + "59933 NaN NaN \n", + "59934 NaN NaN \n", + "59935 0.000000 NaN \n", + "\n", + " LOW_DEFENDED_MAPS_RP_1_B01 UNDEFENDED_MAPS_Mean_spring_tide_B01 \\\n", + "0 NaN 0.000000 \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 0.0 NaN \n", + "... ... ... \n", + "59931 NaN NaN \n", + "59932 NaN NaN \n", + "59933 NaN 2381.240625 \n", + "59934 NaN 0.647500 \n", + "59935 NaN NaN \n", + "\n", + " UNDEFENDED_MAPS_RP_1000_B01 UNDEFENDED_MAPS_RP_100_B01 \\\n", + "0 0.000000 0.000000 \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "59931 NaN NaN \n", + "59932 NaN NaN \n", + "59933 8672.880625 6955.381250 \n", + "59934 15.433750 10.250625 \n", + "59935 NaN NaN \n", + "\n", + " UNDEFENDED_MAPS_RP_1_B01 \n", + "0 0.000000 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "59931 NaN \n", + "59932 NaN \n", + "59933 3738.029375 \n", + "59934 2.530625 \n", + "59935 NaN \n", + "\n", + "[59936 rows x 23 columns]" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Open first csv file to check\n", + "csv_file = csv_files[0]\n", + "df = pd.read_csv(csv_file, sep = \";\")\n", + "\n", + "# Print all columns\n", + "print(df.columns[8:])\n", + "\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "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", + " \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", + "
GISCO_IDCNTR_CODEnuts_2nuts_3LAU_IDLAU_NAMEPOP_2020POP_DENS_2AREA_KM2YEARFIDgeometry
1192DE_03361001DEDE93DE93B03361001Achim, Stadt31923.0471.39877167.7197352020DE_03361001POLYGON ((4258927.295 3320011.519, 4259193.583...
1193DE_03361002DEDE93DE93B03361002Blender2885.075.03464038.4489082020DE_03361002POLYGON ((4264556.862 3317435.819, 4265677.354...
1195DE_03361003DEDE93DE93B03361003Dörverden9009.0107.94090883.4623332020DE_03361003POLYGON ((4275479.269 3295636.790, 4275328.930...
1196DE_03361004DEDE93DE93B03361004Emtinghausen1464.068.57384621.3492472020DE_03361004POLYGON ((4250468.027 3309420.666, 4250432.180...
1197DE_03361005DEDE93DE93B03361005Kirchlinteln9911.056.675823174.8717442020DE_03361005POLYGON ((4272425.673 3310568.711, 4274136.202...
.......................................
97667FR_97614FRFRY5FRY5097614Ouangani10203.0555.83878618.3560422020FR_97614POLYGON ((8727685.023 -2785490.190, 8727139.84...
97669FR_97616FRFRY5FRY5097616Sada11156.01012.64308611.0167152020FR_97616POLYGON ((8727114.505 -2787670.745, 8725517.75...
97670FR_97617FRFRY5FRY5097617Tsingoni13934.0406.42821334.2840372020FR_97617POLYGON ((8730964.436 -2773602.954, 8730972.75...
97660FR_97608FRFRY5FRY5097608Dzaoudzi17831.02797.9745666.3728242020FR_97608MULTIPOLYGON (((8745852.102 -2769772.861, 8742...
97668FR_97615FRFRY5FRY5097615Pamandzi11442.02619.6904804.3676922020FR_97615POLYGON ((8745852.102 -2769772.861, 8745849.32...
\n", + "

11965 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " GISCO_ID CNTR_CODE nuts_2 nuts_3 LAU_ID LAU_NAME POP_2020 \\\n", + "1192 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "1193 DE_03361002 DE DE93 DE93B 03361002 Blender 2885.0 \n", + "1195 DE_03361003 DE DE93 DE93B 03361003 Dörverden 9009.0 \n", + "1196 DE_03361004 DE DE93 DE93B 03361004 Emtinghausen 1464.0 \n", + "1197 DE_03361005 DE DE93 DE93B 03361005 Kirchlinteln 9911.0 \n", + "... ... ... ... ... ... ... ... \n", + "97667 FR_97614 FR FRY5 FRY50 97614 Ouangani 10203.0 \n", + "97669 FR_97616 FR FRY5 FRY50 97616 Sada 11156.0 \n", + "97670 FR_97617 FR FRY5 FRY50 97617 Tsingoni 13934.0 \n", + "97660 FR_97608 FR FRY5 FRY50 97608 Dzaoudzi 17831.0 \n", + "97668 FR_97615 FR FRY5 FRY50 97615 Pamandzi 11442.0 \n", + "\n", + " POP_DENS_2 AREA_KM2 YEAR FID \\\n", + "1192 471.398771 67.719735 2020 DE_03361001 \n", + "1193 75.034640 38.448908 2020 DE_03361002 \n", + "1195 107.940908 83.462333 2020 DE_03361003 \n", + "1196 68.573846 21.349247 2020 DE_03361004 \n", + "1197 56.675823 174.871744 2020 DE_03361005 \n", + "... ... ... ... ... \n", + "97667 555.838786 18.356042 2020 FR_97614 \n", + "97669 1012.643086 11.016715 2020 FR_97616 \n", + "97670 406.428213 34.284037 2020 FR_97617 \n", + "97660 2797.974566 6.372824 2020 FR_97608 \n", + "97668 2619.690480 4.367692 2020 FR_97615 \n", + "\n", + " geometry \n", + "1192 POLYGON ((4258927.295 3320011.519, 4259193.583... \n", + "1193 POLYGON ((4264556.862 3317435.819, 4265677.354... \n", + "1195 POLYGON ((4275479.269 3295636.790, 4275328.930... \n", + "1196 POLYGON ((4250468.027 3309420.666, 4250432.180... \n", + "1197 POLYGON ((4272425.673 3310568.711, 4274136.202... \n", + "... ... \n", + "97667 POLYGON ((8727685.023 -2785490.190, 8727139.84... \n", + "97669 POLYGON ((8727114.505 -2787670.745, 8725517.75... \n", + "97670 POLYGON ((8730964.436 -2773602.954, 8730972.75... \n", + "97660 MULTIPOLYGON (((8745852.102 -2769772.861, 8742... \n", + "97668 POLYGON ((8745852.102 -2769772.861, 8745849.32... \n", + "\n", + "[11965 rows x 12 columns]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Load LAU's from parquet\n", + "LAU = gpd.read_parquet(r'p:\\11207608-coclico\\FULLTRACK_DATA\\WP4\\LAU_stats\\LAU_2020_NUTS_2021_01M_3035_CM.parquet')\n", + "LAU" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "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", + " \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", + " \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", + "
GISCO_IDCNTR_CODEnuts_2nuts_3LAU_IDLAU_NAMEPOP_2020POP_DENS_2AREA_KM2YEAR...HIGH_DEFENDED_MAPS_RP_100_B01HIGH_DEFENDED_MAPS_RP_1_B01LOW_DEFENDED_MAPS_Mean_spring_tide_B01LOW_DEFENDED_MAPS_RP_1000_B01LOW_DEFENDED_MAPS_RP_100_B01LOW_DEFENDED_MAPS_RP_1_B01UNDEFENDED_MAPS_Mean_spring_tide_B01UNDEFENDED_MAPS_RP_1000_B01UNDEFENDED_MAPS_RP_100_B01UNDEFENDED_MAPS_RP_1_B01
0DE_03361001DEDE93DE93B03361001Achim, Stadt31923.0471.39877167.7197352020...NaNNaNNaNNaNNaNNaN0.4451.3351.3351.5575
1DE_03361001DEDE93DE93B03361001Achim, Stadt31923.0471.39877167.7197352020...NaNNaNNaN1.33500NaNNaNNaNNaNNaNNaN
2DE_03361001DEDE93DE93B03361001Achim, Stadt31923.0471.39877167.7197352020...NaNNaNNaNNaN1.33500NaNNaNNaNNaNNaN
3DE_03361001DEDE93DE93B03361001Achim, Stadt31923.0471.39877167.7197352020...NaN1.55750NaNNaNNaN1.55750NaNNaNNaNNaN
4DE_03361001DEDE93DE93B03361001Achim, Stadt31923.0471.39877167.7197352020...1.33500NaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
61059SE_0980SESE21SE2140980Gotland59686.018.7807203178.0463512020...NaN0.01125NaNNaNNaN0.01125NaNNaNNaNNaN
61060SE_0980SESE21SE2140980Gotland59686.018.7807203178.0463512020...NaNNaNNaN0.00875NaNNaNNaNNaNNaNNaN
61061SE_0980SESE21SE2140980Gotland59686.018.7807203178.0463512020...NaNNaNNaNNaN0.00875NaNNaNNaNNaNNaN
61062SE_0980SESE21SE2140980Gotland59686.018.7807203178.0463512020...0.00875NaNNaNNaNNaNNaNNaNNaNNaNNaN
61063SE_0980SESE21SE2140980Gotland59686.018.7807203178.0463512020...NaNNaN0.0075NaNNaNNaNNaNNaNNaNNaN
\n", + "

61064 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " GISCO_ID CNTR_CODE nuts_2 nuts_3 LAU_ID LAU_NAME POP_2020 \\\n", + "0 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "1 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "2 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "3 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "4 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "... ... ... ... ... ... ... ... \n", + "61059 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", + "61060 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", + "61061 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", + "61062 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", + "61063 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", + "\n", + " POP_DENS_2 AREA_KM2 YEAR ... HIGH_DEFENDED_MAPS_RP_100_B01 \\\n", + "0 471.398771 67.719735 2020 ... NaN \n", + "1 471.398771 67.719735 2020 ... NaN \n", + "2 471.398771 67.719735 2020 ... NaN \n", + "3 471.398771 67.719735 2020 ... NaN \n", + "4 471.398771 67.719735 2020 ... 1.33500 \n", + "... ... ... ... ... ... \n", + "61059 18.780720 3178.046351 2020 ... NaN \n", + "61060 18.780720 3178.046351 2020 ... NaN \n", + "61061 18.780720 3178.046351 2020 ... NaN \n", + "61062 18.780720 3178.046351 2020 ... 0.00875 \n", + "61063 18.780720 3178.046351 2020 ... NaN \n", + "\n", + " HIGH_DEFENDED_MAPS_RP_1_B01 LOW_DEFENDED_MAPS_Mean_spring_tide_B01 \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 1.55750 NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "61059 0.01125 NaN \n", + "61060 NaN NaN \n", + "61061 NaN NaN \n", + "61062 NaN NaN \n", + "61063 NaN 0.0075 \n", + "\n", + " LOW_DEFENDED_MAPS_RP_1000_B01 LOW_DEFENDED_MAPS_RP_100_B01 \\\n", + "0 NaN NaN \n", + "1 1.33500 NaN \n", + "2 NaN 1.33500 \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "61059 NaN NaN \n", + "61060 0.00875 NaN \n", + "61061 NaN 0.00875 \n", + "61062 NaN NaN \n", + "61063 NaN NaN \n", + "\n", + " LOW_DEFENDED_MAPS_RP_1_B01 UNDEFENDED_MAPS_Mean_spring_tide_B01 \\\n", + "0 NaN 0.445 \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 1.55750 NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "61059 0.01125 NaN \n", + "61060 NaN NaN \n", + "61061 NaN NaN \n", + "61062 NaN NaN \n", + "61063 NaN NaN \n", + "\n", + " UNDEFENDED_MAPS_RP_1000_B01 UNDEFENDED_MAPS_RP_100_B01 \\\n", + "0 1.335 1.335 \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "61059 NaN NaN \n", + "61060 NaN NaN \n", + "61061 NaN NaN \n", + "61062 NaN NaN \n", + "61063 NaN NaN \n", + "\n", + " UNDEFENDED_MAPS_RP_1_B01 \n", + "0 1.5575 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "61059 NaN \n", + "61060 NaN \n", + "61061 NaN \n", + "61062 NaN \n", + "61063 NaN \n", + "\n", + "[61064 rows x 27 columns]" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get the columns data of the df in the LAU, match by LAU_ID\n", + "\n", + "# Select only the new columns from the df\n", + "df_sel = df.iloc[:, 8:] \n", + "df_sel['LAU_ID'] = df['LAU_ID'] # Add LAU_ID to the df_sel\n", + "\n", + "# Perform a merge on the LAU_ID\n", + "LAU_stats = LAU.merge(df_sel, on='LAU_ID', how='inner')\n", + "\n", + "LAU_stats\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "coclico", + "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.11.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 0305ce86ecfe6b2756b28b149381a58d30f3d6d9 Mon Sep 17 00:00:00 2001 From: mathvansoest Date: Wed, 15 Jan 2025 11:40:40 +0100 Subject: [PATCH 2/8] Update pop stats notebook, Hedda will check for consistency --- notebooks/26_pp_stats.ipynb | 3867 ++++++++++++++++++++++++++++------- 1 file changed, 3119 insertions(+), 748 deletions(-) diff --git a/notebooks/26_pp_stats.ipynb b/notebooks/26_pp_stats.ipynb index 022459c245..f44c42e5ff 100644 --- a/notebooks/26_pp_stats.ipynb +++ b/notebooks/26_pp_stats.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -62,59 +62,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [ - { - "data": { - "text/plain": [ - "[WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2010.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2030.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2050.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2100.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_LAU_2150.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2010.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2030.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2050.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2100.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_national_2150.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2010.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2030.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2050.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2100.csv'),\n", - " WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/data/pop_fp_statistics/pop_fp_nuts2_2150.csv')]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# List all .csv files from ds_dir\n", - "csv_files = list(ds_dir.glob(\"*.csv\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['year', 'pop_scenario', 'tot_pop',\n", - " 'HIGH_DEFENDED_MAPS_Mean_spring_tide_B01',\n", - " 'HIGH_DEFENDED_MAPS_RP_1000_B01', 'HIGH_DEFENDED_MAPS_RP_100_B01',\n", - " 'HIGH_DEFENDED_MAPS_RP_1_B01', 'LOW_DEFENDED_MAPS_Mean_spring_tide_B01',\n", - " 'LOW_DEFENDED_MAPS_RP_1000_B01', 'LOW_DEFENDED_MAPS_RP_100_B01',\n", - " 'LOW_DEFENDED_MAPS_RP_1_B01', 'UNDEFENDED_MAPS_Mean_spring_tide_B01',\n", - " 'UNDEFENDED_MAPS_RP_1000_B01', 'UNDEFENDED_MAPS_RP_100_B01',\n", - " 'UNDEFENDED_MAPS_RP_1_B01'],\n", - " dtype='object')\n" - ] - }, { "data": { "text/html": [ @@ -136,71 +86,71 @@ " \n", " \n", " \n", - " id\n", - " Unnamed: 0\n", - " LAU_name\n", " GISCO_ID\n", " CNTR_CODE\n", - " nuts2\n", - " nuts3\n", + " nuts_2\n", + " nuts_3\n", " LAU_ID\n", - " year\n", - " pop_scenario\n", + " LAU_NAME\n", + " POP_2020\n", + " POP_DENS_2\n", + " AREA_KM2\n", + " YEAR\n", " ...\n", - " HIGH_DEFENDED_MAPS_RP_100_B01\n", - " HIGH_DEFENDED_MAPS_RP_1_B01\n", - " LOW_DEFENDED_MAPS_Mean_spring_tide_B01\n", - " LOW_DEFENDED_MAPS_RP_1000_B01\n", - " LOW_DEFENDED_MAPS_RP_100_B01\n", - " LOW_DEFENDED_MAPS_RP_1_B01\n", - " UNDEFENDED_MAPS_Mean_spring_tide_B01\n", - " UNDEFENDED_MAPS_RP_1000_B01\n", - " UNDEFENDED_MAPS_RP_100_B01\n", - " UNDEFENDED_MAPS_RP_1_B01\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + " UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + " UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + " UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + " tot_pop\\2150\\population_SSP1\n", + " tot_pop\\2150\\population_SSP2\n", + " tot_pop\\2150\\population_SSP5\n", " \n", " \n", " \n", " \n", " 0\n", - " 759\n", - " 759\n", - " Bakar\n", - " HR_00043\n", - " HR\n", - " HR03\n", - " HR031\n", - " 00043\n", - " 2010\n", - " SSP1\n", + " DE_03361001\n", + " DE\n", + " DE93\n", + " DE93B\n", + " 03361001\n", + " Achim, Stadt\n", + " 31923.0\n", + " 471.398771\n", + " 67.719735\n", + " 2020\n", " ...\n", " NaN\n", + " 0.144375\n", + " 0.179375\n", " NaN\n", " NaN\n", " NaN\n", - " NaN\n", - " NaN\n", - " 0.000000\n", - " 0.000000\n", - " 0.000000\n", - " 0.000000\n", + " 0.752165\n", + " 14295.223125\n", + " 17457.186875\n", + " 63640.814859\n", " \n", " \n", " 1\n", - " 760\n", - " 760\n", - " Bakar\n", - " HR_00043\n", - " HR\n", - " HR03\n", - " HR031\n", - " 00043\n", - " 2010\n", - " SSP1\n", + " DE_03361002\n", + " DE\n", + " DE93\n", + " DE93B\n", + " 03361002\n", + " Blender\n", + " 2885.0\n", + " 75.034640\n", + " 38.448908\n", + " 2020\n", " ...\n", " NaN\n", " NaN\n", " NaN\n", - " 0.000000\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -210,20 +160,20 @@ " \n", " \n", " 2\n", - " 761\n", - " 761\n", - " Bakar\n", - " HR_00043\n", - " HR\n", - " HR03\n", - " HR031\n", - " 00043\n", - " 2010\n", - " SSP1\n", + " DE_03361003\n", + " DE\n", + " DE93\n", + " DE93B\n", + " 03361003\n", + " Dörverden\n", + " 9009.0\n", + " 107.940908\n", + " 83.462333\n", + " 2020\n", " ...\n", " NaN\n", " NaN\n", - " 0.0\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -234,22 +184,22 @@ " \n", " \n", " 3\n", - " 762\n", - " 762\n", - " Bakar\n", - " HR_00043\n", - " HR\n", - " HR03\n", - " HR031\n", - " 00043\n", - " 2010\n", - " SSP1\n", + " DE_03361004\n", + " DE\n", + " DE93\n", + " DE93B\n", + " 03361004\n", + " Emtinghausen\n", + " 1464.0\n", + " 68.573846\n", + " 21.349247\n", + " 2020\n", " ...\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 0.0\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -258,23 +208,23 @@ " \n", " \n", " 4\n", - " 763\n", - " 763\n", - " Bakar\n", - " HR_00043\n", - " HR\n", - " HR03\n", - " HR031\n", - " 00043\n", - " 2010\n", - " SSP1\n", + " DE_03361005\n", + " DE\n", + " DE93\n", + " DE93B\n", + " 03361005\n", + " Kirchlinteln\n", + " 9911.0\n", + " 56.675823\n", + " 174.871744\n", + " 2020\n", " ...\n", " NaN\n", - " 0.0\n", " NaN\n", " NaN\n", " NaN\n", - " 0.0\n", + " NaN\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -305,65 +255,41 @@ " ...\n", " \n", " \n", - " 59931\n", - " 46837\n", - " 6923\n", - " Monmouthshire\n", - " UK_W06000021\n", - " UK\n", - " UKL2\n", - " UKL21\n", - " W06000021\n", - " 2010\n", - " SSP5\n", + " 11960\n", + " FR_97614\n", + " FR\n", + " FRY5\n", + " FRY50\n", + " 97614\n", + " Ouangani\n", + " 10203.0\n", + " 555.838786\n", + " 18.356042\n", + " 2020\n", " ...\n", " NaN\n", " NaN\n", " NaN\n", - " 4.100625\n", - " NaN\n", - " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " \n", - " \n", - " 59932\n", - " 47266\n", - " 7352\n", - " Newport\n", - " UK_W06000022\n", - " UK\n", - " UKL2\n", - " UKL21\n", - " W06000022\n", - " 2010\n", - " SSP5\n", - " ...\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 50.677500\n", - " NaN\n", - " NaN\n", - " NaN\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", - " 59933\n", - " 47267\n", - " 7353\n", - " Newport\n", - " UK_W06000022\n", - " UK\n", - " UKL2\n", - " UKL21\n", - " W06000022\n", - " 2010\n", - " SSP5\n", + " 11961\n", + " FR_97616\n", + " FR\n", + " FRY5\n", + " FRY50\n", + " 97616\n", + " Sada\n", + " 11156.0\n", + " 1012.643086\n", + " 11.016715\n", + " 2020\n", " ...\n", " NaN\n", " NaN\n", @@ -371,338 +297,13 @@ " NaN\n", " NaN\n", " NaN\n", - " 2381.240625\n", - " 8672.880625\n", - " 6955.381250\n", - " 3738.029375\n", - " \n", - " \n", - " 59934\n", - " 48545\n", - " 8631\n", - " Powys\n", - " UK_W06000023\n", - " UK\n", - " UKL2\n", - " UKL24\n", - " W06000023\n", - " 2010\n", - " SSP5\n", - " ...\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " NaN\n", - " NaN\n", - " 0.647500\n", - " 15.433750\n", - " 10.250625\n", - " 2.530625\n", " \n", " \n", - " 59935\n", - " 48546\n", - " 8632\n", - " Powys\n", - " UK_W06000023\n", - " UK\n", - " UKL2\n", - " UKL24\n", - " W06000023\n", - " 2010\n", - " SSP5\n", - " ...\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.000000\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " \n", - " \n", - "\n", - "

59936 rows × 23 columns

\n", - "" - ], - "text/plain": [ - " id Unnamed: 0 LAU_name GISCO_ID CNTR_CODE nuts2 nuts3 \\\n", - "0 759 759 Bakar HR_00043 HR HR03 HR031 \n", - "1 760 760 Bakar HR_00043 HR HR03 HR031 \n", - "2 761 761 Bakar HR_00043 HR HR03 HR031 \n", - "3 762 762 Bakar HR_00043 HR HR03 HR031 \n", - "4 763 763 Bakar HR_00043 HR HR03 HR031 \n", - "... ... ... ... ... ... ... ... \n", - "59931 46837 6923 Monmouthshire UK_W06000021 UK UKL2 UKL21 \n", - "59932 47266 7352 Newport UK_W06000022 UK UKL2 UKL21 \n", - "59933 47267 7353 Newport UK_W06000022 UK UKL2 UKL21 \n", - "59934 48545 8631 Powys UK_W06000023 UK UKL2 UKL24 \n", - "59935 48546 8632 Powys UK_W06000023 UK UKL2 UKL24 \n", - "\n", - " LAU_ID year pop_scenario ... HIGH_DEFENDED_MAPS_RP_100_B01 \\\n", - "0 00043 2010 SSP1 ... NaN \n", - "1 00043 2010 SSP1 ... NaN \n", - "2 00043 2010 SSP1 ... NaN \n", - "3 00043 2010 SSP1 ... NaN \n", - "4 00043 2010 SSP1 ... NaN \n", - "... ... ... ... ... ... \n", - "59931 W06000021 2010 SSP5 ... NaN \n", - "59932 W06000022 2010 SSP5 ... NaN \n", - "59933 W06000022 2010 SSP5 ... NaN \n", - "59934 W06000023 2010 SSP5 ... NaN \n", - "59935 W06000023 2010 SSP5 ... NaN \n", - "\n", - " HIGH_DEFENDED_MAPS_RP_1_B01 LOW_DEFENDED_MAPS_Mean_spring_tide_B01 \\\n", - "0 NaN NaN \n", - "1 NaN NaN \n", - "2 NaN 0.0 \n", - "3 NaN NaN \n", - "4 0.0 NaN \n", - "... ... ... \n", - "59931 NaN NaN \n", - "59932 NaN NaN \n", - "59933 NaN NaN \n", - "59934 NaN NaN \n", - "59935 NaN NaN \n", - "\n", - " LOW_DEFENDED_MAPS_RP_1000_B01 LOW_DEFENDED_MAPS_RP_100_B01 \\\n", - "0 NaN NaN \n", - "1 0.000000 NaN \n", - "2 NaN NaN \n", - "3 NaN 0.0 \n", - "4 NaN NaN \n", - "... ... ... \n", - "59931 4.100625 NaN \n", - "59932 50.677500 NaN \n", - "59933 NaN NaN \n", - "59934 NaN NaN \n", - "59935 0.000000 NaN \n", - "\n", - " LOW_DEFENDED_MAPS_RP_1_B01 UNDEFENDED_MAPS_Mean_spring_tide_B01 \\\n", - "0 NaN 0.000000 \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 0.0 NaN \n", - "... ... ... \n", - "59931 NaN NaN \n", - "59932 NaN NaN \n", - "59933 NaN 2381.240625 \n", - "59934 NaN 0.647500 \n", - "59935 NaN NaN \n", - "\n", - " UNDEFENDED_MAPS_RP_1000_B01 UNDEFENDED_MAPS_RP_100_B01 \\\n", - "0 0.000000 0.000000 \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 NaN NaN \n", - "... ... ... \n", - "59931 NaN NaN \n", - "59932 NaN NaN \n", - "59933 8672.880625 6955.381250 \n", - "59934 15.433750 10.250625 \n", - "59935 NaN NaN \n", - "\n", - " UNDEFENDED_MAPS_RP_1_B01 \n", - "0 0.000000 \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "59931 NaN \n", - "59932 NaN \n", - "59933 3738.029375 \n", - "59934 2.530625 \n", - "59935 NaN \n", - "\n", - "[59936 rows x 23 columns]" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Open first csv file to check\n", - "csv_file = csv_files[0]\n", - "df = pd.read_csv(csv_file, sep = \";\")\n", - "\n", - "# Print all columns\n", - "print(df.columns[8:])\n", - "\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "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", - " \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", @@ -713,11 +314,20 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -728,11 +338,20 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -743,71 +362,2278 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
GISCO_IDCNTR_CODEnuts_2nuts_3LAU_IDLAU_NAMEPOP_2020POP_DENS_2AREA_KM2YEARFIDgeometry
1192DE_03361001DEDE93DE93B03361001Achim, Stadt31923.0471.39877167.7197352020DE_03361001POLYGON ((4258927.295 3320011.519, 4259193.583...
1193DE_03361002DEDE93DE93B03361002Blender2885.075.03464038.4489082020DE_03361002POLYGON ((4264556.862 3317435.819, 4265677.354...
1195DE_03361003DEDE93DE93B03361003Dörverden9009.0107.94090883.4623332020DE_03361003POLYGON ((4275479.269 3295636.790, 4275328.930...
1196DE_03361004DEDE93DE93B03361004Emtinghausen1464.068.57384621.3492472020DE_03361004POLYGON ((4250468.027 3309420.666, 4250432.180...
1197DE_03361005DEDE93DE93B03361005Kirchlinteln9911.056.675823174.8717442020DE_03361005POLYGON ((4272425.673 3310568.711, 4274136.202...
.......................................
97667FR_97614FRFRY5FRY5097614Ouangani10203.0555.83878618.3560422020FR_97614POLYGON ((8727685.023 -2785490.190, 8727139.84...
97669FR_97616FRFRY5FRY5097616Sada11156.01012.64308611.0167152020FR_97616POLYGON ((8727114.505 -2787670.745, 8725517.75...
9767011962FR_97617FRFRY5406.42821334.2840372020FR_97617POLYGON ((8730964.436 -2773602.954, 8730972.75......NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
9766011963FR_97608FRFRY52797.9745666.3728242020FR_97608MULTIPOLYGON (((8745852.102 -2769772.861, 8742......NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
9766811964FR_97615FRFRY52619.6904804.3676922020FR_97615POLYGON ((8745852.102 -2769772.861, 8745849.32......NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", - "

11965 rows × 12 columns

\n", + "

11965 rows × 387 columns

\n", "
" ], "text/plain": [ " GISCO_ID CNTR_CODE nuts_2 nuts_3 LAU_ID LAU_NAME POP_2020 \\\n", - "1192 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", - "1193 DE_03361002 DE DE93 DE93B 03361002 Blender 2885.0 \n", - "1195 DE_03361003 DE DE93 DE93B 03361003 Dörverden 9009.0 \n", - "1196 DE_03361004 DE DE93 DE93B 03361004 Emtinghausen 1464.0 \n", - "1197 DE_03361005 DE DE93 DE93B 03361005 Kirchlinteln 9911.0 \n", + "0 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "1 DE_03361002 DE DE93 DE93B 03361002 Blender 2885.0 \n", + "2 DE_03361003 DE DE93 DE93B 03361003 Dörverden 9009.0 \n", + "3 DE_03361004 DE DE93 DE93B 03361004 Emtinghausen 1464.0 \n", + "4 DE_03361005 DE DE93 DE93B 03361005 Kirchlinteln 9911.0 \n", "... ... ... ... ... ... ... ... \n", - "97667 FR_97614 FR FRY5 FRY50 97614 Ouangani 10203.0 \n", - "97669 FR_97616 FR FRY5 FRY50 97616 Sada 11156.0 \n", - "97670 FR_97617 FR FRY5 FRY50 97617 Tsingoni 13934.0 \n", - "97660 FR_97608 FR FRY5 FRY50 97608 Dzaoudzi 17831.0 \n", - "97668 FR_97615 FR FRY5 FRY50 97615 Pamandzi 11442.0 \n", + "11960 FR_97614 FR FRY5 FRY50 97614 Ouangani 10203.0 \n", + "11961 FR_97616 FR FRY5 FRY50 97616 Sada 11156.0 \n", + "11962 FR_97617 FR FRY5 FRY50 97617 Tsingoni 13934.0 \n", + "11963 FR_97608 FR FRY5 FRY50 97608 Dzaoudzi 17831.0 \n", + "11964 FR_97615 FR FRY5 FRY50 97615 Pamandzi 11442.0 \n", + "\n", + " POP_DENS_2 AREA_KM2 YEAR ... \\\n", + "0 471.398771 67.719735 2020 ... \n", + "1 75.034640 38.448908 2020 ... \n", + "2 107.940908 83.462333 2020 ... \n", + "3 68.573846 21.349247 2020 ... \n", + "4 56.675823 174.871744 2020 ... \n", + "... ... ... ... ... \n", + "11960 555.838786 18.356042 2020 ... \n", + "11961 1012.643086 11.016715 2020 ... \n", + "11962 406.428213 34.284037 2020 ... \n", + "11963 2797.974566 6.372824 2020 ... \n", + "11964 2619.690480 4.367692 2020 ... \n", + "\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5 \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1 \\\n", + "0 0.144375 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2 \\\n", + "0 0.179375 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", "\n", - " POP_DENS_2 AREA_KM2 YEAR FID \\\n", - "1192 471.398771 67.719735 2020 DE_03361001 \n", - "1193 75.034640 38.448908 2020 DE_03361002 \n", - "1195 107.940908 83.462333 2020 DE_03361003 \n", - "1196 68.573846 21.349247 2020 DE_03361004 \n", - "1197 56.675823 174.871744 2020 DE_03361005 \n", - "... ... ... ... ... \n", - "97667 555.838786 18.356042 2020 FR_97614 \n", - "97669 1012.643086 11.016715 2020 FR_97616 \n", - "97670 406.428213 34.284037 2020 FR_97617 \n", - "97660 2797.974566 6.372824 2020 FR_97608 \n", - "97668 2619.690480 4.367692 2020 FR_97615 \n", + " UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5 \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", "\n", - " geometry \n", - "1192 POLYGON ((4258927.295 3320011.519, 4259193.583... \n", - "1193 POLYGON ((4264556.862 3317435.819, 4265677.354... \n", - "1195 POLYGON ((4275479.269 3295636.790, 4275328.930... \n", - "1196 POLYGON ((4250468.027 3309420.666, 4250432.180... \n", - "1197 POLYGON ((4272425.673 3310568.711, 4274136.202... \n", - "... ... \n", - "97667 POLYGON ((8727685.023 -2785490.190, 8727139.84... \n", - "97669 POLYGON ((8727114.505 -2787670.745, 8725517.75... \n", - "97670 POLYGON ((8730964.436 -2773602.954, 8730972.75... \n", - "97660 MULTIPOLYGON (((8745852.102 -2769772.861, 8742... \n", - "97668 POLYGON ((8745852.102 -2769772.861, 8745849.32... \n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1 \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", "\n", - "[11965 rows x 12 columns]" + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2 \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5 \\\n", + "0 0.752165 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " tot_pop\\2150\\population_SSP1 tot_pop\\2150\\population_SSP2 \\\n", + "0 14295.223125 17457.186875 \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "11960 NaN NaN \n", + "11961 NaN NaN \n", + "11962 NaN NaN \n", + "11963 NaN NaN \n", + "11964 NaN NaN \n", + "\n", + " tot_pop\\2150\\population_SSP5 \n", + "0 63640.814859 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + "[11965 rows x 387 columns]" ] }, - "execution_count": 37, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Load LAU's from parquet\n", - "LAU = gpd.read_parquet(r'p:\\11207608-coclico\\FULLTRACK_DATA\\WP4\\LAU_stats\\LAU_2020_NUTS_2021_01M_3035_CM.parquet')\n", - "LAU" + "parquet_file = ds_dir.joinpath(\"pop_fp_LAU.parquet\")\n", + "\n", + "pop_stats = gpd.read_parquet(parquet_file)\n", + "\n", + "pop_stats" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GISCO_ID\n", + "CNTR_CODE\n", + "nuts_2\n", + "nuts_3\n", + "LAU_ID\n", + "LAU_NAME\n", + "POP_2020\n", + "POP_DENS_2\n", + "AREA_KM2\n", + "YEAR\n", + "FID\n", + "geometry\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "tot_pop\\2010\\population_SSP1\n", + "tot_pop\\2010\\population_SSP2\n", + "tot_pop\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "tot_pop\\2030\\population_SSP1\n", + "tot_pop\\2030\\population_SSP2\n", + "tot_pop\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "tot_pop\\2050\\population_SSP1\n", + "tot_pop\\2050\\population_SSP2\n", + "tot_pop\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\High_End\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\High_End\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP126\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP245\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\High_End\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP126\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP245\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\High_End\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP126\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP245\\B01\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\B01\\2100\\population_SSP5\n", + "tot_pop\\2100\\population_SSP1\n", + "tot_pop\\2100\\population_SSP2\n", + "tot_pop\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "tot_pop\\2150\\population_SSP1\n", + "tot_pop\\2150\\population_SSP2\n", + "tot_pop\\2150\\population_SSP5\n" + ] + } + ], + "source": [ + "# Print all column names in for loop\n", + "for col in pop_stats.columns:\n", + " print(col)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GISCO_ID\n", + "CNTR_CODE\n", + "nuts_2\n", + "nuts_3\n", + "LAU_ID\n", + "LAU_NAME\n", + "POP_2020\n", + "POP_DENS_2\n", + "AREA_KM2\n", + "YEAR\n", + "FID\n", + "geometry\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "tot_pop\\2010\\population_SSP1\n", + "tot_pop\\2010\\population_SSP2\n", + "tot_pop\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "tot_pop\\2030\\population_SSP1\n", + "tot_pop\\2030\\population_SSP2\n", + "tot_pop\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "tot_pop\\2050\\population_SSP1\n", + "tot_pop\\2050\\population_SSP2\n", + "tot_pop\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "tot_pop\\2100\\population_SSP1\n", + "tot_pop\\2100\\population_SSP2\n", + "tot_pop\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "tot_pop\\2150\\population_SSP1\n", + "tot_pop\\2150\\population_SSP2\n", + "tot_pop\\2150\\population_SSP5\n" + ] + } + ], + "source": [ + "# Get rid of the 'B01' element\n", + "pop_stats.columns = pop_stats.columns.str.replace('\\\\B01', '', regex=False)\n", + "\n", + "# Print all column names in for loop\n", + "for col in pop_stats.columns:\n", + " print(col)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GISCO_ID\n", + "CNTR_CODE\n", + "nuts_2\n", + "nuts_3\n", + "LAU_ID\n", + "LAU_NAME\n", + "POP_2020\n", + "POP_DENS_2\n", + "AREA_KM2\n", + "YEAR\n", + "FID\n", + "geometry\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP5\n", + "tot_pop\\2010\\population_SSP1\n", + "tot_pop\\2010\\population_SSP2\n", + "tot_pop\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "tot_pop\\2030\\population_SSP1\n", + "tot_pop\\2030\\population_SSP2\n", + "tot_pop\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "tot_pop\\2050\\population_SSP1\n", + "tot_pop\\2050\\population_SSP2\n", + "tot_pop\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "tot_pop\\2100\\population_SSP1\n", + "tot_pop\\2100\\population_SSP2\n", + "tot_pop\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\SLR_High_end\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "tot_pop\\2150\\population_SSP1\n", + "tot_pop\\2150\\population_SSP2\n", + "tot_pop\\2150\\population_SSP5\n", + "GISCO_ID\n", + "CNTR_CODE\n", + "nuts_2\n", + "nuts_3\n", + "LAU_ID\n", + "LAU_NAME\n", + "POP_2020\n", + "POP_DENS_2\n", + "AREA_KM2\n", + "YEAR\n", + "FID\n", + "geometry\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "tot_pop\\2010\\population_SSP1\n", + "tot_pop\\2010\\population_SSP2\n", + "tot_pop\\2010\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "tot_pop\\2030\\population_SSP1\n", + "tot_pop\\2030\\population_SSP2\n", + "tot_pop\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "tot_pop\\2050\\population_SSP1\n", + "tot_pop\\2050\\population_SSP2\n", + "tot_pop\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "tot_pop\\2100\\population_SSP1\n", + "tot_pop\\2100\\population_SSP2\n", + "tot_pop\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "tot_pop\\2150\\population_SSP1\n", + "tot_pop\\2150\\population_SSP2\n", + "tot_pop\\2150\\population_SSP5\n" + ] + } + ], + "source": [ + "pop_stats_red = pop_stats\n", + "\n", + "# There are columns that represent combinations of population SSP and Flood map SSP that can be dropped\n", + "for col in pop_stats_red.columns:\n", + " \n", + " print(col)\n", + " # split col at backslash\n", + " vars = col.split(\"\\\\\")\n", + "\n", + " # Find outlying naming of columns\n", + " if 'MAPS' in vars[0] and len(vars) < 5:\n", + " \n", + " # Drop column\n", + " pop_stats_red.drop(columns=[col], inplace=True)\n", + "\n", + " continue\n", + "\n", + " # Match floodmap ssp with population ssp\n", + " if 'MAPS' in vars[0] and not vars[-1].split('_')[-1] in vars[2] and not (vars[2] == 'None' and \"SSP2\" in vars[-1]) and not (vars[2] == 'High_End' and \"SSP5\" in vars[-1]):\n", + "\n", + " # Drop column\n", + " pop_stats_red.drop(columns=[col], inplace=True)\n", + "\n", + "# Print all column names in for loop\n", + "for col in pop_stats_red.columns:\n", + " print(col)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GISCO_ID\n", + "CNTR_CODE\n", + "nuts_2\n", + "nuts_3\n", + "LAU_ID\n", + "LAU_NAME\n", + "POP_2020\n", + "POP_DENS_2\n", + "AREA_KM2\n", + "YEAR\n", + "FID\n", + "geometry\n", + "tot_pop\\2010\\population_SSP1\n", + "tot_pop\\2010\\population_SSP2\n", + "tot_pop\\2010\\population_SSP5\n", + "tot_pop\\2030\\population_SSP1\n", + "tot_pop\\2030\\population_SSP2\n", + "tot_pop\\2030\\population_SSP5\n", + "tot_pop\\2050\\population_SSP1\n", + "tot_pop\\2050\\population_SSP2\n", + "tot_pop\\2050\\population_SSP5\n", + "tot_pop\\2100\\population_SSP1\n", + "tot_pop\\2100\\population_SSP2\n", + "tot_pop\\2100\\population_SSP5\n", + "tot_pop\\2150\\population_SSP1\n", + "tot_pop\\2150\\population_SSP2\n", + "tot_pop\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\n" + ] + } + ], + "source": [ + "# Move all columns containing \"tot_pop\" to column position 11\n", + "# Identify columns starting with 'tot_pop'\n", + "tot_pop_cols = [col for col in pop_stats_red.columns if col.startswith('tot_pop')]\n", + "\n", + "# Identify remaining columns\n", + "other_cols = [col for col in pop_stats_red.columns if col not in tot_pop_cols]\n", + "\n", + "# New column order: insert tot_pop columns at the specified location (e.g., index 11)\n", + "# Adjust the insertion index (e.g., 11) based on the size of your DataFrame\n", + "insert_index = min(12, len(other_cols)) # Ensures the index is valid\n", + "new_column_order = other_cols[:insert_index] + tot_pop_cols + other_cols[insert_index:]\n", + "\n", + "# Reorder columns\n", + "pop_stats_red = pop_stats_red[new_column_order]\n", + "\n", + "for col in pop_stats_red.columns:\n", + " print(col) " + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GISCO_ID\n", + "CNTR_CODE\n", + "nuts_2\n", + "nuts_3\n", + "LAU_ID\n", + "LAU_NAME\n", + "POP_2020\n", + "POP_DENS_2\n", + "AREA_KM2\n", + "YEAR\n", + "FID\n", + "geometry\n", + "tot_pop\\2010\\population_SSP1\n", + "tot_pop\\2010\\population_SSP2\n", + "tot_pop\\2010\\population_SSP5\n", + "tot_pop\\2030\\population_SSP1\n", + "tot_pop\\2030\\population_SSP2\n", + "tot_pop\\2030\\population_SSP5\n", + "tot_pop\\2050\\population_SSP1\n", + "tot_pop\\2050\\population_SSP2\n", + "tot_pop\\2050\\population_SSP5\n", + "tot_pop\\2100\\population_SSP1\n", + "tot_pop\\2100\\population_SSP2\n", + "tot_pop\\2100\\population_SSP5\n", + "tot_pop\\2150\\population_SSP1\n", + "tot_pop\\2150\\population_SSP2\n", + "tot_pop\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected\n" + ] + } + ], + "source": [ + "# Add columns for the population statistics\n", + "# Suffixes to append\n", + "suffixes = [\"\\\\abs_affected\", \"\\\\rel_affected\", \"\\\\abs_unaffected\", \"\\\\rel_unaffected\"]\n", + "\n", + "# Identify columns containing \"MAPS\"\n", + "maps_columns = [col for col in pop_stats_red.columns if \"MAPS\" in col]\n", + "\n", + "# Generate expanded columns for \"MAPS\"\n", + "expanded_columns = [f\"{col}{suffix}\" for col in maps_columns for suffix in suffixes]\n", + "\n", + "# Retain original columns (non-MAPS)\n", + "non_maps_columns = [col for col in pop_stats_red.columns if \"MAPS\" not in col]\n", + "\n", + "# Create new DataFrame structure\n", + "new_columns = non_maps_columns + expanded_columns\n", + "pop_stats_rel = pd.DataFrame(columns=new_columns)\n", + "\n", + "# Copy original non-MAPS data to the new DataFrame\n", + "pop_stats_rel[non_maps_columns] = pop_stats_red[non_maps_columns]\n", + "\n", + "for col in pop_stats_rel.columns:\n", + " print(col) " + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_8932\\839783844.py:22: RuntimeWarning: invalid value encountered in divide\n", + " rel_affected = pop_aff_cur / tot_pop_cur\n", + "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_8932\\839783844.py:28: RuntimeWarning: invalid value encountered in divide\n", + " rel_unaffected = abs_unaffected / tot_pop_cur\n" + ] + } + ], + "source": [ + "# Iterate over all columns of pop_stats_rel containing \"MAPS\"\t\n", + "for col in maps_columns:\n", + " # Iterate over all columns containing \"tot_pop\"\n", + " for tot_pop_col in tot_pop_cols:\n", + "\n", + " # Get column name variables\n", + " vars = col.split(\"\\\\\")\n", + " tot_pop_vars = tot_pop_col.split(\"\\\\\")\n", + " \n", + " if vars[-1].split('_')[-1] in tot_pop_vars[-1] and vars[3] in tot_pop_vars[1]:\n", + "\n", + " # Extract the total population\n", + " tot_pop_cur = pop_stats_red[tot_pop_col].values\n", + "\n", + " # Extract population affected\n", + " pop_aff_cur = pop_stats_red[col].values\n", + "\n", + " # Compute the absolute number of affected people\n", + " abs_affected = pop_aff_cur\n", + "\n", + " # Compute the relative number of affected people\n", + " rel_affected = pop_aff_cur / tot_pop_cur\n", + "\n", + " # Compute the absolute number of unaffected people\n", + " abs_unaffected = tot_pop_cur - pop_aff_cur\n", + "\n", + " # Compute the relative number of unaffected people\n", + " rel_unaffected = abs_unaffected / tot_pop_cur\n", + "\n", + " # Append the computed values to the new DataFrame\n", + " pop_stats_rel[col + suffixes[0]] = abs_affected\n", + " pop_stats_rel[col + suffixes[1]] = rel_affected\n", + " pop_stats_rel[col + suffixes[2]] = abs_unaffected\n", + " pop_stats_rel[col + suffixes[3]] = rel_unaffected\n" ] }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -842,16 +2668,16 @@ " AREA_KM2\n", " YEAR\n", " ...\n", - " HIGH_DEFENDED_MAPS_RP_100_B01\n", - " HIGH_DEFENDED_MAPS_RP_1_B01\n", - " LOW_DEFENDED_MAPS_Mean_spring_tide_B01\n", - " LOW_DEFENDED_MAPS_RP_1000_B01\n", - " LOW_DEFENDED_MAPS_RP_100_B01\n", - " LOW_DEFENDED_MAPS_RP_1_B01\n", - " UNDEFENDED_MAPS_Mean_spring_tide_B01\n", - " UNDEFENDED_MAPS_RP_1000_B01\n", - " UNDEFENDED_MAPS_RP_100_B01\n", - " UNDEFENDED_MAPS_RP_1_B01\n", + " UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + " UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected\n", " \n", " \n", " \n", @@ -874,28 +2700,28 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.445\n", - " 1.335\n", - " 1.335\n", - " 1.5575\n", + " 0.752165\n", + " 0.000012\n", + " 63640.062694\n", + " 0.999988\n", " \n", " \n", " 1\n", - " DE_03361001\n", + " DE_03361002\n", " DE\n", " DE93\n", " DE93B\n", - " 03361001\n", - " Achim, Stadt\n", - " 31923.0\n", - " 471.398771\n", - " 67.719735\n", + " 03361002\n", + " Blender\n", + " 2885.0\n", + " 75.034640\n", + " 38.448908\n", " 2020\n", " ...\n", " NaN\n", " NaN\n", " NaN\n", - " 1.33500\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -905,22 +2731,22 @@ " \n", " \n", " 2\n", - " DE_03361001\n", + " DE_03361003\n", " DE\n", " DE93\n", " DE93B\n", - " 03361001\n", - " Achim, Stadt\n", - " 31923.0\n", - " 471.398771\n", - " 67.719735\n", + " 03361003\n", + " Dörverden\n", + " 9009.0\n", + " 107.940908\n", + " 83.462333\n", " 2020\n", " ...\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 1.33500\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -929,23 +2755,23 @@ " \n", " \n", " 3\n", - " DE_03361001\n", + " DE_03361004\n", " DE\n", " DE93\n", " DE93B\n", - " 03361001\n", - " Achim, Stadt\n", - " 31923.0\n", - " 471.398771\n", - " 67.719735\n", + " 03361004\n", + " Emtinghausen\n", + " 1464.0\n", + " 68.573846\n", + " 21.349247\n", " 2020\n", " ...\n", " NaN\n", - " 1.55750\n", " NaN\n", " NaN\n", " NaN\n", - " 1.55750\n", + " NaN\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -953,18 +2779,18 @@ " \n", " \n", " 4\n", - " DE_03361001\n", + " DE_03361005\n", " DE\n", " DE93\n", " DE93B\n", - " 03361001\n", - " Achim, Stadt\n", - " 31923.0\n", - " 471.398771\n", - " 67.719735\n", + " 03361005\n", + " Kirchlinteln\n", + " 9911.0\n", + " 56.675823\n", + " 174.871744\n", " 2020\n", " ...\n", - " 1.33500\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -1000,46 +2826,46 @@ " ...\n", " \n", " \n", - " 61059\n", - " SE_0980\n", - " SE\n", - " SE21\n", - " SE214\n", - " 0980\n", - " Gotland\n", - " 59686.0\n", - " 18.780720\n", - " 3178.046351\n", + " 11960\n", + " FR_97614\n", + " FR\n", + " FRY5\n", + " FRY50\n", + " 97614\n", + " Ouangani\n", + " 10203.0\n", + " 555.838786\n", + " 18.356042\n", " 2020\n", " ...\n", " NaN\n", - " 0.01125\n", " NaN\n", " NaN\n", " NaN\n", - " 0.01125\n", + " NaN\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", - " 61060\n", - " SE_0980\n", - " SE\n", - " SE21\n", - " SE214\n", - " 0980\n", - " Gotland\n", - " 59686.0\n", - " 18.780720\n", - " 3178.046351\n", + " 11961\n", + " FR_97616\n", + " FR\n", + " FRY5\n", + " FRY50\n", + " 97616\n", + " Sada\n", + " 11156.0\n", + " 1012.643086\n", + " 11.016715\n", " 2020\n", " ...\n", " NaN\n", " NaN\n", " NaN\n", - " 0.00875\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -1048,23 +2874,23 @@ " NaN\n", " \n", " \n", - " 61061\n", - " SE_0980\n", - " SE\n", - " SE21\n", - " SE214\n", - " 0980\n", - " Gotland\n", - " 59686.0\n", - " 18.780720\n", - " 3178.046351\n", + " 11962\n", + " FR_97617\n", + " FR\n", + " FRY5\n", + " FRY50\n", + " 97617\n", + " Tsingoni\n", + " 13934.0\n", + " 406.428213\n", + " 34.284037\n", " 2020\n", " ...\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 0.00875\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -1072,19 +2898,19 @@ " NaN\n", " \n", " \n", - " 61062\n", - " SE_0980\n", - " SE\n", - " SE21\n", - " SE214\n", - " 0980\n", - " Gotland\n", - " 59686.0\n", - " 18.780720\n", - " 3178.046351\n", + " 11963\n", + " FR_97608\n", + " FR\n", + " FRY5\n", + " FRY50\n", + " 97608\n", + " Dzaoudzi\n", + " 17831.0\n", + " 2797.974566\n", + " 6.372824\n", " 2020\n", " ...\n", - " 0.00875\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -1096,21 +2922,21 @@ " NaN\n", " \n", " \n", - " 61063\n", - " SE_0980\n", - " SE\n", - " SE21\n", - " SE214\n", - " 0980\n", - " Gotland\n", - " 59686.0\n", - " 18.780720\n", - " 3178.046351\n", + " 11964\n", + " FR_97615\n", + " FR\n", + " FRY5\n", + " FRY50\n", + " 97615\n", + " Pamandzi\n", + " 11442.0\n", + " 2619.690480\n", + " 4.367692\n", " 2020\n", " ...\n", " NaN\n", " NaN\n", - " 0.0075\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -1121,130 +2947,675 @@ " \n", " \n", "\n", - "

61064 rows × 27 columns

\n", + "

11965 rows × 459 columns

\n", "" ], "text/plain": [ " GISCO_ID CNTR_CODE nuts_2 nuts_3 LAU_ID LAU_NAME POP_2020 \\\n", "0 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", - "1 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", - "2 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", - "3 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", - "4 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "1 DE_03361002 DE DE93 DE93B 03361002 Blender 2885.0 \n", + "2 DE_03361003 DE DE93 DE93B 03361003 Dörverden 9009.0 \n", + "3 DE_03361004 DE DE93 DE93B 03361004 Emtinghausen 1464.0 \n", + "4 DE_03361005 DE DE93 DE93B 03361005 Kirchlinteln 9911.0 \n", "... ... ... ... ... ... ... ... \n", - "61059 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", - "61060 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", - "61061 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", - "61062 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", - "61063 SE_0980 SE SE21 SE214 0980 Gotland 59686.0 \n", + "11960 FR_97614 FR FRY5 FRY50 97614 Ouangani 10203.0 \n", + "11961 FR_97616 FR FRY5 FRY50 97616 Sada 11156.0 \n", + "11962 FR_97617 FR FRY5 FRY50 97617 Tsingoni 13934.0 \n", + "11963 FR_97608 FR FRY5 FRY50 97608 Dzaoudzi 17831.0 \n", + "11964 FR_97615 FR FRY5 FRY50 97615 Pamandzi 11442.0 \n", "\n", - " POP_DENS_2 AREA_KM2 YEAR ... HIGH_DEFENDED_MAPS_RP_100_B01 \\\n", - "0 471.398771 67.719735 2020 ... NaN \n", - "1 471.398771 67.719735 2020 ... NaN \n", - "2 471.398771 67.719735 2020 ... NaN \n", - "3 471.398771 67.719735 2020 ... NaN \n", - "4 471.398771 67.719735 2020 ... 1.33500 \n", - "... ... ... ... ... ... \n", - "61059 18.780720 3178.046351 2020 ... NaN \n", - "61060 18.780720 3178.046351 2020 ... NaN \n", - "61061 18.780720 3178.046351 2020 ... NaN \n", - "61062 18.780720 3178.046351 2020 ... 0.00875 \n", - "61063 18.780720 3178.046351 2020 ... NaN \n", + " POP_DENS_2 AREA_KM2 YEAR ... \\\n", + "0 471.398771 67.719735 2020 ... \n", + "1 75.034640 38.448908 2020 ... \n", + "2 107.940908 83.462333 2020 ... \n", + "3 68.573846 21.349247 2020 ... \n", + "4 56.675823 174.871744 2020 ... \n", + "... ... ... ... ... \n", + "11960 555.838786 18.356042 2020 ... \n", + "11961 1012.643086 11.016715 2020 ... \n", + "11962 406.428213 34.284037 2020 ... \n", + "11963 2797.974566 6.372824 2020 ... \n", + "11964 2619.690480 4.367692 2020 ... \n", "\n", - " HIGH_DEFENDED_MAPS_RP_1_B01 LOW_DEFENDED_MAPS_Mean_spring_tide_B01 \\\n", - "0 NaN NaN \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 1.55750 NaN \n", - "4 NaN NaN \n", - "... ... ... \n", - "61059 0.01125 NaN \n", - "61060 NaN NaN \n", - "61061 NaN NaN \n", - "61062 NaN NaN \n", - "61063 NaN 0.0075 \n", + " UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", "\n", - " LOW_DEFENDED_MAPS_RP_1000_B01 LOW_DEFENDED_MAPS_RP_100_B01 \\\n", - "0 NaN NaN \n", - "1 1.33500 NaN \n", - "2 NaN 1.33500 \n", - "3 NaN NaN \n", - "4 NaN NaN \n", - "... ... ... \n", - "61059 NaN NaN \n", - "61060 0.00875 NaN \n", - "61061 NaN 0.00875 \n", - "61062 NaN NaN \n", - "61063 NaN NaN \n", + " UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", "\n", - " LOW_DEFENDED_MAPS_RP_1_B01 UNDEFENDED_MAPS_Mean_spring_tide_B01 \\\n", - "0 NaN 0.445 \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 1.55750 NaN \n", - "4 NaN NaN \n", - "... ... ... \n", - "61059 0.01125 NaN \n", - "61060 NaN NaN \n", - "61061 NaN NaN \n", - "61062 NaN NaN \n", - "61063 NaN NaN \n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", "\n", - " UNDEFENDED_MAPS_RP_1000_B01 UNDEFENDED_MAPS_RP_100_B01 \\\n", - "0 1.335 1.335 \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 NaN NaN \n", - "... ... ... \n", - "61059 NaN NaN \n", - "61060 NaN NaN \n", - "61061 NaN NaN \n", - "61062 NaN NaN \n", - "61063 NaN NaN \n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", "\n", - " UNDEFENDED_MAPS_RP_1_B01 \n", - "0 1.5575 \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "61059 NaN \n", - "61060 NaN \n", - "61061 NaN \n", - "61062 NaN \n", - "61063 NaN \n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", "\n", - "[61064 rows x 27 columns]" + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected \\\n", + "0 0.752165 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected \\\n", + "0 0.000012 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", + "0 63640.062694 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected \n", + "0 0.999988 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + "[11965 rows x 459 columns]" ] }, - "execution_count": 44, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Get the columns data of the df in the LAU, match by LAU_ID\n", - "\n", - "# Select only the new columns from the df\n", - "df_sel = df.iloc[:, 8:] \n", - "df_sel['LAU_ID'] = df['LAU_ID'] # Add LAU_ID to the df_sel\n", - "\n", - "# Perform a merge on the LAU_ID\n", - "LAU_stats = LAU.merge(df_sel, on='LAU_ID', how='inner')\n", - "\n", - "LAU_stats\n", - "\n", - "\n" + "pop_stats_rel" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Set geometry\n", + "pop_stats_rel = pop_stats_rel.set_geometry('geometry')" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Write parquet file\n", + "parquet_file = ds_dir.joinpath(\"pop_fp_LAU_rel.parquet\")\n", + "pop_stats_rel.to_parquet(parquet_file)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GISCO_ID\n", + "CNTR_CODE\n", + "nuts_2\n", + "nuts_3\n", + "LAU_ID\n", + "LAU_NAME\n", + "POP_2020\n", + "POP_DENS_2\n", + "AREA_KM2\n", + "YEAR\n", + "FID\n", + "geometry\n", + "tot_pop\\2010\\population_SSP1\n", + "tot_pop\\2010\\population_SSP2\n", + "tot_pop\\2010\\population_SSP5\n", + "tot_pop\\2030\\population_SSP1\n", + "tot_pop\\2030\\population_SSP2\n", + "tot_pop\\2030\\population_SSP5\n", + "tot_pop\\2050\\population_SSP1\n", + "tot_pop\\2050\\population_SSP2\n", + "tot_pop\\2050\\population_SSP5\n", + "tot_pop\\2100\\population_SSP1\n", + "tot_pop\\2100\\population_SSP2\n", + "tot_pop\\2100\\population_SSP5\n", + "tot_pop\\2150\\population_SSP1\n", + "tot_pop\\2150\\population_SSP2\n", + "tot_pop\\2150\\population_SSP5\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected\n", + "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected\n" + ] + } + ], + "source": [ + "# Print all column names\n", + "for col in pop_stats_rel.columns:\n", + " print(col)" + ] } ], "metadata": { From cb154e942745e7cf0ab7333672be8bc8273387a5 Mon Sep 17 00:00:00 2001 From: mathvansoest Date: Wed, 15 Jan 2025 15:38:50 +0100 Subject: [PATCH 3/8] New pop_stats data added in the STAC, note: symbols have been changed, not sure why. --- current/CFHP_LAU_stats/collection.json | 2 +- current/catalog.json | 6 + current/cbca/collection.json | 2 +- current/cfhp/collection.json | 2 +- current/cfr/collection.json | 2 +- current/cisi/collection.json | 2 +- current/deltares-delta-dtm/collection.json | 4 +- current/pp_stats/collection.json | 2408 ++++++++++++++++++++ current/pp_stats/items/pop_fp_LAU_rel.json | 2385 +++++++++++++++++++ current/slp/collection.json | 4 +- current/ss_wc/collection.json | 4 +- current/twl/collection.json | 6 +- scripts/create_stacs/26_pp_stats_stacs.py | 540 +++++ scripts/thumbnails/pp_stats.png | Bin 0 -> 169185 bytes scripts/utils/stac_to_cloud.py | 2 +- src/coclicodata/coclico_stac/reshape_im.py | 2 +- 16 files changed, 5355 insertions(+), 16 deletions(-) create mode 100644 current/pp_stats/collection.json create mode 100644 current/pp_stats/items/pop_fp_LAU_rel.json create mode 100644 scripts/create_stacs/26_pp_stats_stacs.py create mode 100644 scripts/thumbnails/pp_stats.png diff --git a/current/CFHP_LAU_stats/collection.json b/current/CFHP_LAU_stats/collection.json index 86b25c62ce..6ae4f3e7e5 100644 --- a/current/CFHP_LAU_stats/collection.json +++ b/current/CFHP_LAU_stats/collection.json @@ -1052,7 +1052,7 @@ ], "providers": [ { - "name": "Universidad de Cantabria, Instituto de Hidráulica Ambiental de la Universidad de Cantabria 'IHCantabria'", + "name": "Universidad de Cantabria, Instituto de Hidr\u00c3\u00a1ulica Ambiental de la Universidad de Cantabria 'IHCantabria'", "roles": [ "producer", "licensor" diff --git a/current/catalog.json b/current/catalog.json index 91cf657e67..cc947ed2be 100644 --- a/current/catalog.json +++ b/current/catalog.json @@ -195,6 +195,12 @@ "href": "./deltares-delta-dtm/collection.json", "type": "application/json", "title": "DeltaDTM: A global coastal digital terrain model" + }, + { + "rel": "child", + "href": "./pp_stats/collection.json", + "type": "application/json", + "title": "Population exposed to flooding per LAU" } ], "assets": { diff --git a/current/cbca/collection.json b/current/cbca/collection.json index 17b8bf1cb2..2bf7db2b77 100644 --- a/current/cbca/collection.json +++ b/current/cbca/collection.json @@ -2,7 +2,7 @@ "type": "Collection", "id": "cbca", "stac_version": "1.0.0", - "description": "Dataset describing the costs and benefits of raising coastal defenses along the European coastline aggregated per coastal NUTS2 region (provinces), in view of climate change. Variables are cost (€), benefit (€), cost-benefit ratio (cbr, -) and extra benefit of raising coastal protection (eb, m) for two different climate scenarios (RCP4.5 and RCP8.5) coupled to two types of socio-economic growth (SSP1 – sustainability and SSP5 – fossil fuel development). This dataset is part of the [LISCOAST](https://data.jrc.ec.europa.eu/collection/LISCOAST) project. See this [article](https://doi.org/10.1038/s41467-020-15665-3) for more dataset-specific information.", + "description": "Dataset describing the costs and benefits of raising coastal defenses along the European coastline aggregated per coastal NUTS2 region (provinces), in view of climate change. Variables are cost (\u20ac), benefit (\u20ac), cost-benefit ratio (cbr, -) and extra benefit of raising coastal protection (eb, m) for two different climate scenarios (RCP4.5 and RCP8.5) coupled to two types of socio-economic growth (SSP1 \u2013 sustainability and SSP5 \u2013 fossil fuel development). This dataset is part of the [LISCOAST](https://data.jrc.ec.europa.eu/collection/LISCOAST) project. See this [article](https://doi.org/10.1038/s41467-020-15665-3) for more dataset-specific information.", "links": [ { "rel": "item", diff --git a/current/cfhp/collection.json b/current/cfhp/collection.json index dc153987a8..2382f6f512 100644 --- a/current/cfhp/collection.json +++ b/current/cfhp/collection.json @@ -486,7 +486,7 @@ "url": "https://deltares.nl" }, { - "name": "Universidad de Cantabria, Instituto de Hidráulica Ambiental de la Universidad de Cantabria 'IHCantabria'", + "name": "Universidad de Cantabria, Instituto de Hidr\u00e1ulica Ambiental de la Universidad de Cantabria 'IHCantabria'", "roles": [ "producer" ], diff --git a/current/cfr/collection.json b/current/cfr/collection.json index 90902a8b2e..87dfd55abb 100644 --- a/current/cfr/collection.json +++ b/current/cfr/collection.json @@ -300,7 +300,7 @@ "attrs": { "End_date": "2099-12-31", "Starting_date": "1980-12-31", - "contents": "Ensemble median Expected Annual Damage (expressed in billion €) from coastal flooding per country", + "contents": "Ensemble median Expected Annual Damage (expressed in billion \u20ac) from coastal flooding per country", "long_name": "expected annual damage", "units": "1e12" }, diff --git a/current/cisi/collection.json b/current/cisi/collection.json index 114eb3903a..710d58c8aa 100644 --- a/current/cisi/collection.json +++ b/current/cisi/collection.json @@ -2,7 +2,7 @@ "type": "Collection", "id": "cisi", "stac_version": "1.0.0", - "description": "Critical infrastructure (CI) is fundamental for the functioning of a society and forms the backbone for socio-economic development. Natural and human-made threats, however, pose a major risk to CI. Therefore, geospatial data on the location of CI are fundamental for in-depth risk analyses, which are required to inform policy decisions aiming to reduce risk. We present a first-of-its-kind globally harmonized spatial dataset for the representation of CI. In this study, we: (1) collect and harmonize detailed geospatial data of the world’s main CI systems into a single geospatial database; and (2) develop the Critical Infrastructure Spatial Index (CISI) to express the global spatial intensity of CI. The CISI aggregates high-resolution geospatial OpenStreetMap (OSM) data of 39 CI types that are categorized under seven overarching CI systems. The detailed geospatial data are rasterized into a harmonized and consistent dataset with a resolution of 0.10 × 0.10.", + "description": "Critical infrastructure (CI) is fundamental for the functioning of a society and forms the backbone for socio-economic development. Natural and human-made threats, however, pose a major risk to CI. Therefore, geospatial data on the location of CI are fundamental for in-depth risk analyses, which are required to inform policy decisions aiming to reduce risk. We present a first-of-its-kind globally harmonized spatial dataset for the representation of CI. In this study, we: (1) collect and harmonize detailed geospatial data of the world\u2019s main CI systems into a single geospatial database; and (2) develop the Critical Infrastructure Spatial Index (CISI) to express the global spatial intensity of CI. The CISI aggregates high-resolution geospatial OpenStreetMap (OSM) data of 39 CI types that are categorized under seven overarching CI systems. The detailed geospatial data are rasterized into a harmonized and consistent dataset with a resolution of 0.10\u2009\u00d7\u20090.10.", "links": [ { "rel": "item", diff --git a/current/deltares-delta-dtm/collection.json b/current/deltares-delta-dtm/collection.json index 1b7115f361..853e0e5830 100644 --- a/current/deltares-delta-dtm/collection.json +++ b/current/deltares-delta-dtm/collection.json @@ -36611,12 +36611,12 @@ } } }, - "sci:citation": "Pronk, Maarten. 2024. “DeltaDTM v1.1: A Global Coastal Digital Terrain Model.” 4TU.ResearchData. https://doi.org/10.4121/21997565.V3.", + "sci:citation": "Pronk, Maarten. 2024. \u201cDeltaDTM v1.1: A Global Coastal Digital Terrain Model.\u201d 4TU.ResearchData. https://doi.org/10.4121/21997565.V3.", "sci:doi": "10.4121/21997565", "sci:publications": [ { "doi": "10.1038/s41597-024-03091-9", - "citation": "Pronk, Maarten, Aljosja Hooijer, Dirk Eilander, Arjen Haag, Tjalling de Jong, Michalis Vousdoukas, Ronald Vernimmen, Hugo Ledoux, and Marieke Eleveld. 2024. “DeltaDTM: A Global Coastal Digital Terrain Model.” Scientific Data 11 (1): 273. https://doi.org/10.1038/s41597-024-03091-9." + "citation": "Pronk, Maarten, Aljosja Hooijer, Dirk Eilander, Arjen Haag, Tjalling de Jong, Michalis Vousdoukas, Ronald Vernimmen, Hugo Ledoux, and Marieke Eleveld. 2024. \u201cDeltaDTM: A Global Coastal Digital Terrain Model.\u201d Scientific Data 11 (1): 273. https://doi.org/10.1038/s41597-024-03091-9." } ], "version": "1.1", diff --git a/current/pp_stats/collection.json b/current/pp_stats/collection.json new file mode 100644 index 0000000000..68008b4411 --- /dev/null +++ b/current/pp_stats/collection.json @@ -0,0 +1,2408 @@ +{ + "type": "Collection", + "id": "pp_stats", + "stac_version": "1.0.0", + "description": "The data shows the exposed population to coastal flooding for every coastal Local Administrative Unit (LAU) in relative and absolute numbers. The exposed population is calculated based on the flood projection maps and spatial population projections by aligning the data to the same resolution of 25 m and the same projected coordinate system (LAEA). The data provides information on the exposed population for the integrated scenarios (SSP1 2.6, SSP2 4.5, SSP5 8.5, SSP5 High End SLR, SSP2 No SLR) and years 2010, 2030, 2050 and 2100. The scenarios are further combined with different return period events (1000,100,1,static) and different coastal defence levels (undefended, low defended, high defended)", + "links": [ + { + "rel": "root", + "href": "../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "item", + "href": "./items/pop_fp_LAU_rel.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + } + ], + "stac_extensions": [ + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/version/v1.2.0/schema.json" + ], + "item_assets": { + "data": { + "title": "POP_FP_LAU", + "description": "The data describes the absolute and relative shares of the population exposed to coastal flooding for the integrated scenarios for each coastal Local Adminstrative Unit (LAU) based on the flood projection maps and the spatial population projections.", + "roles": [ + "data" + ], + "type": "application/vnd.apache.parquet", + "table:storage_options": { + "account_name": "coclico" + }, + "table:columns": [ + { + "name": "GISCO_ID", + "type": "string", + "description": "" + }, + { + "name": "CNTR_CODE", + "type": "string", + "description": "" + }, + { + "name": "nuts_2", + "type": "string", + "description": "" + }, + { + "name": "nuts_3", + "type": "string", + "description": "" + }, + { + "name": "LAU_ID", + "type": "string", + "description": "" + }, + { + "name": "LAU_NAME", + "type": "string", + "description": "" + }, + { + "name": "POP_2020", + "type": "double", + "description": "" + }, + { + "name": "POP_DENS_2", + "type": "double", + "description": "" + }, + { + "name": "AREA_KM2", + "type": "double", + "description": "" + }, + { + "name": "YEAR", + "type": "int64", + "description": "" + }, + { + "name": "FID", + "type": "string", + "description": "" + }, + { + "name": "geometry", + "type": "binary", + "description": "" + }, + { + "name": "tot_pop\\2010\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2010\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2010\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2030\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2030\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2030\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2050\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2050\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2050\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2100\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2100\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2100\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2150\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2150\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2150\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + } + ] + } + }, + "base_url": "gs://coclico-data-public/coclico/pp_stats", + "sci:citation": "", + "version": "1", + "title": "Population exposed to flooding per LAU", + "extent": { + "spatial": { + "bbox": [ + [ + -81.12146941539005, + -29.12357316038395, + 93.1752791130622, + 37.855412297701754 + ] + ] + }, + "temporal": { + "interval": [ + [ + "2010-01-01T00:00:00Z", + "2010-01-01T00:00:00Z" + ] + ] + } + }, + "license": "CC-BY-4.0", + "keywords": [ + "Integrated scenarios", + "Exposed population", + "Flood projections", + "Coastal LAU's", + "Full-Track", + "Natural Hazards" + ], + "providers": [ + { + "name": "Geography Institute, Kiel University", + "roles": [ + "producer", + "licensor" + ], + "url": "www.uni-kiel.de" + }, + { + "name": "Deltares", + "roles": [ + "processor", + "host" + ], + "url": "https://deltares.nl" + } + ], + "assets": { + "thumbnail": { + "href": "https://storage.googleapis.com/download/storage/v1/b/coclico-data-public/o/coclico%2Fassets%2Fthumbnails%2Fpp_stats.png?alt=media", + "type": "image/png", + "title": "Thumbnail" + }, + "geoparquet-stac-items": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp_stats/pop_fp_LAU_rel.parquet", + "type": "application/vnd.apache.parquet", + "title": "GeoParquet STAC items", + "description": "Snapshot of the collection's STAC items exported to GeoParquet format.", + "roles": [ + "data" + ] + } + } +} \ No newline at end of file diff --git a/current/pp_stats/items/pop_fp_LAU_rel.json b/current/pp_stats/items/pop_fp_LAU_rel.json new file mode 100644 index 0000000000..9979f47521 --- /dev/null +++ b/current/pp_stats/items/pop_fp_LAU_rel.json @@ -0,0 +1,2385 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "pop_fp_LAU_rel", + "properties": { + "title": "POP_FP_LAU", + "description": "The data describes the absolute and relative shares of the population exposed to coastal flooding for the integrated scenarios for each coastal Local Adminstrative Unit (LAU) based on the flood projection maps and the spatial population projections.", + "table:columns": [ + { + "name": "GISCO_ID", + "type": "string", + "description": "" + }, + { + "name": "CNTR_CODE", + "type": "string", + "description": "" + }, + { + "name": "nuts_2", + "type": "string", + "description": "" + }, + { + "name": "nuts_3", + "type": "string", + "description": "" + }, + { + "name": "LAU_ID", + "type": "string", + "description": "" + }, + { + "name": "LAU_NAME", + "type": "string", + "description": "" + }, + { + "name": "POP_2020", + "type": "double", + "description": "" + }, + { + "name": "POP_DENS_2", + "type": "double", + "description": "" + }, + { + "name": "AREA_KM2", + "type": "double", + "description": "" + }, + { + "name": "YEAR", + "type": "int64", + "description": "" + }, + { + "name": "FID", + "type": "string", + "description": "" + }, + { + "name": "geometry", + "type": "binary", + "description": "" + }, + { + "name": "tot_pop\\2010\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2010\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2010\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2030\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2030\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2030\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2050\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2050\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2050\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2100\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2100\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2100\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2150\\population_SSP1", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2150\\population_SSP2", + "type": "double", + "description": "" + }, + { + "name": "tot_pop\\2150\\population_SSP5", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\None\\2010\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2030\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2050\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2050\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP126\\2100\\population_SSP1\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP245\\2100\\population_SSP2\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\SSP585\\2100\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "HIGH_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "LOW_DEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1000\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected", + "type": "double", + "description": "" + }, + { + "name": "UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected", + "type": "double", + "description": "" + } + ], + "proj:bbox": [ + -2710033.3959, + -3076198.0823, + 10026005.2215, + 5415709.913699999 + ], + "proj:epsg": 3035, + "table:row_count": 11965, + "created": "2025-01-15T13:35:28.554213Z", + "datetime": "2010-01-01T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 93.1752791130622, + -29.12357316038395 + ], + [ + 93.1752791130622, + 37.855412297701754 + ], + [ + -81.12146941539005, + 37.855412297701754 + ], + [ + -81.12146941539005, + -29.12357316038395 + ], + [ + 93.1752791130622, + -29.12357316038395 + ] + ] + ] + }, + "links": [ + { + "rel": "root", + "href": "../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "Population exposed to flooding per LAU" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "Population exposed to flooding per LAU" + } + ], + "assets": { + "data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp_stats/pop_fp_LAU_rel.parquet", + "type": "application/vnd.apache.parquet", + "title": "POP_FP_LAU", + "description": "The data describes the absolute and relative shares of the population exposed to coastal flooding for the integrated scenarios for each coastal Local Adminstrative Unit (LAU) based on the flood projection maps and the spatial population projections.", + "roles": [ + "data" + ] + } + }, + "bbox": [ + -81.12146941539005, + -29.12357316038395, + 93.1752791130622, + 37.855412297701754 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/projection/v1.1.0/schema.json" + ], + "collection": "pp_stats" +} \ No newline at end of file diff --git a/current/slp/collection.json b/current/slp/collection.json index ac0f0c8ac2..3a92af03f1 100644 --- a/current/slp/collection.json +++ b/current/slp/collection.json @@ -2,7 +2,7 @@ "type": "Collection", "id": "slp", "stac_version": "1.0.0", - "description": "The MSL_CIS_HIGH-END dataset provides AR6-based regional mean sea level projections following the High-end in 2030, 2040, 2050, 2060, 2070, 2080, 2090, 2100, 2110, 2120, 2130, 2140 and 2150 with respect to the baseline period 1995-2014 at a resolution of 1° x 1°.", + "description": "The MSL_CIS_HIGH-END dataset provides AR6-based regional mean sea level projections following the High-end in 2030, 2040, 2050, 2060, 2070, 2080, 2090, 2100, 2110, 2120, 2130, 2140 and 2150 with respect to the baseline period 1995-2014 at a resolution of 1\u00c2\u00b0 x 1\u00c2\u00b0.", "links": [ { "rel": "item", @@ -1648,7 +1648,7 @@ }, { "name": "BRGM, French Geological Survey", - "description": "BRGM, the French geological survey, is France’s leading public institution for Earth Science applications for the management of surface and sub-surface resources with a view to sustainable development. Under partnerships with numerous public and private stakeholders, BRGM focuses on scientific research, expertise and innovation. Its activity meets 4 objectives: understanding geological phenomena and related risks, developing new techniques and methodologies, producing and distributing data for surface, subsurface and resource management, providing the tools required to manage the surface, subsurface and resources, prevent risks and pollution, and manage policies in response to climate change.", + "description": "BRGM, the French geological survey, is France\u00e2\u20ac\u2122s leading public institution for Earth Science applications for the management of surface and sub-surface resources with a view to sustainable development. Under partnerships with numerous public and private stakeholders, BRGM focuses on scientific research, expertise and innovation. Its activity meets 4 objectives: understanding geological phenomena and related risks, developing new techniques and methodologies, producing and distributing data for surface, subsurface and resource management, providing the tools required to manage the surface, subsurface and resources, prevent risks and pollution, and manage policies in response to climate change.", "roles": [ "producer" ], diff --git a/current/ss_wc/collection.json b/current/ss_wc/collection.json index 9991f64b94..c78828a915 100644 --- a/current/ss_wc/collection.json +++ b/current/ss_wc/collection.json @@ -256,7 +256,7 @@ ] }, "scope": "Statistical analysis.", - "area": "Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; Türkiye (Turkey); United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.", + "area": "Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; T\u00fcrkiye (Turkey); United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.", "bbox": { "south_latitude": 24.6, "west_longitude": -35.58, @@ -463,7 +463,7 @@ ] }, "scope": "Statistical analysis.", - "area": "Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; Türkiye (Turkey); United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.", + "area": "Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; T\u00fcrkiye (Turkey); United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.", "bbox": { "south_latitude": 24.6, "west_longitude": -35.58, diff --git a/current/twl/collection.json b/current/twl/collection.json index 3de077fd2a..8742da50e0 100644 --- a/current/twl/collection.json +++ b/current/twl/collection.json @@ -262,7 +262,7 @@ ] }, "scope": "Statistical analysis.", - "area": "Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; Türkiye (Turkey); United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.", + "area": "Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; T\u00fcrkiye (Turkey); United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.", "bbox": { "south_latitude": 24.6, "west_longitude": -35.58, @@ -469,7 +469,7 @@ ] }, "scope": "Statistical analysis.", - "area": "Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; Türkiye (Turkey); United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.", + "area": "Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; T\u00fcrkiye (Turkey); United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.", "bbox": { "south_latitude": 24.6, "west_longitude": -35.58, @@ -579,7 +579,7 @@ ], "providers": [ { - "name": "Universidad de Cantabria, Instituto de Hidráulica Ambiental de la Universidad de Cantabria 'IHCantabria'", + "name": "Universidad de Cantabria, Instituto de Hidr\u00e1ulica Ambiental de la Universidad de Cantabria 'IHCantabria'", "description": " IHCantabria is a collaborative research institute formed by the partnership of the Universidad de Cantabria and the Government of Cantabria. It is actively engaged in scientific and technical endeavors pertaining to continental and coastal water engineering. Its overarching vision is to establish itself as a leading institution known for providing innovative solutions rooted in scientific excellence. These solutions are centered around the integrated management of socio-ecological water systems, with the ultimate aim of contributing to a more sustainable global environment.", "roles": [ "producer" diff --git a/scripts/create_stacs/26_pp_stats_stacs.py b/scripts/create_stacs/26_pp_stats_stacs.py new file mode 100644 index 0000000000..689a7f2902 --- /dev/null +++ b/scripts/create_stacs/26_pp_stats_stacs.py @@ -0,0 +1,540 @@ +# %% +# ## Load software +import sys + +branch = "dev" +sys.path.insert(0, "../src") + +from coastmonitor.io.drive_config import configure_instance + +is_local_instance = configure_instance(branch=branch) + +import dataclasses +import datetime +import logging +import os +import cv2 +import pathlib +import re +import json +import pyarrow +import gcsfs +import geopandas as gpd +import pandas as pd +import numpy as np +from typing import Any + +import fsspec +import pystac +import stac_geoparquet +from typing import List +from posixpath import join as urljoin +from dotenv import load_dotenv +from pystac.stac_io import DefaultStacIO + +from coclicodata.etl.cloud_utils import ( + load_google_credentials, + dir_to_google_cloud, + file_to_google_cloud, +) +from coclicodata.drive_config import p_drive +from coclicodata.coclico_stac.reshape_im import reshape_aspectratio_image + +from coastmonitor import stac_table +from coastmonitor.stac.layouts import ParquetLayout + +# %% +# ## Define variables +# hard-coded input params at project level +GCS_PROTOCOL = "https://storage.googleapis.com" +GCS_PROJECT = "coclico-11207608-002" +BUCKET_NAME = "coclico-data-public" +BUCKET_PROJ = "coclico" +PROJ_NAME = "pp_stats" + +# hard-coded STAC templates +STAC_DIR = pathlib.Path.cwd().parent.parent / "current" # .parent.parent + +# hard-coded input params which differ per dataset +DATASET_DIR = "pp_stats" +# CF_FILE = "Global_merit_coastal_mask_landwards.tif" +COLLECTION_ID = "pp_stats" # name of stac collection +MAX_FILE_SIZE = 500 # max file size in MB + +# define local directories +home = pathlib.Path().home() +tmp_dir = home.joinpath("data", "tmp") +coclico_data_dir = p_drive.joinpath( + "11207608-coclico", "FULLTRACK_DATA" +) # remote p drive +cred_data_dir = p_drive.joinpath("11207608-coclico", "FASTTRACK_DATA") + +# use local or remote data dir +use_local_data = False + +if use_local_data: + ds_dir = tmp_dir +else: + ds_dir = coclico_data_dir + +if not ds_dir.exists(): + raise FileNotFoundError(f"Data dir does not exist, {str(ds_dir)}") + +# # directory to export result +# cog_dirs = ds_dir.joinpath("cogs") +ds_path = ds_dir.joinpath("WP5", "data",'pop_fp_statistics') # path to directory with data +ds_fp = ds_path.joinpath("pop_fp_LAU_rel.parquet") # path to dataset + +# # load metadata template +metadata_fp = ds_fp.with_suffix(".json") +with open(metadata_fp, "r") as f: + metadata = json.load(f) + +# # extend keywords +metadata["KEYWORDS"].extend(["Full-Track", "Natural Hazards"]) + +# # data output configurations +HREF_PREFIX = urljoin( + GCS_PROTOCOL, BUCKET_NAME, BUCKET_PROJ, PROJ_NAME +) # cloud export directory +TMP_DIR = pathlib.Path.home() / "tmp" + +PARQUET_MEDIA_TYPE = "application/vnd.apache.parquet" + +# CONTAINER_NAME = "transects" +# PREFIX = f"gcts-{TRANSECT_LENGTH}m.parquet" +# BASE_URL = f"gs://{CONTAINER_NAME}/{PREFIX}" +GEOPARQUET_STAC_ITEMS_HREF = ( + f"gs://{BUCKET_NAME}/{BUCKET_PROJ}/items/{COLLECTION_ID}.parquet" +) + + +# %% +# %% +def read_parquet_schema_df(uri: str) -> List: # pd.DataFrame: + """Return a Pandas dataframe corresponding to the schema of a local URI of a parquet file. + + The returned dataframe has the columns: column, pa_dtype + """ + # Ref: https://stackoverflow.com/a/64288036/ + # Ref: https://stackoverflow.com/questions/41567081/get-schema-of-parquet-file-in-python + schema = pyarrow.parquet.read_schema(uri, memory_map=True) + # schema = pd.DataFrame(({"name": name, "type": str(pa_dtype)} for name, pa_dtype in zip(schema.names, schema.types))) + schema = [ + { + "name": name, + "type": str(pa_dtype), + "description": "", + } # TODO: add column descriptions once received from the VU + for name, pa_dtype in zip(schema.names, schema.types) + ] + # schema = schema.reindex(columns=["name", "type"], fill_value=pd.NA) # Ensures columns in case the parquet file has an empty dataframe. + return schema + + +def partition_dataframe(df: pd.DataFrame, batch_size: int) -> list[pd.DataFrame]: + """ + Splits a DataFrame into partitions approximately equal to or smaller than the specified batch size. + + Args: + df (pd.DataFrame): The DataFrame to be partitioned. + batch_size (int): The maximum number of rows each partition should have. + + Returns: + List[pd.DataFrame]: A list of DataFrames, each with a size up to the specified batch size. + """ + n_rows = len(df) + if n_rows <= batch_size: + return [df] + + num_partitions = (n_rows + batch_size - 1) // batch_size + partition_size = (n_rows + num_partitions - 1) // num_partitions + + partitions = [ + df.iloc[i : i + partition_size] for i in range(0, n_rows, partition_size) + ] + return partitions + + +@dataclasses.dataclass +class PathParts: + """ + Parses a path into its component parts, supporting variations with and without hive partitioning, + and with and without geographical bounds. + """ + + path: str + container: str | None = None + prefix: str | None = None + name: str | None = None + stac_item_id: str | None = None + + def __post_init__(self) -> None: + # Strip any protocol pattern like "xyz://" + stripped_path = re.sub(r"^\w+://", "", self.path) + split = stripped_path.rstrip("/").split("/") + + # Extract container + self.container = split[0] + + # Determine if there is hive partitioning and extract it + hive_partition_info = [ + "_".join(part.split("=")) for part in split[1:-1] if "=" in part + ] + + # Extract name, which is the filename with the .parquet extension + self.name = split[-1] + + # Construct the stac_item_id + # Include hive partitioning info if present, then add the file name, replacing ".parquet" and ensuring underscores + parts_to_join = hive_partition_info + [self.name.replace(".parquet", "")] + self.stac_item_id = "_".join(parts_to_join) + + +def create_collection( + description: str | None = None, extra_fields: dict[str, Any] | None = None +) -> pystac.Collection: + + # NOTE: 2 providers, fixed quickly + providers = [ + pystac.Provider( + name=metadata["PROVIDERS"]["name"], + roles=[ + pystac.provider.ProviderRole.PRODUCER, + pystac.provider.ProviderRole.LICENSOR, + ], + url=metadata["PROVIDERS"]["url"], + ), + pystac.Provider( + name="Deltares", + roles=[ + pystac.provider.ProviderRole.PROCESSOR, + pystac.provider.ProviderRole.HOST, + ], + url="https://deltares.nl", + ), + ] + + start_datetime = datetime.datetime.strptime( + metadata["TEMPORAL_EXTENT"][0].split("T")[0], "%Y-%m-%d" + ) + + extent = pystac.Extent( + pystac.SpatialExtent([metadata["SPATIAL_EXTENT"]]), + pystac.TemporalExtent([[start_datetime, None]]), + ) + + # double check, this is hard-coded! + # links = [ + # pystac.Link( + # pystac.RelType.LICENSE, + # target="https://creativecommons.org/publicdomain/zero/1.0/", + # media_type="text/html", + # title="CC License", + # ) + # ] + + if "Creative Commons" in metadata["LICENSE"] and "4.0" in metadata["LICENSE"]: + metadata["LICENSE"] = "CC-BY-4.0" + + collection = pystac.Collection( + id=COLLECTION_ID, + title=metadata["TITLE"], + description=metadata["DESCRIPTION"], + license=metadata["LICENSE"], + providers=providers, + extent=extent, + catalog_type=pystac.CatalogType.RELATIVE_PUBLISHED, + ) + + collection.add_asset( + "thumbnail", + pystac.Asset( + f"https://storage.googleapis.com/coclico-data-public/coclico/assets/thumbnails/{COLLECTION_ID}.jpeg", + title="Thumbnail", + media_type=pystac.MediaType.JPEG, + ), + ) + # collection.links = links + collection.keywords = metadata["KEYWORDS"] + + pystac.extensions.item_assets.ItemAssetsExtension.add_to(collection) + + collection.extra_fields["item_assets"] = { + "data": { + "title": metadata["TITLE_ABBREVIATION"], + "description": metadata["SHORT_DESCRIPTION"], + "roles": ["data"], + "type": stac_table.PARQUET_MEDIA_TYPE, + **ASSET_EXTRA_FIELDS, + } + } + + if extra_fields: + collection.extra_fields.update(extra_fields) + + pystac.extensions.scientific.ScientificExtension.add_to(collection) + collection.extra_fields["sci:citation"] = metadata["CITATION"] + + collection.stac_extensions.append(stac_table.SCHEMA_URI) + + pystac.extensions.version.VersionExtension.add_to(collection) + collection.extra_fields["version"] = "1" + + return collection + + +def create_item( + asset_href: str, + storage_options: dict[str, Any] | None = None, + asset_extra_fields: dict[str, Any] | None = None, +) -> pystac.Item: + """Create a STAC Item + + For + + Args: + asset_href (str): The HREF pointing to an asset associated with the item + + Returns: + Item: STAC Item object + """ + + parts = PathParts(asset_href) + + properties = { + "title": metadata["TITLE_ABBREVIATION"], + "description": metadata["SHORT_DESCRIPTION"], + } + + dt = datetime.datetime.strptime( + metadata["TEMPORAL_EXTENT"][0].split("T")[0], "%Y-%m-%d" + ) + # shape = shapely.box(*bbox) + # geometry = shapely.geometry.mapping(shape) + template = pystac.Item( + id=parts.stac_item_id, + properties=properties, + geometry=None, + bbox=None, + datetime=dt, + stac_extensions=[], + ) + + item = stac_table.generate( + uri=asset_href, + template=template, + infer_bbox=True, + infer_geometry=None, + datetime_column=None, + infer_datetime=stac_table.InferDatetimeOptions.no, + count_rows=True, + asset_key="data", + asset_extra_fields=asset_extra_fields, + proj=True, + storage_options=storage_options, + validate=False, + ) + assert isinstance(item, pystac.Item) + + item.common_metadata.created = datetime.datetime.utcnow() + + # add descriptions to item properties + if "table:columns" in ASSET_EXTRA_FIELDS and "table:columns" in item.properties: + source_lookup = { + col["name"]: col for col in ASSET_EXTRA_FIELDS["table:columns"] + } + + for target_col in item.properties["table:columns"]: + source_col = source_lookup.get(target_col["name"]) + if source_col: + target_col.setdefault("description", source_col.get("description")) + + # TODO: make configurable upstream + item.assets["data"].title = metadata["TITLE_ABBREVIATION"] + item.assets["data"].description = metadata["SHORT_DESCRIPTION"] + + return item + + +# %% +# ## Do the work +if __name__ == "__main__": + log = logging.getLogger() + log.setLevel(logging.ERROR) + + # loading credentials + load_google_credentials( + google_token_fp=cred_data_dir.joinpath("google_credentials_new.json") + ) + + # %% test if file is multi-indexed, if we need to write to the cloud and whether we need to split files + dum = gpd.read_parquet(ds_fp) # read parquet file + split = "N" # value to determine if we need to split the files + for file in os.listdir(ds_path): + if file.endswith(".parquet"): + if os.path.getsize(ds_path.joinpath(file)) / 10**6 > MAX_FILE_SIZE: + split = "Y" # change slit to Yes + break + + # bucket content + uri = f"gs://{BUCKET_NAME}/{BUCKET_PROJ}/{PROJ_NAME}" + # storage_options = {"account_name": "coclico", "credential": sas_token} + # fs, token, [root] = fsspec.get_fs_token_paths(uri, storage_options=storage_options) + fs = gcsfs.GCSFileSystem( + gcs_project=GCS_PROJECT, token=os.environ["GOOGLE_APPLICATION_CREDENTIALS"] + ) + paths = fs.glob(uri + "/*.parquet") + uris = ["gs://" + p for p in paths] + + # TODO: build something in for assessing size of parquet data, do this in both the if and elif statements + if ( + dum.index.nlevels > 1 or split == "Y" + ) and paths == []: # if multi-indexed or split and there is nothing in the cloud + files = os.listdir(ds_path) # list all files in the directory + files_clean = [k for k in files if ".parquet" in k] # only select parquet files + + for file in files_clean: + print(file) + file_size = os.path.getsize(ds_path.joinpath(file)) / 10**6 + + if file_size < MAX_FILE_SIZE: # test if file size is smaller than 500MB + dspd = gpd.read_parquet(ds_path.joinpath(file)) # read parquet file + if dum.index.nlevels > 1: + dspd = dspd.reset_index() # reset multi-index + + # write to the cloud, single file + dspd.to_parquet( + f"{uri}/{file}", engine="pyarrow" + ) # or supply with local path if needed + + elif file_size > MAX_FILE_SIZE: # test if file size is smaller than 500MB + dspd = gpd.read_parquet(ds_path.joinpath(file)) # read parquet file + + batch_size = int( + np.ceil(len(dspd) / np.ceil(file_size / MAX_FILE_SIZE)) + ) # calc batch size (max number of rows per partition) + if dum.index.nlevels > 1: + dspd = dspd.reset_index() # reset multi-index + splitted_dspd = partition_dataframe(dspd, batch_size) # calc partitions + + # write to the cloud, all split files + for idx, split_dspd in enumerate(splitted_dspd): + file_name = ( + file.split(".")[0] + + "_{:02d}.".format(idx + 1) + + file.split(".")[1] + ) # add zero-padded index (+1 to start at 1) to file name + split_dspd.to_parquet( + f"{uri}/{file_name}", engine="pyarrow" + ) # or supply with local path if needed + + elif ( + dum.index.nlevels == 1 and split == "N" and paths == [] + ): # if not multi-indexed and no need to split and cloud file does not exist + + # upload directory to the cloud (files already parquet) + file_to_google_cloud( + file_path=str(ds_fp), + gcs_project=GCS_PROJECT, + bucket_name=BUCKET_NAME, + bucket_proj=BUCKET_PROJ, + dir_name=PROJ_NAME, + file_name=ds_fp.name, + ) + + elif paths: + print("Dataset already exists in the Google Bucket") + + # %% get descriptions + COLUMN_DESCRIPTIONS = read_parquet_schema_df( + uris[0] + ) # select first file of the cloud directory + + ASSET_EXTRA_FIELDS = { + "table:storage_options": {"account_name": "coclico"}, + "table:columns": COLUMN_DESCRIPTIONS, + } + + # %% add to STAC + catalog = pystac.Catalog.from_file(str(STAC_DIR / "catalog.json")) + + stac_io = DefaultStacIO() + layout = ParquetLayout() + + collection = create_collection(extra_fields={"base_url": uri}) + + for uri in uris: + GCS_url = urljoin(HREF_PREFIX, uri.split("/")[-1]) + print(GCS_url) + item = create_item(uri) + item.assets["data"].href = GCS_url # replace with https link iso gs uri + collection.add_item(item) + + collection.update_extent_from_items() + + items = list(collection.get_all_items()) + items_as_json = [i.to_dict() for i in items] + item_extents = stac_geoparquet.to_geodataframe(items_as_json) + with fsspec.open(GEOPARQUET_STAC_ITEMS_HREF, mode="wb") as f: + item_extents.to_parquet(f) + + collection.add_asset( + "geoparquet-stac-items", + pystac.Asset( + GCS_url, + title="GeoParquet STAC items", + description="Snapshot of the collection's STAC items exported to GeoParquet format.", + media_type=PARQUET_MEDIA_TYPE, + roles=["data"], + ), + ) + + # Set thumbnail directory + THUMB_DIR = pathlib.Path(__file__).parent.parent.joinpath("thumbnails") + THUMB_FILE = THUMB_DIR.joinpath(COLLECTION_ID + ".png") + + # Make sure image is reshaped to desired aspect ratio (default = 16/9) + cropped_im = reshape_aspectratio_image(str(THUMB_FILE)) + + # Overwrite image with cropped version + cv2.imwrite(str(THUMB_FILE), cropped_im) + + # Upload thumbnail to cloud + THUMB_URL = file_to_google_cloud( + str(THUMB_FILE), + GCS_PROJECT, + BUCKET_NAME, + BUCKET_PROJ, + "assets/thumbnails", + THUMB_FILE.name, + return_URL=True, + ) + + # Add thumbnail + collection.add_asset( + "thumbnail", + pystac.Asset( + THUMB_URL, # noqa: E501 + title="Thumbnail", + media_type=pystac.MediaType.PNG, + ), + ) + + if catalog.get_child(collection.id): + catalog.remove_child(collection.id) + print(f"Removed child: {collection.id}.") + + catalog.add_child(collection) + + collection.normalize_hrefs(str(STAC_DIR / collection.id), layout) + + collection.validate_all() + + catalog.save( + catalog_type=pystac.CatalogType.SELF_CONTAINED, + dest_href=str(STAC_DIR), + stac_io=stac_io, + ) + +# %% diff --git a/scripts/thumbnails/pp_stats.png b/scripts/thumbnails/pp_stats.png new file mode 100644 index 0000000000000000000000000000000000000000..e65bd4036e4e408acb5754741605bb9a8edb4704 GIT binary patch literal 169185 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 Z`5in;+&G2TMhN`4bL+lBp4=1f{{vkUT897t literal 0 HcmV?d00001 diff --git a/scripts/utils/stac_to_cloud.py b/scripts/utils/stac_to_cloud.py index 7ee6b29176..40ab548955 100644 --- a/scripts/utils/stac_to_cloud.py +++ b/scripts/utils/stac_to_cloud.py @@ -16,7 +16,7 @@ GCS_PROJECT = "coclico-11207608-002" BUCKET_NAME = "coclico-data-public" BUCKET_PROJ = "coclico" - STAC_NAME = "coclico-stac-18nov" # NOTE: if working from main STAC_NAME = 'coclico-stac', if working from branch STAC_NAME = coclico-stac-*** + STAC_NAME = "coclico-stac-15jan25" # NOTE: if working from main STAC_NAME = 'coclico-stac', if working from branch STAC_NAME = coclico-stac-*** IN_DIRNAME = "current" # hard-coded input params at project level diff --git a/src/coclicodata/coclico_stac/reshape_im.py b/src/coclicodata/coclico_stac/reshape_im.py index a360e90589..87200b6c5c 100644 --- a/src/coclicodata/coclico_stac/reshape_im.py +++ b/src/coclicodata/coclico_stac/reshape_im.py @@ -18,7 +18,7 @@ def reshape_aspectratio_image(image_file_path, aspect_ratio=16 / 9): return im # In case of too wide for aspect ratio - if im.shape[0] / im.shape[1] < aspect_ratio: + if im.shape[0] / im.shape[1] > aspect_ratio: # Determine the indexes for a square image middle_column = im.shape[1] / 2 left_column = round(middle_column - im.shape[0] * aspect_ratio / 2) From f32f4a58967ef09f669cbe1685695de13709cd6d Mon Sep 17 00:00:00 2001 From: mathvansoest <mathvansoest@gmail.com> Date: Mon, 20 Jan 2025 11:47:14 +0100 Subject: [PATCH 4/8] Latest update on pp-stats --- notebooks/26_pp_stats.ipynb | 1096 +++++++++++---------- scripts/create_stacs/26_pp_stats_stacs.py | 11 + 2 files changed, 610 insertions(+), 497 deletions(-) diff --git a/notebooks/26_pp_stats.ipynb b/notebooks/26_pp_stats.ipynb index f44c42e5ff..fde977e66e 100644 --- a/notebooks/26_pp_stats.ipynb +++ b/notebooks/26_pp_stats.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 69, "metadata": {}, "outputs": [], "source": [ @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 70, "metadata": {}, "outputs": [ { @@ -526,7 +526,7 @@ "[11965 rows x 387 columns]" ] }, - "execution_count": 14, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } @@ -541,7 +541,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 71, "metadata": {}, "outputs": [ { @@ -946,7 +946,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 72, "metadata": {}, "outputs": [ { @@ -1354,7 +1354,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 73, "metadata": {}, "outputs": [ { @@ -1917,7 +1917,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 74, "metadata": {}, "outputs": [ { @@ -2084,7 +2084,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 76, "metadata": {}, "outputs": [ { @@ -2580,16 +2580,16 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 80, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_8932\\839783844.py:22: RuntimeWarning: invalid value encountered in divide\n", + "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_8932\\693051340.py:22: RuntimeWarning: invalid value encountered in divide\n", " rel_affected = pop_aff_cur / tot_pop_cur\n", - "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_8932\\839783844.py:28: RuntimeWarning: invalid value encountered in divide\n", + "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_8932\\693051340.py:28: RuntimeWarning: invalid value encountered in divide\n", " rel_unaffected = abs_unaffected / tot_pop_cur\n" ] } @@ -2628,516 +2628,116 @@ " pop_stats_rel[col + suffixes[0]] = abs_affected\n", " pop_stats_rel[col + suffixes[1]] = rel_affected\n", " pop_stats_rel[col + suffixes[2]] = abs_unaffected\n", - " pop_stats_rel[col + suffixes[3]] = rel_unaffected\n" + " pop_stats_rel[col + suffixes[3]] = rel_unaffected\n", + "\n", + "# Convert the DataFrame to a GeoDataFrame\n", + "pop_stats_rel = gpd.GeoDataFrame(pop_stats_rel, geometry=pop_stats_red.geometry)" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 81, "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>GISCO_ID</th>\n", - " <th>CNTR_CODE</th>\n", - " <th>nuts_2</th>\n", - " <th>nuts_3</th>\n", - " <th>LAU_ID</th>\n", - " <th>LAU_NAME</th>\n", - " <th>POP_2020</th>\n", - " <th>POP_DENS_2</th>\n", - " <th>AREA_KM2</th>\n", - " <th>YEAR</th>\n", - " <th>...</th>\n", - " <th>UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected</th>\n", - " <th>UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected</th>\n", - " <th>UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected</th>\n", - " <th>UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected</th>\n", - " <th>UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected</th>\n", - " <th>UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected</th>\n", - " <th>UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected</th>\n", - " <th>UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected</th>\n", - " <th>UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected</th>\n", - " <th>UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>DE_03361001</td>\n", - " <td>DE</td>\n", - " <td>DE93</td>\n", - " <td>DE93B</td>\n", - " <td>03361001</td>\n", - " <td>Achim, Stadt</td>\n", - " <td>31923.0</td>\n", - " <td>471.398771</td>\n", - " <td>67.719735</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>0.752165</td>\n", - " <td>0.000012</td>\n", - " <td>63640.062694</td>\n", - " <td>0.999988</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>DE_03361002</td>\n", - " <td>DE</td>\n", - " <td>DE93</td>\n", - " <td>DE93B</td>\n", - " <td>03361002</td>\n", - " <td>Blender</td>\n", - " <td>2885.0</td>\n", - " <td>75.034640</td>\n", - " <td>38.448908</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>DE_03361003</td>\n", - " <td>DE</td>\n", - " <td>DE93</td>\n", - " <td>DE93B</td>\n", - " <td>03361003</td>\n", - " <td>Dörverden</td>\n", - " <td>9009.0</td>\n", - " <td>107.940908</td>\n", - " <td>83.462333</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>DE_03361004</td>\n", - " <td>DE</td>\n", - " <td>DE93</td>\n", - " <td>DE93B</td>\n", - " <td>03361004</td>\n", - " <td>Emtinghausen</td>\n", - " <td>1464.0</td>\n", - " <td>68.573846</td>\n", - " <td>21.349247</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>DE_03361005</td>\n", - " <td>DE</td>\n", - " <td>DE93</td>\n", - " <td>DE93B</td>\n", - " <td>03361005</td>\n", - " <td>Kirchlinteln</td>\n", - " <td>9911.0</td>\n", - " <td>56.675823</td>\n", - " <td>174.871744</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>...</th>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11960</th>\n", - " <td>FR_97614</td>\n", - " <td>FR</td>\n", - " <td>FRY5</td>\n", - " <td>FRY50</td>\n", - " <td>97614</td>\n", - " <td>Ouangani</td>\n", - " <td>10203.0</td>\n", - " <td>555.838786</td>\n", - " <td>18.356042</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11961</th>\n", - " <td>FR_97616</td>\n", - " <td>FR</td>\n", - " <td>FRY5</td>\n", - " <td>FRY50</td>\n", - " <td>97616</td>\n", - " <td>Sada</td>\n", - " <td>11156.0</td>\n", - " <td>1012.643086</td>\n", - " <td>11.016715</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11962</th>\n", - " <td>FR_97617</td>\n", - " <td>FR</td>\n", - " <td>FRY5</td>\n", - " <td>FRY50</td>\n", - " <td>97617</td>\n", - " <td>Tsingoni</td>\n", - " <td>13934.0</td>\n", - " <td>406.428213</td>\n", - " <td>34.284037</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11963</th>\n", - " <td>FR_97608</td>\n", - " <td>FR</td>\n", - " <td>FRY5</td>\n", - " <td>FRY50</td>\n", - " <td>97608</td>\n", - " <td>Dzaoudzi</td>\n", - " <td>17831.0</td>\n", - " <td>2797.974566</td>\n", - " <td>6.372824</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11964</th>\n", - " <td>FR_97615</td>\n", - " <td>FR</td>\n", - " <td>FRY5</td>\n", - " <td>FRY50</td>\n", - " <td>97615</td>\n", - " <td>Pamandzi</td>\n", - " <td>11442.0</td>\n", - " <td>2619.690480</td>\n", - " <td>4.367692</td>\n", - " <td>2020</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>11965 rows × 459 columns</p>\n", - "</div>" - ], - "text/plain": [ - " GISCO_ID CNTR_CODE nuts_2 nuts_3 LAU_ID LAU_NAME POP_2020 \\\n", - "0 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", - "1 DE_03361002 DE DE93 DE93B 03361002 Blender 2885.0 \n", - "2 DE_03361003 DE DE93 DE93B 03361003 Dörverden 9009.0 \n", - "3 DE_03361004 DE DE93 DE93B 03361004 Emtinghausen 1464.0 \n", - "4 DE_03361005 DE DE93 DE93B 03361005 Kirchlinteln 9911.0 \n", - "... ... ... ... ... ... ... ... \n", - "11960 FR_97614 FR FRY5 FRY50 97614 Ouangani 10203.0 \n", - "11961 FR_97616 FR FRY5 FRY50 97616 Sada 11156.0 \n", - "11962 FR_97617 FR FRY5 FRY50 97617 Tsingoni 13934.0 \n", - "11963 FR_97608 FR FRY5 FRY50 97608 Dzaoudzi 17831.0 \n", - "11964 FR_97615 FR FRY5 FRY50 97615 Pamandzi 11442.0 \n", - "\n", - " POP_DENS_2 AREA_KM2 YEAR ... \\\n", - "0 471.398771 67.719735 2020 ... \n", - "1 75.034640 38.448908 2020 ... \n", - "2 107.940908 83.462333 2020 ... \n", - "3 68.573846 21.349247 2020 ... \n", - "4 56.675823 174.871744 2020 ... \n", - "... ... ... ... ... \n", - "11960 555.838786 18.356042 2020 ... \n", - "11961 1012.643086 11.016715 2020 ... \n", - "11962 406.428213 34.284037 2020 ... \n", - "11963 2797.974566 6.372824 2020 ... \n", - "11964 2619.690480 4.367692 2020 ... \n", - "\n", - " UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected \\\n", - "0 0.752165 \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected \\\n", - "0 0.000012 \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", - "0 63640.062694 \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected \n", - "0 0.999988 \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "11960 NaN \n", - "11961 NaN \n", - "11962 NaN \n", - "11963 NaN \n", - "11964 NaN \n", - "\n", - "[11965 rows x 459 columns]" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "pop_stats_rel is a geodataframe\n" + ] } ], "source": [ - "pop_stats_rel" + "# Check if pop_stat_rel is still a geodataframe\n", + "if isinstance(pop_stats_rel, gpd.GeoDataFrame):\n", + " print(\"pop_stats_rel is a geodataframe\")" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 48, "metadata": {}, "outputs": [], "source": [ - "# Set geometry\n", - "pop_stats_rel = pop_stats_rel.set_geometry('geometry')" + "# Write parquet file\n", + "# parquet_file = ds_dir.joinpath(\"pop_fp_LAU_rel.parquet\")\n", + "# pop_stats_rel.to_parquet(parquet_file)" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 82, "metadata": {}, "outputs": [], "source": [ - "# Write parquet file\n", - "parquet_file = ds_dir.joinpath(\"pop_fp_LAU_rel.parquet\")\n", - "pop_stats_rel.to_parquet(parquet_file)" + "# Rename the FID column to 'LAU_FID'\n", + "pop_stats_rel.rename(columns={'FID': 'LAU_FID'}, inplace=True)\n", + "\n", + "# Also write to gpkg for front-end purposes\n", + "gpkg_file = ds_dir.joinpath(\"pop_fp_LAU.gpkg\")\n", + "pop_stats_rel.to_file(str(gpkg_file), layer='pp_LAU', driver='GPKG')" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GISCO_ID GISCO_ID\n", + "<class 'str'> 11965\n", + "Name: count, dtype: int64\n", + "CNTR_CODE CNTR_CODE\n", + "<class 'str'> 11965\n", + "Name: count, dtype: int64\n", + "nuts_2 nuts_2\n", + "<class 'str'> 11965\n", + "Name: count, dtype: int64\n", + "nuts_3 nuts_3\n", + "<class 'str'> 11965\n", + "Name: count, dtype: int64\n", + "LAU_ID LAU_ID\n", + "<class 'str'> 11965\n", + "Name: count, dtype: int64\n", + "LAU_NAME LAU_NAME\n", + "<class 'str'> 11965\n", + "Name: count, dtype: int64\n", + "FID FID\n", + "<class 'str'> 11965\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "for col in pop_stats_rel.select_dtypes(include=['object']).columns:\n", + " print(col, pop_stats_rel[col].apply(type).value_counts())" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'DataFrame' object has no attribute 'to_file'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_8932\\1732404851.py\u001b[0m in \u001b[0;36m?\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Write to geopackage\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mgpkg_file\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mds_dir\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoinpath\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"pop_fp_LAU_rel.gpkg\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mpop_stats_test\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_file\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgpkg_file\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlayer\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'pp_LAU_rel'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdriver\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'GPKG'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mindex\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32mc:\\SnapVolumesTemp\\MountPoints\\{45c63495-0000-0000-0000-100000000000}\\{93A17D55-84E7-4E6A-A12F-F4ABFCE7437E}\\SVROOT\\Users\\soest\\AppData\\Local\\mambaforge\\envs\\coclico\\Lib\\site-packages\\pandas\\core\\generic.py\u001b[0m in \u001b[0;36m?\u001b[1;34m(self, name)\u001b[0m\n\u001b[0;32m 5985\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mname\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_accessors\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5986\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5987\u001b[0m ):\n\u001b[0;32m 5988\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 5989\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m: 'DataFrame' object has no attribute 'to_file'" + ] + } + ], + "source": [ + "# Write to geopackage\n", + "gpkg_file = ds_dir.joinpath(\"pop_fp_LAU.gpkg\")\n", + "pop_stats_test.to_file(str(gpkg_file), layer='pp_LAU_rel', driver='GPKG')" ] }, { @@ -3616,6 +3216,508 @@ "for col in pop_stats_rel.columns:\n", " print(col)" ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>GISCO_ID</th>\n", + " <th>CNTR_CODE</th>\n", + " <th>nuts_2</th>\n", + " <th>nuts_3</th>\n", + " <th>LAU_ID</th>\n", + " <th>LAU_NAME</th>\n", + " <th>POP_2020</th>\n", + " <th>POP_DENS_2</th>\n", + " <th>AREA_KM2</th>\n", + " <th>YEAR</th>\n", + " <th>...</th>\n", + " <th>UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected</th>\n", + " <th>UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected</th>\n", + " <th>UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected</th>\n", + " <th>UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected</th>\n", + " <th>UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected</th>\n", + " <th>UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected</th>\n", + " <th>UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected</th>\n", + " <th>UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected</th>\n", + " <th>UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected</th>\n", + " <th>UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>DE_03361001</td>\n", + " <td>DE</td>\n", + " <td>DE93</td>\n", + " <td>DE93B</td>\n", + " <td>03361001</td>\n", + " <td>Achim, Stadt</td>\n", + " <td>31923.0</td>\n", + " <td>471.398771</td>\n", + " <td>67.719735</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>0.752165</td>\n", + " <td>0.000012</td>\n", + " <td>63640.062694</td>\n", + " <td>0.999988</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>DE_03361002</td>\n", + " <td>DE</td>\n", + " <td>DE93</td>\n", + " <td>DE93B</td>\n", + " <td>03361002</td>\n", + " <td>Blender</td>\n", + " <td>2885.0</td>\n", + " <td>75.034640</td>\n", + " <td>38.448908</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>DE_03361003</td>\n", + " <td>DE</td>\n", + " <td>DE93</td>\n", + " <td>DE93B</td>\n", + " <td>03361003</td>\n", + " <td>Dörverden</td>\n", + " <td>9009.0</td>\n", + " <td>107.940908</td>\n", + " <td>83.462333</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>DE_03361004</td>\n", + " <td>DE</td>\n", + " <td>DE93</td>\n", + " <td>DE93B</td>\n", + " <td>03361004</td>\n", + " <td>Emtinghausen</td>\n", + " <td>1464.0</td>\n", + " <td>68.573846</td>\n", + " <td>21.349247</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>DE_03361005</td>\n", + " <td>DE</td>\n", + " <td>DE93</td>\n", + " <td>DE93B</td>\n", + " <td>03361005</td>\n", + " <td>Kirchlinteln</td>\n", + " <td>9911.0</td>\n", + " <td>56.675823</td>\n", + " <td>174.871744</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11960</th>\n", + " <td>FR_97614</td>\n", + " <td>FR</td>\n", + " <td>FRY5</td>\n", + " <td>FRY50</td>\n", + " <td>97614</td>\n", + " <td>Ouangani</td>\n", + " <td>10203.0</td>\n", + " <td>555.838786</td>\n", + " <td>18.356042</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11961</th>\n", + " <td>FR_97616</td>\n", + " <td>FR</td>\n", + " <td>FRY5</td>\n", + " <td>FRY50</td>\n", + " <td>97616</td>\n", + " <td>Sada</td>\n", + " <td>11156.0</td>\n", + " <td>1012.643086</td>\n", + " <td>11.016715</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11962</th>\n", + " <td>FR_97617</td>\n", + " <td>FR</td>\n", + " <td>FRY5</td>\n", + " <td>FRY50</td>\n", + " <td>97617</td>\n", + " <td>Tsingoni</td>\n", + " <td>13934.0</td>\n", + " <td>406.428213</td>\n", + " <td>34.284037</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11963</th>\n", + " <td>FR_97608</td>\n", + " <td>FR</td>\n", + " <td>FRY5</td>\n", + " <td>FRY50</td>\n", + " <td>97608</td>\n", + " <td>Dzaoudzi</td>\n", + " <td>17831.0</td>\n", + " <td>2797.974566</td>\n", + " <td>6.372824</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11964</th>\n", + " <td>FR_97615</td>\n", + " <td>FR</td>\n", + " <td>FRY5</td>\n", + " <td>FRY50</td>\n", + " <td>97615</td>\n", + " <td>Pamandzi</td>\n", + " <td>11442.0</td>\n", + " <td>2619.690480</td>\n", + " <td>4.367692</td>\n", + " <td>2020</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>11965 rows × 459 columns</p>\n", + "</div>" + ], + "text/plain": [ + " GISCO_ID CNTR_CODE nuts_2 nuts_3 LAU_ID LAU_NAME POP_2020 \\\n", + "0 DE_03361001 DE DE93 DE93B 03361001 Achim, Stadt 31923.0 \n", + "1 DE_03361002 DE DE93 DE93B 03361002 Blender 2885.0 \n", + "2 DE_03361003 DE DE93 DE93B 03361003 Dörverden 9009.0 \n", + "3 DE_03361004 DE DE93 DE93B 03361004 Emtinghausen 1464.0 \n", + "4 DE_03361005 DE DE93 DE93B 03361005 Kirchlinteln 9911.0 \n", + "... ... ... ... ... ... ... ... \n", + "11960 FR_97614 FR FRY5 FRY50 97614 Ouangani 10203.0 \n", + "11961 FR_97616 FR FRY5 FRY50 97616 Sada 11156.0 \n", + "11962 FR_97617 FR FRY5 FRY50 97617 Tsingoni 13934.0 \n", + "11963 FR_97608 FR FRY5 FRY50 97608 Dzaoudzi 17831.0 \n", + "11964 FR_97615 FR FRY5 FRY50 97615 Pamandzi 11442.0 \n", + "\n", + " POP_DENS_2 AREA_KM2 YEAR ... \\\n", + "0 471.398771 67.719735 2020 ... \n", + "1 75.034640 38.448908 2020 ... \n", + "2 107.940908 83.462333 2020 ... \n", + "3 68.573846 21.349247 2020 ... \n", + "4 56.675823 174.871744 2020 ... \n", + "... ... ... ... ... \n", + "11960 555.838786 18.356042 2020 ... \n", + "11961 1012.643086 11.016715 2020 ... \n", + "11962 406.428213 34.284037 2020 ... \n", + "11963 2797.974566 6.372824 2020 ... \n", + "11964 2619.690480 4.367692 2020 ... \n", + "\n", + " UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\100\\High_End\\2150\\population_SSP5\\rel_unaffected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_affected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_affected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\1\\High_End\\2150\\population_SSP5\\rel_unaffected \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_affected \\\n", + "0 0.752165 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_affected \\\n", + "0 0.000012 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\abs_unaffected \\\n", + "0 63640.062694 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + " UNDEFENDED_MAPS\\static\\High_End\\2150\\population_SSP5\\rel_unaffected \n", + "0 0.999988 \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "11960 NaN \n", + "11961 NaN \n", + "11962 NaN \n", + "11963 NaN \n", + "11964 NaN \n", + "\n", + "[11965 rows x 459 columns]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Open parquet file from google bucket URL\n", + "# URL of the Parquet file\n", + "url = \"https://storage.googleapis.com/coclico-data-public/coclico/pp_stats/pop_fp_LAU_rel.parquet\"\n", + "\n", + "# Read the Parquet file\n", + "df = pd.read_parquet(url, engine='pyarrow')\n", + "\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/scripts/create_stacs/26_pp_stats_stacs.py b/scripts/create_stacs/26_pp_stats_stacs.py index 689a7f2902..42baeb9d04 100644 --- a/scripts/create_stacs/26_pp_stats_stacs.py +++ b/scripts/create_stacs/26_pp_stats_stacs.py @@ -354,6 +354,17 @@ def create_item( item.assets["data"].title = metadata["TITLE_ABBREVIATION"] item.assets["data"].description = metadata["SHORT_DESCRIPTION"] + vasset = pystac.Asset( # data asset + href="https://coclico.avi.deltares.nl/geoserver/%s/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=%s" + % (COLLECTION_ID, title), + media_type="application/png", + title=title, + description="OGS WMS url", + roles=["visual"], + ) + + item.add_asset("visual", vasset) + return item From ea81802ddb550eda3369cc58c255aea88e568f65 Mon Sep 17 00:00:00 2001 From: mathvansoest <mathvansoest@gmail.com> Date: Mon, 20 Jan 2025 14:15:58 +0100 Subject: [PATCH 5/8] New data added to the stac --- current/catalog.json | 12 +- current/pp/collection.json | 114 +--------- .../pp/items/SSP1/2010/SSP1_2010_EU_UK.json | 70 +++--- .../pp/items/SSP1/2030/SSP1_2030_EU_UK.json | 70 +++--- .../pp/items/SSP1/2050/SSP1_2050_EU_UK.json | 70 +++--- .../pp/items/SSP1/2100/SSP1_2100_EU_UK.json | 70 +++--- .../pp/items/SSP1/2150/SSP2_2010_EU_UK.json | 140 ++++++++++++ .../pp/items/SSP2/2010/SSP2_2030_EU_UK.json | 140 ++++++++++++ .../pp/items/SSP2/2030/SSP2_2050_EU_UK.json | 140 ++++++++++++ .../pp/items/SSP2/2050/SSP2_2100_EU_UK.json | 140 ++++++++++++ .../pp/items/SSP2/2100/SSP5_2010_EU_UK.json | 140 ++++++++++++ .../pp/items/SSP2/2150/SSP5_2030_EU_UK.json | 140 ++++++++++++ .../pp/items/SSP5/2010/SSP5_2050_EU_UK.json | 140 ++++++++++++ .../pp/items/SSP5/2030/SSP5_2100_EU_UK.json | 140 ++++++++++++ notebooks/26_pp.ipynb | 209 +++++------------- 15 files changed, 1337 insertions(+), 398 deletions(-) create mode 100644 current/pp/items/SSP1/2150/SSP2_2010_EU_UK.json create mode 100644 current/pp/items/SSP2/2010/SSP2_2030_EU_UK.json create mode 100644 current/pp/items/SSP2/2030/SSP2_2050_EU_UK.json create mode 100644 current/pp/items/SSP2/2050/SSP2_2100_EU_UK.json create mode 100644 current/pp/items/SSP2/2100/SSP5_2010_EU_UK.json create mode 100644 current/pp/items/SSP2/2150/SSP5_2030_EU_UK.json create mode 100644 current/pp/items/SSP5/2010/SSP5_2050_EU_UK.json create mode 100644 current/pp/items/SSP5/2030/SSP5_2100_EU_UK.json diff --git a/current/catalog.json b/current/catalog.json index cc947ed2be..c30e24aa1e 100644 --- a/current/catalog.json +++ b/current/catalog.json @@ -94,12 +94,6 @@ "type": "application/json", "title": "Global Coastal Transect Repository (GCTR)" }, - { - "rel": "child", - "href": "./pp/collection.json", - "type": "application/json", - "title": "Population Projections" - }, { "rel": "child", "href": "./ceed/collection.json", @@ -201,6 +195,12 @@ "href": "./pp_stats/collection.json", "type": "application/json", "title": "Population exposed to flooding per LAU" + }, + { + "rel": "child", + "href": "./pp/collection.json", + "type": "application/json", + "title": "Population Projections" } ], "assets": { diff --git a/current/pp/collection.json b/current/pp/collection.json index 48ae2c8236..05f3a331d8 100644 --- a/current/pp/collection.json +++ b/current/pp/collection.json @@ -10,41 +10,21 @@ "type": "text/html", "title": "ODbL-1.0 License" }, - { - "rel": "item", - "href": "./items/SSP1/2010/SSP1_2010_Europe.json", - "type": "application/json" - }, { "rel": "item", "href": "./items/SSP1/2010/SSP1_2010_EU_UK.json", "type": "application/json" }, - { - "rel": "item", - "href": "./items/SSP1/2030/SSP1_2030_Europe.json", - "type": "application/json" - }, { "rel": "item", "href": "./items/SSP1/2030/SSP1_2030_EU_UK.json", "type": "application/json" }, - { - "rel": "item", - "href": "./items/SSP1/2050/SSP1_2050_Europe.json", - "type": "application/json" - }, { "rel": "item", "href": "./items/SSP1/2050/SSP1_2050_EU_UK.json", "type": "application/json" }, - { - "rel": "item", - "href": "./items/SSP1/2100/SSP1_2100_Europe.json", - "type": "application/json" - }, { "rel": "item", "href": "./items/SSP1/2100/SSP1_2100_EU_UK.json", @@ -52,112 +32,42 @@ }, { "rel": "item", - "href": "./items/SSP1/2150/SSP1_2150_Europe.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP1/2150/SSP1_2150_EU_UK.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2010/SSP2_2010_Europe.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2010/SSP2_2010_EU_UK.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2030/SSP2_2030_Europe.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2030/SSP2_2030_EU_UK.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2050/SSP2_2050_Europe.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2050/SSP2_2050_EU_UK.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2100/SSP2_2100_Europe.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2100/SSP2_2100_EU_UK.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2150/SSP2_2150_Europe.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP2/2150/SSP2_2150_EU_UK.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP5/2010/SSP5_2010_Europe.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP5/2010/SSP5_2010_EU_UK.json", - "type": "application/json" - }, - { - "rel": "item", - "href": "./items/SSP5/2030/SSP5_2030_Europe.json", + "href": "./items/SSP1/2150/SSP2_2010_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2030/SSP5_2030_EU_UK.json", + "href": "./items/SSP2/2010/SSP2_2030_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2050/SSP5_2050_Europe.json", + "href": "./items/SSP2/2030/SSP2_2050_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2050/SSP5_2050_EU_UK.json", + "href": "./items/SSP2/2050/SSP2_2100_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2100/SSP5_2100_Europe.json", + "href": "./items/SSP2/2100/SSP5_2010_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2100/SSP5_2100_EU_UK.json", + "href": "./items/SSP2/2150/SSP5_2030_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2150/SSP5_2150_Europe.json", + "href": "./items/SSP5/2010/SSP5_2050_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2150/SSP5_2150_EU_UK.json", + "href": "./items/SSP5/2030/SSP5_2100_EU_UK.json", "type": "application/json" }, { @@ -198,10 +108,10 @@ "spatial": { "bbox": [ [ - -180.0, - 27.633333333333336, - 180.0, - 81.85833333340524 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ] ] }, diff --git a/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json b/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json index 2552715d46..4fe53ad360 100644 --- a/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json +++ b/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP1/2010/SSP1_2010_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:44.174539Z", + "created": "2025-01-20T11:20:41.146804Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,35 +20,35 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP1/2010/SSP1_2010_EU_UK.tif", "datetime": "2022-02-22T00:00:00Z" @@ -58,24 +58,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -105,7 +105,7 @@ "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2010/SSP1_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 8937382, + "file:size": 12477116, "raster:bands": [ { "nodata": -9999, @@ -125,10 +125,10 @@ } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json b/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json index f8428d03f1..0a20f896c6 100644 --- a/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json +++ b/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP1/2030/SSP1_2030_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:44.352538Z", + "created": "2025-01-20T11:20:41.186810Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,35 +20,35 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP1/2030/SSP1_2030_EU_UK.tif", "datetime": "2022-02-22T00:00:00Z" @@ -58,24 +58,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -105,7 +105,7 @@ "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2030/SSP1_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 8482813, + "file:size": 12303548, "raster:bands": [ { "nodata": -9999, @@ -125,10 +125,10 @@ } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json b/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json index 04b6981542..c0ecebc35d 100644 --- a/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json +++ b/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP1/2050/SSP1_2050_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:44.544539Z", + "created": "2025-01-20T11:20:41.219809Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,35 +20,35 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP1/2050/SSP1_2050_EU_UK.tif", "datetime": "2022-02-22T00:00:00Z" @@ -58,24 +58,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -105,7 +105,7 @@ "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2050/SSP1_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 7949877, + "file:size": 12022638, "raster:bands": [ { "nodata": -9999, @@ -125,10 +125,10 @@ } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json b/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json index 310cf38889..2f662b541f 100644 --- a/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json +++ b/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP1/2100/SSP1_2100_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:44.735539Z", + "created": "2025-01-20T11:20:41.253808Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,35 +20,35 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP1/2100/SSP1_2100_EU_UK.tif", "datetime": "2022-02-22T00:00:00Z" @@ -58,24 +58,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -105,7 +105,7 @@ "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2100/SSP1_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 6480315, + "file:size": 10853695, "raster:bands": [ { "nodata": -9999, @@ -125,10 +125,10 @@ } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP1/2150/SSP2_2010_EU_UK.json b/current/pp/items/SSP1/2150/SSP2_2010_EU_UK.json new file mode 100644 index 0000000000..396724a1c4 --- /dev/null +++ b/current/pp/items/SSP1/2150/SSP2_2010_EU_UK.json @@ -0,0 +1,140 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP1/2150/SSP2_2010_EU_UK.tif", + "properties": { + "created": "2025-01-20T11:20:41.289809Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP1/2150/SSP2_2010_EU_UK.tif", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2150/SSP2_2010_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12477116, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP2/2010/SSP2_2030_EU_UK.json b/current/pp/items/SSP2/2010/SSP2_2030_EU_UK.json new file mode 100644 index 0000000000..6976039462 --- /dev/null +++ b/current/pp/items/SSP2/2010/SSP2_2030_EU_UK.json @@ -0,0 +1,140 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP2/2010/SSP2_2030_EU_UK.tif", + "properties": { + "created": "2025-01-20T11:20:41.324810Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP2/2010/SSP2_2030_EU_UK.tif", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2010/SSP2_2030_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12291085, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP2/2030/SSP2_2050_EU_UK.json b/current/pp/items/SSP2/2030/SSP2_2050_EU_UK.json new file mode 100644 index 0000000000..d413cfa540 --- /dev/null +++ b/current/pp/items/SSP2/2030/SSP2_2050_EU_UK.json @@ -0,0 +1,140 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP2/2030/SSP2_2050_EU_UK.tif", + "properties": { + "created": "2025-01-20T11:20:41.369810Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP2/2030/SSP2_2050_EU_UK.tif", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2030/SSP2_2050_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12000849, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP2/2050/SSP2_2100_EU_UK.json b/current/pp/items/SSP2/2050/SSP2_2100_EU_UK.json new file mode 100644 index 0000000000..e2b0003dcf --- /dev/null +++ b/current/pp/items/SSP2/2050/SSP2_2100_EU_UK.json @@ -0,0 +1,140 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP2/2050/SSP2_2100_EU_UK.tif", + "properties": { + "created": "2025-01-20T11:20:41.413811Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP2/2050/SSP2_2100_EU_UK.tif", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2050/SSP2_2100_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 11374839, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP2/2100/SSP5_2010_EU_UK.json b/current/pp/items/SSP2/2100/SSP5_2010_EU_UK.json new file mode 100644 index 0000000000..ed04444332 --- /dev/null +++ b/current/pp/items/SSP2/2100/SSP5_2010_EU_UK.json @@ -0,0 +1,140 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP2/2100/SSP5_2010_EU_UK.tif", + "properties": { + "created": "2025-01-20T11:20:41.449811Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP2/2100/SSP5_2010_EU_UK.tif", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2100/SSP5_2010_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12477116, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP2/2150/SSP5_2030_EU_UK.json b/current/pp/items/SSP2/2150/SSP5_2030_EU_UK.json new file mode 100644 index 0000000000..02ee8a61d2 --- /dev/null +++ b/current/pp/items/SSP2/2150/SSP5_2030_EU_UK.json @@ -0,0 +1,140 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP2/2150/SSP5_2030_EU_UK.tif", + "properties": { + "created": "2025-01-20T11:20:41.495811Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP2/2150/SSP5_2030_EU_UK.tif", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2150/SSP5_2030_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12311859, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP5/2010/SSP5_2050_EU_UK.json b/current/pp/items/SSP5/2010/SSP5_2050_EU_UK.json new file mode 100644 index 0000000000..13c31b8b9b --- /dev/null +++ b/current/pp/items/SSP5/2010/SSP5_2050_EU_UK.json @@ -0,0 +1,140 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP5/2010/SSP5_2050_EU_UK.tif", + "properties": { + "created": "2025-01-20T11:20:41.535808Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP5/2010/SSP5_2050_EU_UK.tif", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2010/SSP5_2050_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12124123, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP5/2030/SSP5_2100_EU_UK.json b/current/pp/items/SSP5/2030/SSP5_2100_EU_UK.json new file mode 100644 index 0000000000..da0cbd26e6 --- /dev/null +++ b/current/pp/items/SSP5/2030/SSP5_2100_EU_UK.json @@ -0,0 +1,140 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP5/2030/SSP5_2100_EU_UK.tif", + "properties": { + "created": "2025-01-20T11:20:41.570812Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP5/2030/SSP5_2100_EU_UK.tif", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2030/SSP5_2100_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 11314430, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/notebooks/26_pp.ipynb b/notebooks/26_pp.ipynb index abe4041380..81be822976 100644 --- a/notebooks/26_pp.ipynb +++ b/notebooks/26_pp.ipynb @@ -42,32 +42,24 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_16840\\1639954749.py:7: DeprecationWarning: Shapely 2.0 is installed, but because PyGEOS is also installed, GeoPandas still uses PyGEOS by default. However, starting with version 0.14, the default will switch to Shapely. To force to use Shapely 2.0 now, you can either uninstall PyGEOS or set the environment variable USE_PYGEOS=0. You can do this before starting the Python process, or in your code before importing geopandas:\n", + "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_12428\\1639954749.py:7: DeprecationWarning: Shapely 2.0 is installed, but because PyGEOS is also installed, GeoPandas still uses PyGEOS by default. However, starting with version 0.14, the default will switch to Shapely. To force to use Shapely 2.0 now, you can either uninstall PyGEOS or set the environment variable USE_PYGEOS=0. You can do this before starting the Python process, or in your code before importing geopandas:\n", "\n", "import os\n", "os.environ['USE_PYGEOS'] = '0'\n", "import geopandas\n", "\n", "In the next release, GeoPandas will switch to using Shapely by default, even if PyGEOS is installed. If you only have PyGEOS installed to get speed-ups, this switch should be smooth. However, if you are using PyGEOS directly (calling PyGEOS functions on geometries from GeoPandas), this will then stop working and you are encouraged to migrate from PyGEOS to Shapely 2.0 (https://shapely.readthedocs.io/en/latest/migration_pygeos.html).\n", - " import geopandas as gpd\n" + " import geopandas as gpd\n", + "c:\\SnapVolumesTemp\\MountPoints\\{45c63495-0000-0000-0000-100000000000}\\{93A17D55-84E7-4E6A-A12F-F4ABFCE7437E}\\SVROOT\\Users\\soest\\AppData\\Local\\mambaforge\\envs\\coclico\\Lib\\site-packages\\dask\\dataframe\\_pyarrow_compat.py:17: FutureWarning: Minimal version of pyarrow will soon be increased to 14.0.1. You are using 12.0.1. Please consider upgrading.\n", + " warnings.warn(\n" ] - }, - { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 3;\n var nbb_unformatted_code = \"# Import standard packages\\nimport os\\nimport glob\\nimport pathlib\\nimport sys\\nimport numpy as np\\nimport geopandas as gpd\\nimport pandas as pd\\nimport matplotlib.pyplot as plt\\nimport xarray as xr\\nfrom dotenv import load_dotenv\\nimport math\\nfrom pathlib import Path\\nfrom typing import Any, Dict, List, Optional, Tuple, Union\\nimport rioxarray as rio\\n#load_dotenv()\\n\\n# Import custom functionality\\nfrom coclicodata.drive_config import p_drive\\nfrom coclicodata.etl.cf_compliancy_checker import check_compliancy, save_compliancy\\nfrom coastmonitor.io.utils import name_block\\n\\n# Define (local and) remote drives\\ncoclico_data_dir = p_drive.joinpath(\\\"11207608-coclico\\\", \\\"FULLTRACK_DATA\\\")\\n\\n# Workaround to the Windows OS (10) udunits error after installation of cfchecker: https://github.com/SciTools/iris/issues/404\\nos.environ[\\\"UDUNITS2_XML_PATH\\\"] = str(\\n pathlib.Path().home().joinpath( # change to the udunits2.xml file dir in your Python installation\\n r\\\"Anaconda3\\\\pkgs\\\\udunits2-2.2.28-h892ecd3_0\\\\Library\\\\share\\\\udunits\\\\udunits2.xml\\\"\\n )\\n)\\n\\n# use local or remote data dir\\nuse_local_data = False\\nds_dirname = \\\"WP5\\\"\\n\\nif use_local_data: \\n ds_dir = pathlib.Path().home().joinpath(\\\"data\\\", \\\"tmp\\\", ds_dirname)\\nelse: \\n ds_dir = coclico_data_dir.joinpath(ds_dirname)\\n\\nif not ds_dir.exists():\\n raise FileNotFoundError(\\\"Directory with data does not exist.\\\")\\n\\n# directory to export result (make if not exists)\\ncog_dir = ds_dir.joinpath(\\\"single_cog_test\\\") # for checking CF compliancy\\ncog_dirs = ds_dir.joinpath(\\\"cogs\\\") # for making all files CF compliant\\ncog_dir.mkdir(parents=True, exist_ok=True)\\ncog_dirs.mkdir(parents=True, exist_ok=True)\";\n var nbb_formatted_code = \"# Import standard packages\\nimport os\\nimport glob\\nimport pathlib\\nimport sys\\nimport numpy as np\\nimport geopandas as gpd\\nimport pandas as pd\\nimport matplotlib.pyplot as plt\\nimport xarray as xr\\nfrom dotenv import load_dotenv\\nimport math\\nfrom pathlib import Path\\nfrom typing import Any, Dict, List, Optional, Tuple, Union\\nimport rioxarray as rio\\n\\n# load_dotenv()\\n\\n# Import custom functionality\\nfrom coclicodata.drive_config import p_drive\\nfrom coclicodata.etl.cf_compliancy_checker import check_compliancy, save_compliancy\\nfrom coastmonitor.io.utils import name_block\\n\\n# Define (local and) remote drives\\ncoclico_data_dir = p_drive.joinpath(\\\"11207608-coclico\\\", \\\"FULLTRACK_DATA\\\")\\n\\n# Workaround to the Windows OS (10) udunits error after installation of cfchecker: https://github.com/SciTools/iris/issues/404\\nos.environ[\\\"UDUNITS2_XML_PATH\\\"] = str(\\n pathlib.Path()\\n .home()\\n .joinpath( # change to the udunits2.xml file dir in your Python installation\\n r\\\"Anaconda3\\\\pkgs\\\\udunits2-2.2.28-h892ecd3_0\\\\Library\\\\share\\\\udunits\\\\udunits2.xml\\\"\\n )\\n)\\n\\n# use local or remote data dir\\nuse_local_data = False\\nds_dirname = \\\"WP5\\\"\\n\\nif use_local_data:\\n ds_dir = pathlib.Path().home().joinpath(\\\"data\\\", \\\"tmp\\\", ds_dirname)\\nelse:\\n ds_dir = coclico_data_dir.joinpath(ds_dirname)\\n\\nif not ds_dir.exists():\\n raise FileNotFoundError(\\\"Directory with data does not exist.\\\")\\n\\n# directory to export result (make if not exists)\\ncog_dir = ds_dir.joinpath(\\\"single_cog_test\\\") # for checking CF compliancy\\ncog_dirs = ds_dir.joinpath(\\\"cogs\\\") # for making all files CF compliant\\ncog_dir.mkdir(parents=True, exist_ok=True)\\ncog_dirs.mkdir(parents=True, exist_ok=True)\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -124,42 +116,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 11, "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 4;\n var nbb_unformatted_code = \"# Project paths & files (manual input)\\ntest_path = ds_dir.joinpath(\\\"pilot\\\",\\\"population\\\",\\\"SSP1_2010_Europe.tif\\\")\\nCF_dir = ds_dir.joinpath(\\\"CF\\\")\";\n var nbb_formatted_code = \"# Project paths & files (manual input)\\ntest_path = ds_dir.joinpath(\\\"pilot\\\", \\\"population\\\", \\\"SSP1_2010_Europe.tif\\\")\\nCF_dir = ds_dir.joinpath(\\\"CF\\\")\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Project paths & files (manual input)\n", - "test_path = ds_dir.joinpath(\"pilot\",\"population\",\"SSP1_2010_Europe.tif\")\n", + "test_path = ds_dir.joinpath(\"data\",\"population_v2\",\"SSP1_2010_EU_UK.tif\")\n", "CF_dir = ds_dir.joinpath(\"CF\")" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 12, "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 5;\n var nbb_unformatted_code = \"# NetCDF attribute alterations by means of metadata template\\nimport json\\nmeta_json = open(ds_dir.joinpath(\\\"metadata\\\", \\\"metadata_population.json\\\"), 'r')\\nmeta_data = json.load(meta_json)\\n\\n# NOTE: json module can not handle trailing comma's, these have manually been deleted from the data\";\n var nbb_formatted_code = \"# NetCDF attribute alterations by means of metadata template\\nimport json\\n\\nmeta_json = open(ds_dir.joinpath(\\\"metadata\\\", \\\"metadata_population.json\\\"), \\\"r\\\")\\nmeta_data = json.load(meta_json)\\n\\n# NOTE: json module can not handle trailing comma's, these have manually been deleted from the data\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# NetCDF attribute alterations by means of metadata template\n", "import json\n", @@ -171,31 +141,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 13, "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'pp' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[6], line 4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# Run gdal info to check no_data_value shown as _FillValue in xarray\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;66;03m# For this data its: -2147483647\u001b[39;00m\n\u001b[0;32m 3\u001b[0m pp_test \u001b[38;5;241m=\u001b[39m xr\u001b[38;5;241m.\u001b[39mopen_dataset(test_path, engine\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrasterio\u001b[39m\u001b[38;5;124m\"\u001b[39m, mask_and_scale\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m) \n\u001b[1;32m----> 4\u001b[0m \u001b[43mpp\u001b[49m\n", - "\u001b[1;31mNameError\u001b[0m: name 'pp' is not defined" - ] - }, - { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 6;\n var nbb_unformatted_code = \"# Run gdal info to check no_data_value shown as _FillValue in xarray\\n# For this data its: -2147483647\\npp_test = xr.open_dataset(test_path, engine=\\\"rasterio\\\", mask_and_scale=False) \\npp\";\n var nbb_formatted_code = \"# Run gdal info to check no_data_value shown as _FillValue in xarray\\n# For this data its: -2147483647\\npp_test = xr.open_dataset(test_path, engine=\\\"rasterio\\\", mask_and_scale=False)\\npp\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Run gdal info to check no_data_value shown as _FillValue in xarray\n", "# For this data its: -2147483647\n", @@ -204,18 +152,16 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 14, "metadata": {}, "outputs": [ { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 7;\n var nbb_unformatted_code = \"# Test for single .tif-file\\npp_test = xr.open_dataset(test_path, engine=\\\"rasterio\\\", mask_and_scale=False) \\npp_test = pp_test.assign_coords(band=(\\\"band\\\", [f\\\"B{k+1:02}\\\" for k in range(pp_test.dims[\\\"band\\\"])]))\\npp_test = pp_test[\\\"band_data\\\"].to_dataset(\\\"band\\\")\\n\\nfor var in pp_test:\\n\\n da = pp_test[var]\\n\\n da = (\\n da.where(da != -2147483647, -9999)\\n .astype(\\\"int32\\\")\\n .rio.write_nodata(-9999)\\n .rio.set_spatial_dims(x_dim=\\\"x\\\", y_dim=\\\"y\\\")\\n )\\n\\n item_name = name_block(\\n da,\\n storage_prefix=\\\"\\\",\\n name_prefix=\\\"\\\",\\n include_band=da.name,\\n time_dim=False,\\n x_dim=\\\"x\\\",\\n y_dim=\\\"y\\\",\\n )\\n\\n # convert to dataset\\n dad = da.to_dataset()\\n\\n # add all attributes (again)\\n for attr_name, attr_val in meta_data.items():\\n if attr_name == 'PROVIDERS':\\n attr_val = json.dumps(attr_val)\\n if attr_name == \\\"MEDIA_TYPE\\\": # change media type to tiff, leave the rest as is\\n attr_val = \\\"IMAGE/TIFF\\\"\\n dad.attrs[attr_name] = attr_val\\n\\n dad.attrs['Conventions'] = \\\"CF-1.8\\\"\\n\\n # export file\\n outpath = cog_dir.joinpath(item_name)\\n dad.rio.to_raster(outpath, driver= 'COG')\";\n var nbb_formatted_code = \"# Test for single .tif-file\\npp_test = xr.open_dataset(test_path, engine=\\\"rasterio\\\", mask_and_scale=False)\\npp_test = pp_test.assign_coords(\\n band=(\\\"band\\\", [f\\\"B{k+1:02}\\\" for k in range(pp_test.dims[\\\"band\\\"])])\\n)\\npp_test = pp_test[\\\"band_data\\\"].to_dataset(\\\"band\\\")\\n\\nfor var in pp_test:\\n da = pp_test[var]\\n\\n da = (\\n da.where(da != -2147483647, -9999)\\n .astype(\\\"int32\\\")\\n .rio.write_nodata(-9999)\\n .rio.set_spatial_dims(x_dim=\\\"x\\\", y_dim=\\\"y\\\")\\n )\\n\\n item_name = name_block(\\n da,\\n storage_prefix=\\\"\\\",\\n name_prefix=\\\"\\\",\\n include_band=da.name,\\n time_dim=False,\\n x_dim=\\\"x\\\",\\n y_dim=\\\"y\\\",\\n )\\n\\n # convert to dataset\\n dad = da.to_dataset()\\n\\n # add all attributes (again)\\n for attr_name, attr_val in meta_data.items():\\n if attr_name == \\\"PROVIDERS\\\":\\n attr_val = json.dumps(attr_val)\\n if attr_name == \\\"MEDIA_TYPE\\\": # change media type to tiff, leave the rest as is\\n attr_val = \\\"IMAGE/TIFF\\\"\\n dad.attrs[attr_name] = attr_val\\n\\n dad.attrs[\\\"Conventions\\\"] = \\\"CF-1.8\\\"\\n\\n # export file\\n outpath = cog_dir.joinpath(item_name)\\n dad.rio.to_raster(outpath, driver=\\\"COG\\\")\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_12428\\4287484678.py:3: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + " pp_test = pp_test.assign_coords(band=(\"band\", [f\"B{k+1:02}\" for k in range(pp_test.dims[\"band\"])]))\n" + ] } ], "source": [ @@ -266,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -274,21 +220,11 @@ "output_type": "stream", "text": [ "min of created COG: 1\n", - "min of original TIF: 1\n", - "max of created COG: 81283\n", - "max of original TIF: 81283\n", + "min of original TIF: 1.8026876e-06\n", + "max of created COG: 28445\n", + "max of original TIF: 28445.998\n", "Values should be the same\n" ] - }, - { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 8;\n var nbb_unformatted_code = \"# Check newly created .tif\\n\\npp_test_new = xr.open_dataset(outpath, engine=\\\"rasterio\\\", mask_and_scale=False)\\n\\nprint('min of created COG: ' + str(np.min(pp_test_new['band_data'].values[pp_test_new['band_data'].values>0]))) # For min no data values are excluded\\nprint('min of original TIF: ' + str(np.min(pp_test['B01'].values[pp_test['B01'].values>0]))) # For min no data values are excluded\\nprint('max of created COG: ' + str(np.max(pp_test_new['band_data'].values)))\\nprint('max of original TIF: ' + str(np.max(pp_test['B01'].values)))\\nprint('Values should be the same')\";\n var nbb_formatted_code = \"# Check newly created .tif\\n\\npp_test_new = xr.open_dataset(outpath, engine=\\\"rasterio\\\", mask_and_scale=False)\\n\\nprint(\\n \\\"min of created COG: \\\"\\n + str(np.min(pp_test_new[\\\"band_data\\\"].values[pp_test_new[\\\"band_data\\\"].values > 0]))\\n) # For min no data values are excluded\\nprint(\\n \\\"min of original TIF: \\\"\\n + str(np.min(pp_test[\\\"B01\\\"].values[pp_test[\\\"B01\\\"].values > 0]))\\n) # For min no data values are excluded\\nprint(\\\"max of created COG: \\\" + str(np.max(pp_test_new[\\\"band_data\\\"].values)))\\nprint(\\\"max of original TIF: \\\" + str(np.max(pp_test[\\\"B01\\\"].values)))\\nprint(\\\"Values should be the same\\\")\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -305,7 +241,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -314,19 +250,9 @@ "WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/CF')" ] }, - "execution_count": 24, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 24;\n var nbb_unformatted_code = \"# export to nc for quick CF compliancy check..\\ndad.to_netcdf(path=cog_dir.joinpath(item_name.replace(\\\".tif\\\", \\\".nc\\\")))\\n\\nCF_dir\";\n var nbb_formatted_code = \"# export to nc for quick CF compliancy check..\\ndad.to_netcdf(path=cog_dir.joinpath(item_name.replace(\\\".tif\\\", \\\".nc\\\")))\\n\\nCF_dir\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -338,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -350,14 +276,14 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'P:\\\\11207608-coclico\\\\FULLTRACK_DATA\\\\WP5\\\\single_cog_test\\\\B01_x-180.0_y27.64.nc': {'warnings': '5', 'errors': '0'}}\n" + "{'P:\\\\11207608-coclico\\\\FULLTRACK_DATA\\\\WP5\\\\single_cog_test\\\\B01_x=-25.39_y=33.85.nc': {'warnings': '7', 'errors': '0'}}\n" ] } ], @@ -368,20 +294,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 23, "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 9;\n var nbb_unformatted_code = \"def get_paths(folder_structure, base_dir=''):\\n \\\"\\\"\\\"Generate paths for a folder structure defined by a dict\\\"\\\"\\\"\\n paths = []\\n for key, value in folder_structure.items():\\n if isinstance(value, dict):\\n paths.extend(get_paths(value, os.path.join(base_dir, key)))\\n elif isinstance(value, list):\\n if value:\\n for item in value:\\n if item != \\\"\\\":\\n paths.append(os.path.join(base_dir, key, item))\\n else:\\n paths.append(os.path.join(base_dir, key))\\n else:\\n continue\\n return paths\\n\\n# List all tif files present in first folder (note: it is assumed that the same files are present in all folders)\\ntif_list = glob.glob(str(ds_dir.joinpath(\\\"pilot\\\", \\\"population\\\", \\\"*.tif\\\")))\\n\\n# List the desired folder structure as a dict\\n# NOTE: make sure the resulting path_list (based on folder structure) matches the tif_list\\n# NOTE: shortcut taken by calling every year twice, because there are two tif's per year. \\nfolder_structure = {\\n \\\"SSP1\\\": [\\\"2010\\\",\\\"2010\\\",\\\"2030\\\",\\\"2030\\\",\\\"2050\\\",\\\"2050\\\",\\\"2100\\\",\\\"2100\\\",\\\"2150\\\",\\\"2150\\\"],\\n \\\"SSP2\\\": [\\\"2010\\\",\\\"2010\\\",\\\"2030\\\",\\\"2030\\\",\\\"2050\\\",\\\"2050\\\",\\\"2100\\\",\\\"2100\\\",\\\"2150\\\",\\\"2150\\\"],\\n \\\"SSP5\\\": [\\\"2010\\\",\\\"2010\\\",\\\"2030\\\",\\\"2030\\\",\\\"2050\\\",\\\"2050\\\",\\\"2100\\\",\\\"2100\\\",\\\"2150\\\",\\\"2150\\\"],\\n}\\n\\n# Get list of paths for the folder structure\\npath_list = get_paths(folder_structure)\";\n var nbb_formatted_code = \"def get_paths(folder_structure, base_dir=\\\"\\\"):\\n \\\"\\\"\\\"Generate paths for a folder structure defined by a dict\\\"\\\"\\\"\\n paths = []\\n for key, value in folder_structure.items():\\n if isinstance(value, dict):\\n paths.extend(get_paths(value, os.path.join(base_dir, key)))\\n elif isinstance(value, list):\\n if value:\\n for item in value:\\n if item != \\\"\\\":\\n paths.append(os.path.join(base_dir, key, item))\\n else:\\n paths.append(os.path.join(base_dir, key))\\n else:\\n continue\\n return paths\\n\\n\\n# List all tif files present in first folder (note: it is assumed that the same files are present in all folders)\\ntif_list = glob.glob(str(ds_dir.joinpath(\\\"pilot\\\", \\\"population\\\", \\\"*.tif\\\")))\\n\\n# List the desired folder structure as a dict\\n# NOTE: make sure the resulting path_list (based on folder structure) matches the tif_list\\n# NOTE: shortcut taken by calling every year twice, because there are two tif's per year.\\nfolder_structure = {\\n \\\"SSP1\\\": [\\n \\\"2010\\\",\\n \\\"2010\\\",\\n \\\"2030\\\",\\n \\\"2030\\\",\\n \\\"2050\\\",\\n \\\"2050\\\",\\n \\\"2100\\\",\\n \\\"2100\\\",\\n \\\"2150\\\",\\n \\\"2150\\\",\\n ],\\n \\\"SSP2\\\": [\\n \\\"2010\\\",\\n \\\"2010\\\",\\n \\\"2030\\\",\\n \\\"2030\\\",\\n \\\"2050\\\",\\n \\\"2050\\\",\\n \\\"2100\\\",\\n \\\"2100\\\",\\n \\\"2150\\\",\\n \\\"2150\\\",\\n ],\\n \\\"SSP5\\\": [\\n \\\"2010\\\",\\n \\\"2010\\\",\\n \\\"2030\\\",\\n \\\"2030\\\",\\n \\\"2050\\\",\\n \\\"2050\\\",\\n \\\"2100\\\",\\n \\\"2100\\\",\\n \\\"2150\\\",\\n \\\"2150\\\",\\n ],\\n}\\n\\n# Get list of paths for the folder structure\\npath_list = get_paths(folder_structure)\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "def get_paths(folder_structure, base_dir=''):\n", " \"\"\"Generate paths for a folder structure defined by a dict\"\"\"\n", @@ -401,15 +316,15 @@ " return paths\n", "\n", "# List all tif files present in first folder (note: it is assumed that the same files are present in all folders)\n", - "tif_list = glob.glob(str(ds_dir.joinpath(\"pilot\", \"population\", \"*.tif\")))\n", + "tif_list = glob.glob(str(ds_dir.joinpath(\"data\",\"population_v2\", \"*.tif\")))\n", "\n", "# List the desired folder structure as a dict\n", "# NOTE: make sure the resulting path_list (based on folder structure) matches the tif_list\n", "# NOTE: shortcut taken by calling every year twice, because there are two tif's per year. \n", "folder_structure = {\n", - " \"SSP1\": [\"2010\",\"2010\",\"2030\",\"2030\",\"2050\",\"2050\",\"2100\",\"2100\",\"2150\",\"2150\"],\n", - " \"SSP2\": [\"2010\",\"2010\",\"2030\",\"2030\",\"2050\",\"2050\",\"2100\",\"2100\",\"2150\",\"2150\"],\n", - " \"SSP5\": [\"2010\",\"2010\",\"2030\",\"2030\",\"2050\",\"2050\",\"2100\",\"2100\",\"2150\",\"2150\"],\n", + " \"SSP1\": [\"2010\",\"2030\",\"2050\",\"2100\",\"2150\"],\n", + " \"SSP2\": [\"2010\",\"2030\",\"2050\",\"2100\",\"2150\"],\n", + " \"SSP5\": [\"2010\",\"2030\",\"2050\",\"2100\",\"2150\"],\n", "}\n", "\n", "# Get list of paths for the folder structure\n", @@ -418,54 +333,41 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "currently working on: SSP1_2010_Europe.tif\n", "currently working on: SSP1_2010_EU_UK.tif\n", - "currently working on: SSP1_2030_Europe.tif\n", "currently working on: SSP1_2030_EU_UK.tif\n", - "currently working on: SSP1_2050_Europe.tif\n", "currently working on: SSP1_2050_EU_UK.tif\n", - "currently working on: SSP1_2100_Europe.tif\n", "currently working on: SSP1_2100_EU_UK.tif\n", - "currently working on: SSP1_2150_Europe.tif\n", - "currently working on: SSP1_2150_EU_UK.tif\n", - "currently working on: SSP2_2010_Europe.tif\n", "currently working on: SSP2_2010_EU_UK.tif\n", - "currently working on: SSP2_2030_Europe.tif\n", "currently working on: SSP2_2030_EU_UK.tif\n", - "currently working on: SSP2_2050_Europe.tif\n", "currently working on: SSP2_2050_EU_UK.tif\n", - "currently working on: SSP2_2100_Europe.tif\n", "currently working on: SSP2_2100_EU_UK.tif\n", - "currently working on: SSP2_2150_Europe.tif\n", - "currently working on: SSP2_2150_EU_UK.tif\n", - "currently working on: SSP5_2010_Europe.tif\n", + "currently working on: SSP3_2010_EU_UK.tif\n", + "currently working on: SSP3_2030_EU_UK.tif\n", + "currently working on: SSP3_2050_EU_UK.tif\n", + "currently working on: SSP3_2100_EU_UK.tif\n", + "currently working on: SSP4_2010_EU_UK.tif\n", + "currently working on: SSP4_2030_EU_UK.tif\n", + "currently working on: SSP4_2050_EU_UK.tif\n", + "currently working on: SSP4_2100_EU_UK.tif\n", "currently working on: SSP5_2010_EU_UK.tif\n", - "currently working on: SSP5_2030_Europe.tif\n", "currently working on: SSP5_2030_EU_UK.tif\n", - "currently working on: SSP5_2050_Europe.tif\n", "currently working on: SSP5_2050_EU_UK.tif\n", - "currently working on: SSP5_2100_Europe.tif\n", - "currently working on: SSP5_2100_EU_UK.tif\n", - "currently working on: SSP5_2150_Europe.tif\n", - "currently working on: SSP5_2150_EU_UK.tif\n" + "currently working on: SSP5_2100_EU_UK.tif\n" ] - }, - { - "data": { - "application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 15;\n var nbb_unformatted_code = \"# Iterate over the original tif files\\n\\nfor cur_path, cur_tif in zip(path_list, tif_list):\\n \\n # Convert current paths to pathlib\\n cur_tif = pathlib.Path(cur_tif)\\n cur_dir = pathlib.Path(os.path.join(cog_dirs,cur_path))\\n # Mkdir if not existing\\n cur_dir.mkdir(parents=True,exist_ok=True)\\n # Print what we're working on\\n print('currently working on: ' +str(cur_tif.name))\\n\\n # Open original dataset\\n pp = xr.open_dataset(cur_tif, engine=\\\"rasterio\\\", mask_and_scale=False) \\n pp = pp.assign_coords(band=(\\\"band\\\", [f\\\"B{k+1:02}\\\" for k in range(pp.dims[\\\"band\\\"])]))\\n pp = pp[\\\"band_data\\\"].to_dataset(\\\"band\\\")\\n\\n for var in pp:\\n\\n da = pp[var]\\n\\n da = (\\n da.where(da != -2147483647, -9999)\\n .astype(\\\"int32\\\")\\n .rio.write_nodata(-9999)\\n .rio.set_spatial_dims(x_dim=\\\"x\\\", y_dim=\\\"y\\\")\\n )\\n\\n # convert to dataset\\n dad = da.to_dataset()\\n\\n # add all attributes (again)\\n for attr_name, attr_val in meta_data.items():\\n if attr_name == 'PROVIDERS':\\n attr_val = json.dumps(attr_val)\\n if attr_name == \\\"MEDIA_TYPE\\\": # change media type to tiff, leave the rest as is\\n attr_val = \\\"IMAGE/TIFF\\\"\\n dad.attrs[attr_name] = attr_val\\n\\n dad.attrs['Conventions'] = \\\"CF-1.8\\\"\\n\\n # export file\\n outpath = cog_dirs.joinpath(cur_path,cur_tif.name)\\n dad.rio.to_raster(outpath, driver= 'COG')\";\n var nbb_formatted_code = \"# Iterate over the original tif files\\n\\nfor cur_path, cur_tif in zip(path_list, tif_list):\\n # Convert current paths to pathlib\\n cur_tif = pathlib.Path(cur_tif)\\n cur_dir = pathlib.Path(os.path.join(cog_dirs, cur_path))\\n # Mkdir if not existing\\n cur_dir.mkdir(parents=True, exist_ok=True)\\n # Print what we're working on\\n print(\\\"currently working on: \\\" + str(cur_tif.name))\\n\\n # Open original dataset\\n pp = xr.open_dataset(cur_tif, engine=\\\"rasterio\\\", mask_and_scale=False)\\n pp = pp.assign_coords(band=(\\\"band\\\", [f\\\"B{k+1:02}\\\" for k in range(pp.dims[\\\"band\\\"])]))\\n pp = pp[\\\"band_data\\\"].to_dataset(\\\"band\\\")\\n\\n for var in pp:\\n da = pp[var]\\n\\n da = (\\n da.where(da != -2147483647, -9999)\\n .astype(\\\"int32\\\")\\n .rio.write_nodata(-9999)\\n .rio.set_spatial_dims(x_dim=\\\"x\\\", y_dim=\\\"y\\\")\\n )\\n\\n # convert to dataset\\n dad = da.to_dataset()\\n\\n # add all attributes (again)\\n for attr_name, attr_val in meta_data.items():\\n if attr_name == \\\"PROVIDERS\\\":\\n attr_val = json.dumps(attr_val)\\n if (\\n attr_name == \\\"MEDIA_TYPE\\\"\\n ): # change media type to tiff, leave the rest as is\\n attr_val = \\\"IMAGE/TIFF\\\"\\n dad.attrs[attr_name] = attr_val\\n\\n dad.attrs[\\\"Conventions\\\"] = \\\"CF-1.8\\\"\\n\\n # export file\\n outpath = cog_dirs.joinpath(cur_path, cur_tif.name)\\n dad.rio.to_raster(outpath, driver=\\\"COG\\\")\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ", - "text/plain": [ - "<IPython.core.display.Javascript object>" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -977,11 +879,18 @@ "source": [ "dad" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "coclico", "language": "python", "name": "python3" }, From 20667204293b247f091b28cb3c84580423c4564a Mon Sep 17 00:00:00 2001 From: mathvansoest <mathvansoest@gmail.com> Date: Mon, 20 Jan 2025 18:11:15 +0100 Subject: [PATCH 6/8] New data in bucket, STAC completed including all info needed for front-end. --- current/catalog.json | 12 +- current/pp/collection.json | 85 ++- .../pp/items/SSP1/2010/SSP1_2010_EU_UK.json | 15 +- .../pp/items/SSP1/2030/SSP1_2030_EU_UK.json | 15 +- .../pp/items/SSP1/2050/SSP1_2050_EU_UK.json | 15 +- .../pp/items/SSP1/2100/SSP1_2100_EU_UK.json | 15 +- .../pp/items/SSP2/2010/SSP2_2010_EU_UK.json | 83 +-- .../pp/items/SSP2/2030/SSP2_2030_EU_UK.json | 83 +-- .../pp/items/SSP2/2050/SSP2_2050_EU_UK.json | 83 +-- .../pp/items/SSP2/2100/SSP2_2100_EU_UK.json | 83 +-- .../pp/items/SSP3/2010/SSP3_2010_EU_UK.json | 151 +++++ .../pp/items/SSP3/2030/SSP3_2030_EU_UK.json | 151 +++++ .../pp/items/SSP3/2050/SSP3_2050_EU_UK.json | 151 +++++ .../pp/items/SSP3/2100/SSP3_2100_EU_UK.json | 151 +++++ .../pp/items/SSP4/2010/SSP4_2010_EU_UK.json | 151 +++++ .../pp/items/SSP4/2030/SSP4_2030_EU_UK.json | 151 +++++ .../pp/items/SSP4/2050/SSP4_2050_EU_UK.json | 151 +++++ .../pp/items/SSP4/2100/SSP4_2100_EU_UK.json | 151 +++++ .../pp/items/SSP5/2010/SSP5_2010_EU_UK.json | 83 +-- .../pp/items/SSP5/2030/SSP5_2030_EU_UK.json | 83 +-- .../pp/items/SSP5/2050/SSP5_2050_EU_UK.json | 83 +-- .../pp/items/SSP5/2100/SSP5_2100_EU_UK.json | 83 +-- current/slp/collection.json | 10 +- notebooks/26_pp.ipynb | 41 +- scripts/create_stacs/26_pp_stacs.py | 264 ++++++--- scripts/create_stacs/26_pp_stacs2.py | 554 ++++++++++++++++++ 26 files changed, 2492 insertions(+), 406 deletions(-) create mode 100644 current/pp/items/SSP3/2010/SSP3_2010_EU_UK.json create mode 100644 current/pp/items/SSP3/2030/SSP3_2030_EU_UK.json create mode 100644 current/pp/items/SSP3/2050/SSP3_2050_EU_UK.json create mode 100644 current/pp/items/SSP3/2100/SSP3_2100_EU_UK.json create mode 100644 current/pp/items/SSP4/2010/SSP4_2010_EU_UK.json create mode 100644 current/pp/items/SSP4/2030/SSP4_2030_EU_UK.json create mode 100644 current/pp/items/SSP4/2050/SSP4_2050_EU_UK.json create mode 100644 current/pp/items/SSP4/2100/SSP4_2100_EU_UK.json create mode 100644 scripts/create_stacs/26_pp_stacs2.py diff --git a/current/catalog.json b/current/catalog.json index b45c6baed7..27619b4742 100644 --- a/current/catalog.json +++ b/current/catalog.json @@ -202,12 +202,6 @@ "type": "application/json", "title": "Population exposed to flooding per LAU" }, - { - "rel": "child", - "href": "./pp/collection.json", - "type": "application/json", - "title": "Population Projections", - }, { "rel": "child", "href": "./NUTS0_CM/collection.json", @@ -231,6 +225,12 @@ "href": "./cba/collection.json", "type": "application/json", "title": "Cost-benefit analysis of coastal adaptation per floodplain" + }, + { + "rel": "child", + "href": "./pp/collection.json", + "type": "application/json", + "title": "Population Projections" } ], "assets": { diff --git a/current/pp/collection.json b/current/pp/collection.json index 05f3a331d8..b91c0b8a23 100644 --- a/current/pp/collection.json +++ b/current/pp/collection.json @@ -32,42 +32,82 @@ }, { "rel": "item", - "href": "./items/SSP1/2150/SSP2_2010_EU_UK.json", + "href": "./items/SSP2/2010/SSP2_2010_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP2/2010/SSP2_2030_EU_UK.json", + "href": "./items/SSP2/2030/SSP2_2030_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP2/2030/SSP2_2050_EU_UK.json", + "href": "./items/SSP2/2050/SSP2_2050_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP2/2050/SSP2_2100_EU_UK.json", + "href": "./items/SSP2/2100/SSP2_2100_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP2/2100/SSP5_2010_EU_UK.json", + "href": "./items/SSP3/2010/SSP3_2010_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP2/2150/SSP5_2030_EU_UK.json", + "href": "./items/SSP3/2030/SSP3_2030_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2010/SSP5_2050_EU_UK.json", + "href": "./items/SSP3/2050/SSP3_2050_EU_UK.json", "type": "application/json" }, { "rel": "item", - "href": "./items/SSP5/2030/SSP5_2100_EU_UK.json", + "href": "./items/SSP3/2100/SSP3_2100_EU_UK.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./items/SSP4/2010/SSP4_2010_EU_UK.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./items/SSP4/2030/SSP4_2030_EU_UK.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./items/SSP4/2050/SSP4_2050_EU_UK.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./items/SSP4/2100/SSP4_2100_EU_UK.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./items/SSP5/2010/SSP5_2010_EU_UK.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./items/SSP5/2030/SSP5_2030_EU_UK.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./items/SSP5/2050/SSP5_2050_EU_UK.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./items/SSP5/2100/SSP5_2100_EU_UK.json", "type": "application/json" }, { @@ -152,11 +192,40 @@ "url": "www.uni-kiel.de" } ], + "summaries": { + "scenarios": [ + "SSP1", + "SSP2", + "SSP3", + "SSP4", + "SSP5" + ], + "time": [ + "2010", + "2030", + "2050", + "2100" + ] + }, "assets": { "thumbnail": { "href": "https://storage.googleapis.com/dgds-data-public/coclico/assets/thumbnails/pp.png", "type": "image/png", "title": "Thumbnail" + }, + "geoserver_link": { + "href": "https://coclico.avi.deltares.nl/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&LAYER=pp:pop_fp_LAU_EPSG4326&STYLE=&TILEMATRIX=EPSG:900913:{z}&TILEMATRIXSET=EPSG:900913&FORMAT=application/vnd.mapbox-vector-tile&TILECOL={x}&TILEROW={y}", + "type": "application/vnd.apache.parquet", + "title": "Geoserver Parquet link" + }, + "geoparquet-stac-items": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp_stats/pop_fp_LAU_rel.parquet", + "type": "application/vnd.apache.parquet", + "title": "GeoParquet STAC items", + "description": "Snapshot of the collection's STAC items exported to GeoParquet format.", + "roles": [ + "data" + ] } } } \ No newline at end of file diff --git a/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json b/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json index 4fe53ad360..ace308e66b 100644 --- a/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json +++ b/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP1/2010/SSP1_2010_EU_UK.tif", "properties": { - "created": "2025-01-20T11:20:41.146804Z", + "created": "2025-01-20T16:32:23.520734Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -51,6 +51,8 @@ 71.799583333 ], "deltares:item_key": "SSP1/2010/SSP1_2010_EU_UK.tif", + "scenarios": "SSP1", + "time": "2010", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -102,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2010/SSP1_2010_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP1_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12477116, @@ -122,6 +124,15 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP1_2010_EU_UK", + "type": "application/png", + "title": "pp:SSP1_2010_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ diff --git a/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json b/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json index 0a20f896c6..eb41f82d86 100644 --- a/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json +++ b/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP1/2030/SSP1_2030_EU_UK.tif", "properties": { - "created": "2025-01-20T11:20:41.186810Z", + "created": "2025-01-20T16:32:23.553733Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -51,6 +51,8 @@ 71.799583333 ], "deltares:item_key": "SSP1/2030/SSP1_2030_EU_UK.tif", + "scenarios": "SSP1", + "time": "2030", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -102,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2030/SSP1_2030_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP1_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12303548, @@ -122,6 +124,15 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP1_2030_EU_UK", + "type": "application/png", + "title": "pp:SSP1_2030_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ diff --git a/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json b/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json index c0ecebc35d..bb6aaec527 100644 --- a/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json +++ b/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP1/2050/SSP1_2050_EU_UK.tif", "properties": { - "created": "2025-01-20T11:20:41.219809Z", + "created": "2025-01-20T16:32:23.583735Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -51,6 +51,8 @@ 71.799583333 ], "deltares:item_key": "SSP1/2050/SSP1_2050_EU_UK.tif", + "scenarios": "SSP1", + "time": "2050", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -102,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2050/SSP1_2050_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP1_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12022638, @@ -122,6 +124,15 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP1_2050_EU_UK", + "type": "application/png", + "title": "pp:SSP1_2050_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ diff --git a/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json b/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json index 2f662b541f..9981e7a2eb 100644 --- a/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json +++ b/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP1/2100/SSP1_2100_EU_UK.tif", "properties": { - "created": "2025-01-20T11:20:41.253808Z", + "created": "2025-01-20T16:32:23.615738Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -51,6 +51,8 @@ 71.799583333 ], "deltares:item_key": "SSP1/2100/SSP1_2100_EU_UK.tif", + "scenarios": "SSP1", + "time": "2100", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -102,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2100/SSP1_2100_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP1_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 10853695, @@ -122,6 +124,15 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP1_2100_EU_UK", + "type": "application/png", + "title": "pp:SSP1_2100_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ diff --git a/current/pp/items/SSP2/2010/SSP2_2010_EU_UK.json b/current/pp/items/SSP2/2010/SSP2_2010_EU_UK.json index 62e6814918..2e30b780a7 100644 --- a/current/pp/items/SSP2/2010/SSP2_2010_EU_UK.json +++ b/current/pp/items/SSP2/2010/SSP2_2010_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP2/2010/SSP2_2010_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:45.131541Z", + "created": "2025-01-20T16:32:23.648738Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,37 +20,39 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP2/2010/SSP2_2010_EU_UK.tif", + "scenarios": "SSP2", + "time": "2010", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -58,24 +60,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -102,10 +104,10 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2010/SSP2_2010_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP2_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 8966566, + "file:size": 12477116, "raster:bands": [ { "nodata": -9999, @@ -122,13 +124,22 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP2_2010_EU_UK", + "type": "application/png", + "title": "pp:SSP2_2010_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP2/2030/SSP2_2030_EU_UK.json b/current/pp/items/SSP2/2030/SSP2_2030_EU_UK.json index 8f243dc4e2..22970d57b0 100644 --- a/current/pp/items/SSP2/2030/SSP2_2030_EU_UK.json +++ b/current/pp/items/SSP2/2030/SSP2_2030_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP2/2030/SSP2_2030_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:45.313547Z", + "created": "2025-01-20T16:32:23.684737Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,37 +20,39 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP2/2030/SSP2_2030_EU_UK.tif", + "scenarios": "SSP2", + "time": "2030", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -58,24 +60,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -102,10 +104,10 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2030/SSP2_2030_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP2_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 8684100, + "file:size": 12291085, "raster:bands": [ { "nodata": -9999, @@ -122,13 +124,22 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP2_2030_EU_UK", + "type": "application/png", + "title": "pp:SSP2_2030_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP2/2050/SSP2_2050_EU_UK.json b/current/pp/items/SSP2/2050/SSP2_2050_EU_UK.json index 58f5b3167e..ab8d61d421 100644 --- a/current/pp/items/SSP2/2050/SSP2_2050_EU_UK.json +++ b/current/pp/items/SSP2/2050/SSP2_2050_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP2/2050/SSP2_2050_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:45.503548Z", + "created": "2025-01-20T16:32:23.725739Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,37 +20,39 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP2/2050/SSP2_2050_EU_UK.tif", + "scenarios": "SSP2", + "time": "2050", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -58,24 +60,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -102,10 +104,10 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2050/SSP2_2050_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP2_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 8362147, + "file:size": 12000849, "raster:bands": [ { "nodata": -9999, @@ -122,13 +124,22 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP2_2050_EU_UK", + "type": "application/png", + "title": "pp:SSP2_2050_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP2/2100/SSP2_2100_EU_UK.json b/current/pp/items/SSP2/2100/SSP2_2100_EU_UK.json index dfb0e22031..e47a1225f3 100644 --- a/current/pp/items/SSP2/2100/SSP2_2100_EU_UK.json +++ b/current/pp/items/SSP2/2100/SSP2_2100_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP2/2100/SSP2_2100_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:45.674546Z", + "created": "2025-01-20T16:32:23.765744Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,37 +20,39 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP2/2100/SSP2_2100_EU_UK.tif", + "scenarios": "SSP2", + "time": "2100", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -58,24 +60,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -102,10 +104,10 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2100/SSP2_2100_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP2_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 7362814, + "file:size": 11374839, "raster:bands": [ { "nodata": -9999, @@ -122,13 +124,22 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP2_2100_EU_UK", + "type": "application/png", + "title": "pp:SSP2_2100_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP3/2010/SSP3_2010_EU_UK.json b/current/pp/items/SSP3/2010/SSP3_2010_EU_UK.json new file mode 100644 index 0000000000..556746f3d4 --- /dev/null +++ b/current/pp/items/SSP3/2010/SSP3_2010_EU_UK.json @@ -0,0 +1,151 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP3/2010/SSP3_2010_EU_UK.tif", + "properties": { + "created": "2025-01-20T16:32:23.804737Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP3/2010/SSP3_2010_EU_UK.tif", + "scenarios": "SSP3", + "time": "2010", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP3_2010_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12477116, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP3_2010_EU_UK", + "type": "application/png", + "title": "pp:SSP3_2010_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP3/2030/SSP3_2030_EU_UK.json b/current/pp/items/SSP3/2030/SSP3_2030_EU_UK.json new file mode 100644 index 0000000000..d9077bb0df --- /dev/null +++ b/current/pp/items/SSP3/2030/SSP3_2030_EU_UK.json @@ -0,0 +1,151 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP3/2030/SSP3_2030_EU_UK.tif", + "properties": { + "created": "2025-01-20T16:32:23.835739Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP3/2030/SSP3_2030_EU_UK.tif", + "scenarios": "SSP3", + "time": "2030", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP3_2030_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12304730, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP3_2030_EU_UK", + "type": "application/png", + "title": "pp:SSP3_2030_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP3/2050/SSP3_2050_EU_UK.json b/current/pp/items/SSP3/2050/SSP3_2050_EU_UK.json new file mode 100644 index 0000000000..056b19ad99 --- /dev/null +++ b/current/pp/items/SSP3/2050/SSP3_2050_EU_UK.json @@ -0,0 +1,151 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP3/2050/SSP3_2050_EU_UK.tif", + "properties": { + "created": "2025-01-20T16:32:23.864742Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP3/2050/SSP3_2050_EU_UK.tif", + "scenarios": "SSP3", + "time": "2050", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP3_2050_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12025510, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP3_2050_EU_UK", + "type": "application/png", + "title": "pp:SSP3_2050_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP3/2100/SSP3_2100_EU_UK.json b/current/pp/items/SSP3/2100/SSP3_2100_EU_UK.json new file mode 100644 index 0000000000..8e12715c05 --- /dev/null +++ b/current/pp/items/SSP3/2100/SSP3_2100_EU_UK.json @@ -0,0 +1,151 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP3/2100/SSP3_2100_EU_UK.tif", + "properties": { + "created": "2025-01-20T16:32:23.895738Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP3/2100/SSP3_2100_EU_UK.tif", + "scenarios": "SSP3", + "time": "2100", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP3_2100_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 11880443, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP3_2100_EU_UK", + "type": "application/png", + "title": "pp:SSP3_2100_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP4/2010/SSP4_2010_EU_UK.json b/current/pp/items/SSP4/2010/SSP4_2010_EU_UK.json new file mode 100644 index 0000000000..e2fd3ccaf0 --- /dev/null +++ b/current/pp/items/SSP4/2010/SSP4_2010_EU_UK.json @@ -0,0 +1,151 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP4/2010/SSP4_2010_EU_UK.tif", + "properties": { + "created": "2025-01-20T16:32:23.927740Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP4/2010/SSP4_2010_EU_UK.tif", + "scenarios": "SSP4", + "time": "2010", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP4_2010_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12477116, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP4_2010_EU_UK", + "type": "application/png", + "title": "pp:SSP4_2010_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP4/2030/SSP4_2030_EU_UK.json b/current/pp/items/SSP4/2030/SSP4_2030_EU_UK.json new file mode 100644 index 0000000000..50a55c3a02 --- /dev/null +++ b/current/pp/items/SSP4/2030/SSP4_2030_EU_UK.json @@ -0,0 +1,151 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP4/2030/SSP4_2030_EU_UK.tif", + "properties": { + "created": "2025-01-20T16:32:23.963754Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP4/2030/SSP4_2030_EU_UK.tif", + "scenarios": "SSP4", + "time": "2030", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP4_2030_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 12259213, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP4_2030_EU_UK", + "type": "application/png", + "title": "pp:SSP4_2030_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP4/2050/SSP4_2050_EU_UK.json b/current/pp/items/SSP4/2050/SSP4_2050_EU_UK.json new file mode 100644 index 0000000000..d901f46483 --- /dev/null +++ b/current/pp/items/SSP4/2050/SSP4_2050_EU_UK.json @@ -0,0 +1,151 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP4/2050/SSP4_2050_EU_UK.tif", + "properties": { + "created": "2025-01-20T16:32:24.001742Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP4/2050/SSP4_2050_EU_UK.tif", + "scenarios": "SSP4", + "time": "2050", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP4_2050_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 11841529, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP4_2050_EU_UK", + "type": "application/png", + "title": "pp:SSP4_2050_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP4/2100/SSP4_2100_EU_UK.json b/current/pp/items/SSP4/2100/SSP4_2100_EU_UK.json new file mode 100644 index 0000000000..cc4dbb5d8a --- /dev/null +++ b/current/pp/items/SSP4/2100/SSP4_2100_EU_UK.json @@ -0,0 +1,151 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "id": "SSP4/2100/SSP4_2100_EU_UK.tif", + "properties": { + "created": "2025-01-20T16:32:24.034739Z", + "proj:bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "proj:shape": [ + 8480, + 4554 + ], + "proj:epsg": 4326, + "proj:geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "proj:transform": [ + 0.008333333333372642, + 0.0, + -25.397916667, + 0.0, + -0.008333333333333333, + 71.799583333 + ], + "deltares:item_key": "SSP4/2100/SSP4_2100_EU_UK.tif", + "scenarios": "SSP4", + "time": "2100", + "datetime": "2022-02-22T00:00:00Z" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 45.268750000000004, + 33.849583333000005 + ], + [ + 45.268750000000004, + 71.799583333 + ], + [ + -25.397916667, + 71.799583333 + ], + [ + -25.397916667, + 33.849583333000005 + ], + [ + 45.268750000000004, + 33.849583333000005 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + }, + { + "rel": "root", + "href": "../../../../catalog.json", + "type": "application/json", + "title": "CoCliCo STAC Catalog" + }, + { + "rel": "parent", + "href": "../../../collection.json", + "type": "application/json", + "title": "Population Projections" + } + ], + "assets": { + "band_data": { + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP4_2100_EU_UK.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "band_data", + "file:size": 10295137, + "raster:bands": [ + { + "nodata": -9999, + "data_type": "float32", + "spatial_resolution": 30 + } + ], + "eo:bands": [ + { + "name": "band_data", + "description": "POP_SSPs" + } + ], + "roles": [ + "data" + ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP4_2100_EU_UK", + "type": "application/png", + "title": "pp:SSP4_2100_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] + } + }, + "bbox": [ + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 + ], + "stac_extensions": [ + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json", + "https://stac-extensions.github.io/eo/v1.1.0/schema.json" + ], + "collection": "pp" +} \ No newline at end of file diff --git a/current/pp/items/SSP5/2010/SSP5_2010_EU_UK.json b/current/pp/items/SSP5/2010/SSP5_2010_EU_UK.json index e061690055..94e82cb66b 100644 --- a/current/pp/items/SSP5/2010/SSP5_2010_EU_UK.json +++ b/current/pp/items/SSP5/2010/SSP5_2010_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP5/2010/SSP5_2010_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:46.015553Z", + "created": "2025-01-20T16:32:24.065739Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,37 +20,39 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP5/2010/SSP5_2010_EU_UK.tif", + "scenarios": "SSP5", + "time": "2010", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -58,24 +60,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -102,10 +104,10 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2010/SSP5_2010_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 8983746, + "file:size": 12477116, "raster:bands": [ { "nodata": -9999, @@ -122,13 +124,22 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP5_2010_EU_UK", + "type": "application/png", + "title": "pp:SSP5_2010_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP5/2030/SSP5_2030_EU_UK.json b/current/pp/items/SSP5/2030/SSP5_2030_EU_UK.json index 5ee4ce2eb7..28b660d3f7 100644 --- a/current/pp/items/SSP5/2030/SSP5_2030_EU_UK.json +++ b/current/pp/items/SSP5/2030/SSP5_2030_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP5/2030/SSP5_2030_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:46.203553Z", + "created": "2025-01-20T16:32:24.095738Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,37 +20,39 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP5/2030/SSP5_2030_EU_UK.tif", + "scenarios": "SSP5", + "time": "2030", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -58,24 +60,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -102,10 +104,10 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2030/SSP5_2030_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 8588437, + "file:size": 12311859, "raster:bands": [ { "nodata": -9999, @@ -122,13 +124,22 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP5_2030_EU_UK", + "type": "application/png", + "title": "pp:SSP5_2030_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP5/2050/SSP5_2050_EU_UK.json b/current/pp/items/SSP5/2050/SSP5_2050_EU_UK.json index 04802568cb..67d7e13067 100644 --- a/current/pp/items/SSP5/2050/SSP5_2050_EU_UK.json +++ b/current/pp/items/SSP5/2050/SSP5_2050_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP5/2050/SSP5_2050_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:46.378554Z", + "created": "2025-01-20T16:32:24.123739Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,37 +20,39 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP5/2050/SSP5_2050_EU_UK.tif", + "scenarios": "SSP5", + "time": "2050", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -58,24 +60,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -102,10 +104,10 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2050/SSP5_2050_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 8176630, + "file:size": 12124123, "raster:bands": [ { "nodata": -9999, @@ -122,13 +124,22 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP5_2050_EU_UK", + "type": "application/png", + "title": "pp:SSP5_2050_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/pp/items/SSP5/2100/SSP5_2100_EU_UK.json b/current/pp/items/SSP5/2100/SSP5_2100_EU_UK.json index 0ec23909e9..ff21153c66 100644 --- a/current/pp/items/SSP5/2100/SSP5_2100_EU_UK.json +++ b/current/pp/items/SSP5/2100/SSP5_2100_EU_UK.json @@ -3,16 +3,16 @@ "stac_version": "1.0.0", "id": "SSP5/2100/SSP5_2100_EU_UK.tif", "properties": { - "created": "2024-05-16T08:41:46.564553Z", + "created": "2025-01-20T16:32:24.154738Z", "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "proj:shape": [ - 7844, - 5095 + 8480, + 4554 ], "proj:epsg": 4326, "proj:geometry": { @@ -20,37 +20,39 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] }, "proj:transform": [ - 0.008333333333333333, + 0.008333333333372642, 0.0, - -31.275000000000006, + -25.397916667, 0.0, -0.008333333333333333, - 70.09166666673858 + 71.799583333 ], "deltares:item_key": "SSP5/2100/SSP5_2100_EU_UK.tif", + "scenarios": "SSP5", + "time": "2100", "datetime": "2022-02-22T00:00:00Z" }, "geometry": { @@ -58,24 +60,24 @@ "coordinates": [ [ [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ], [ - 34.09166666666666, - 70.09166666673858 + 45.268750000000004, + 71.799583333 ], [ - -31.275000000000006, - 70.09166666673858 + -25.397916667, + 71.799583333 ], [ - -31.275000000000006, - 27.633333333405243 + -25.397916667, + 33.849583333000005 ], [ - 34.09166666666666, - 27.633333333405243 + 45.268750000000004, + 33.849583333000005 ] ] ] @@ -102,10 +104,10 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2100/SSP5_2100_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", - "file:size": 7040462, + "file:size": 11314430, "raster:bands": [ { "nodata": -9999, @@ -122,13 +124,22 @@ "roles": [ "data" ] + }, + "visual": { + "href": "https://coclico.avi.deltares.nl/geoserver/pp/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=pp:SSP5_2100_EU_UK", + "type": "application/png", + "title": "pp:SSP5_2100_EU_UK", + "description": "OGS WMS url", + "roles": [ + "visual" + ] } }, "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 + -25.397916667, + 33.849583333000005, + 45.268750000000004, + 71.799583333 ], "stac_extensions": [ "https://stac-extensions.github.io/projection/v1.1.0/schema.json", diff --git a/current/slp/collection.json b/current/slp/collection.json index e64d870438..a583a2812d 100644 --- a/current/slp/collection.json +++ b/current/slp/collection.json @@ -1608,6 +1608,11 @@ "type": "image/tiff; application=geotiff; profile=cloud-optimized" } }, + "summary_descriptions": { + "scenarios": "Projected socioeconomic global changes.", + "ensemble": "Type of ensemble members aggregation.", + "time": "Projected year." + }, "title": "Sea level rise projections", "extent": { "spatial": { @@ -1683,11 +1688,6 @@ "2151" ] }, - "summary_descriptions": { - "scenarios": "Projected socioeconomic global changes.", - "ensemble": "Type of ensemble members aggregation.", - "time": "Projected year." - }, "assets": { "thumbnail": { "href": "https://storage.googleapis.com/dgds-data-public/coclico/assets/thumbnails/slp.png", diff --git a/notebooks/26_pp.ipynb b/notebooks/26_pp.ipynb index 81be822976..0e49ffd2bb 100644 --- a/notebooks/26_pp.ipynb +++ b/notebooks/26_pp.ipynb @@ -49,7 +49,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_12428\\1639954749.py:7: DeprecationWarning: Shapely 2.0 is installed, but because PyGEOS is also installed, GeoPandas still uses PyGEOS by default. However, starting with version 0.14, the default will switch to Shapely. To force to use Shapely 2.0 now, you can either uninstall PyGEOS or set the environment variable USE_PYGEOS=0. You can do this before starting the Python process, or in your code before importing geopandas:\n", + "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_788\\1639954749.py:7: DeprecationWarning: Shapely 2.0 is installed, but because PyGEOS is also installed, GeoPandas still uses PyGEOS by default. However, starting with version 0.14, the default will switch to Shapely. To force to use Shapely 2.0 now, you can either uninstall PyGEOS or set the environment variable USE_PYGEOS=0. You can do this before starting the Python process, or in your code before importing geopandas:\n", "\n", "import os\n", "os.environ['USE_PYGEOS'] = '0'\n", @@ -116,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -127,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -141,7 +141,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -152,14 +152,14 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_12428\\4287484678.py:3: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "C:\\Users\\soest\\AppData\\Local\\Temp\\ipykernel_788\\4287484678.py:3: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " pp_test = pp_test.assign_coords(band=(\"band\", [f\"B{k+1:02}\" for k in range(pp_test.dims[\"band\"])]))\n" ] } @@ -212,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -241,7 +241,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -250,7 +250,7 @@ "WindowsPath('P:/11207608-coclico/FULLTRACK_DATA/WP5/CF')" ] }, - "execution_count": 16, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -264,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -276,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -294,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -322,9 +322,11 @@ "# NOTE: make sure the resulting path_list (based on folder structure) matches the tif_list\n", "# NOTE: shortcut taken by calling every year twice, because there are two tif's per year. \n", "folder_structure = {\n", - " \"SSP1\": [\"2010\",\"2030\",\"2050\",\"2100\",\"2150\"],\n", - " \"SSP2\": [\"2010\",\"2030\",\"2050\",\"2100\",\"2150\"],\n", - " \"SSP5\": [\"2010\",\"2030\",\"2050\",\"2100\",\"2150\"],\n", + " \"SSP1\": [\"2010\",\"2030\",\"2050\",\"2100\"],\n", + " \"SSP2\": [\"2010\",\"2030\",\"2050\",\"2100\"],\n", + " \"SSP3\": [\"2010\",\"2030\",\"2050\",\"2100\"],\n", + " \"SSP4\": [\"2010\",\"2030\",\"2050\",\"2100\"],\n", + " \"SSP5\": [\"2010\",\"2030\",\"2050\",\"2100\"],\n", "}\n", "\n", "# Get list of paths for the folder structure\n", @@ -333,14 +335,7 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 24, + "execution_count": 13, "metadata": {}, "outputs": [ { diff --git a/scripts/create_stacs/26_pp_stacs.py b/scripts/create_stacs/26_pp_stacs.py index 85eb77e1d5..d4bda8c504 100644 --- a/scripts/create_stacs/26_pp_stacs.py +++ b/scripts/create_stacs/26_pp_stacs.py @@ -9,8 +9,10 @@ # import sys # from re import S, template -import json +import json5 +import pyarrow import fsspec +import gcsfs from typing import Any, Dict, List, Optional, Tuple, Union # import cftime @@ -24,7 +26,9 @@ import xarray as xr import math import dask +import stac_geoparquet from posixpath import join as urljoin +from pystac import Summaries from pystac.extensions import eo, raster from stactools.core.utils import antimeridian from pystac.stac_io import DefaultStacIO @@ -63,7 +67,7 @@ # hard-coded STAC templates CUR_CWD = pathlib.Path.cwd() -STAC_DIR = CUR_CWD / "current" +STAC_DIR = CUR_CWD.parent.parent / "current" # hard-coded input params which differ per dataset METADATA = "metadata_population.json" @@ -111,7 +115,7 @@ # load metadata template metadata_fp = ds_dir.joinpath("metadata", METADATA) with open(metadata_fp, "r") as f: - metadata = json.load(f) + metadata = json5.load(f) # data output configurations HREF_PREFIX = urljoin( @@ -119,8 +123,37 @@ ) # cloud export directory TMP_DIR = pathlib.Path.home() / "tmp" +PARQUET_MEDIA_TYPE = "application/vnd.apache.parquet" + +# CONTAINER_NAME = "transects" +# PREFIX = f"gcts-{TRANSECT_LENGTH}m.parquet" +# BASE_URL = f"gs://{CONTAINER_NAME}/{PREFIX}" +GEOPARQUET_STAC_ITEMS_HREF = ( + f"gs://{BUCKET_NAME}/{BUCKET_PROJ}/items/{COLLECTION_ID}.parquet" +) + # %% +def read_parquet_schema_df(uri: str) -> List: # pd.DataFrame: + """Return a Pandas dataframe corresponding to the schema of a local URI of a parquet file. + + The returned dataframe has the columns: column, pa_dtype + """ + # Ref: https://stackoverflow.com/a/64288036/ + # Ref: https://stackoverflow.com/questions/41567081/get-schema-of-parquet-file-in-python + schema = pyarrow.parquet.read_schema(uri, memory_map=True) + # schema = pd.DataFrame(({"name": name, "type": str(pa_dtype)} for name, pa_dtype in zip(schema.names, schema.types))) + schema = [ + { + "name": name, + "type": str(pa_dtype), + "description": "", + } # TODO: add column descriptions once received from the VU + for name, pa_dtype in zip(schema.names, schema.types) + ] + # schema = schema.reindex(columns=["name", "type"], fill_value=pd.NA) # Ensures columns in case the parquet file has an empty dataframe. + return schema + def create_collection( description: str | None = None, extra_fields: dict[str, Any] | None = None ) -> pystac.Collection: @@ -195,6 +228,18 @@ def create_collection( media_type=pystac.MediaType.PNG, ), ) + + + collection.add_asset( + "geoserver_link", + pystac.Asset( + "https://coclico.avi.deltares.nl/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&LAYER=pp:pop_fp_LAU_EPSG4326&STYLE=&TILEMATRIX=EPSG:900913:{z}&TILEMATRIXSET=EPSG:900913&FORMAT=application/vnd.mapbox-vector-tile&TILECOL={x}&TILEROW={y}", + title="Geoserver Parquet link", + media_type="application/vnd.apache.parquet", + ), + ) + + collection.links = links collection.keywords = keywords @@ -429,6 +474,40 @@ def get_paths(folder_structure, base_dir=""): # ## Do the work if __name__ == "__main__": + # store to cloud folder + + # # upload directory with cogs to google cloud + load_google_credentials(google_token_fp=google_cred_dir) + + # dir_to_google_cloud( + # dir_path=str(cog_dirs), + # gcs_project=GCS_PROJECT, + # bucket_name=BUCKET_NAME, + # bucket_proj=BUCKET_PROJ, + # dir_name=PROJ_NAME, + # ) + + fs = gcsfs.GCSFileSystem( + gcs_project=GCS_PROJECT, token=os.environ["GOOGLE_APPLICATION_CREDENTIALS"] + ) + + # get descriptions + uri_dum = f"gs://{BUCKET_NAME}/{BUCKET_PROJ}/pp_stats" + paths_dum = fs.glob(uri_dum + "/*.parquet") + uris_dum = ["gs://" + p for p in paths_dum] + HREF_PREFIX_dum = urljoin( + GCS_PROTOCOL, BUCKET_NAME, BUCKET_PROJ, "pp_stats" + ) # cloud export directory + GCS_url_dum = urljoin(HREF_PREFIX_dum, uris_dum[0].split("/")[-1]) + COLUMN_DESCRIPTIONS = read_parquet_schema_df( + uris_dum[0] + ) # select first file of the cloud directory + + ASSET_EXTRA_FIELDS = { + "table:storage_options": {"account_name": "coclico"}, + "table:columns": COLUMN_DESCRIPTIONS, + } + ## Setup folder structure # List the desired folder structure as a dict @@ -444,76 +523,94 @@ def get_paths(folder_structure, base_dir=""): path_list = get_paths(folder_structure) items = [] + dimcombs = [] collection = create_collection() - for cur_path in path_list: - - # Update current data being processed - print("now working on: " + cur_path) - # Define tif_list for the cog's created using ../notebooks/26_pp.ipynb - tif_list = pathlib.Path.joinpath(cog_dirs, cur_path).glob("*.tif") - - for cur_tif in tif_list: - - # Open original dataset - pp = xr.open_dataset(cur_tif, engine="rasterio", mask_and_scale=False) - pp = pp.assign_coords( - band=("band", [f"B{k+1:02}" for k in range(pp.dims["band"])]) - ) - pp = pp["band_data"].to_dataset("band") - - profile_options = { - "driver": "COG", - "dtype": "float32", - "compress": "DEFLATE", - # "interleave": "band", - # "ZLEVEL": 9, - # "predictor": 1, - } - storage_options = {"token": "google_default"} - - CUR_HREF_PREFIX = urljoin(HREF_PREFIX, pathlib.Path(cur_path).as_posix()) - - # Process the chunk using a delayed function - item = process_block( - cur_tif, - cog_dirs, - resolution=30, - data_type=raster.DataType.FLOAT32, - storage_prefix=CUR_HREF_PREFIX, - name_prefix="B01", - include_band="", - time_dim=False, - x_dim="x", - y_dim="y", - profile_options=profile_options, - storage_options=storage_options, - ) - - item_href = pathlib.Path( - STAC_DIR, COLLECTION_ID, "items", cur_path, item.id - ) - item_href.with_suffix(".json") - item.set_self_href(item_href) - - items.append(item) - collection.add_item(item) - - print(len(items)) - - # %% store to cloud folder + scens = ["SSP1", "SSP2", "SSP3", "SSP4", "SSP5"] + years = ["2010", "2030", "2050", "2100"] + item_properties = ["scenarios", "time"] + + for scen in scens: + for year in years: + + # Define tif_list for the cog's created using ../notebooks/26_pp.ipynb + tif_list = pathlib.Path.joinpath(cog_dirs, scen, year).glob("*.tif") + + for cur_tif in tif_list: + + # Open original dataset + pp = xr.open_dataset(cur_tif, engine="rasterio", mask_and_scale=False) + pp = pp.assign_coords( + band=("band", [f"B{k+1:02}" for k in range(pp.dims["band"])]) + ) + pp = pp["band_data"].to_dataset("band") + + profile_options = { + "driver": "COG", + "dtype": "float32", + "compress": "DEFLATE", + # "interleave": "band", + # "ZLEVEL": 9, + # "predictor": 1, + } + storage_options = {"token": "google_default"} + + CUR_HREF_PREFIX = urljoin(HREF_PREFIX, pathlib.Path(cur_path).as_posix()) + + # Process the chunk using a delayed function + item = process_block( + cur_tif, + cog_dirs, + resolution=30, + data_type=raster.DataType.FLOAT32, + storage_prefix=CUR_HREF_PREFIX, + name_prefix="B01", + include_band="", + time_dim=False, + x_dim="x", + y_dim="y", + profile_options=profile_options, + storage_options=storage_options, + ) + + item_href = pathlib.Path( + STAC_DIR, COLLECTION_ID, "items", cur_path, item.id + ) + item_href.with_suffix(".json") + item.set_self_href(item_href) + + title = COLLECTION_ID + ":" + pathlib.Path(item_href).with_suffix(".tif").stem + # TODO: We need to generalize this `href` somewhat. + vasset = pystac.Asset( # data asset + href="https://coclico.avi.deltares.nl/geoserver/%s/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=%s" + % (COLLECTION_ID, title), + media_type="application/png", + title=title, + description="OGS WMS url", + roles=["visual"], + ) + + # TODO: generalize this + dimcomb = { + item_properties[0]: scen, + item_properties[1]: year, + } + dimcombs.append(dimcomb) + + # TODO: include this in our datacube? + # add dimension key-value pairs to stac item properties dict + for k, v in dimcomb.items(): + item.properties[k] = v + + item.add_asset("visual", vasset) + + items.append(item) + collection.add_item(item) + + print(len(items)) - # # upload directory with cogs to google cloud - load_google_credentials(google_token_fp=google_cred_dir) - # dir_to_google_cloud( - # dir_path=str(cog_dirs), - # gcs_project=GCS_PROJECT, - # bucket_name=BUCKET_NAME, - # bucket_proj=BUCKET_PROJ, - # dir_name=PROJ_NAME, - # ) # %% # stac_io = CoCliCoStacIO() @@ -528,6 +625,37 @@ def get_paths(folder_structure, base_dir=""): collection.update_extent_from_items() + collection.summaries = Summaries({}) + # TODO: check if maxcount is required (inpsired on xstac library) + # stac_obj.summaries.maxcount = 50 + dimvals = {} + for d in dimcombs: + for key, value in d.items(): + if key not in dimvals: + dimvals[key] = [] + if value not in dimvals[key]: + dimvals[key].append(value) + + for k, v in dimvals.items(): + collection.summaries.add(k, v) + + items = list(collection.get_all_items()) + items_as_json = [i.to_dict() for i in items] + item_extents = stac_geoparquet.to_geodataframe(items_as_json) + with fsspec.open(GEOPARQUET_STAC_ITEMS_HREF, mode="wb") as f: + item_extents.to_parquet(f) + + collection.add_asset( + "geoparquet-stac-items", + pystac.Asset( + GCS_url_dum, + title="GeoParquet STAC items", + description="Snapshot of the collection's STAC items exported to GeoParquet format.", + media_type=PARQUET_MEDIA_TYPE, + roles=["data"], + ), + ) + catalog = pystac.Catalog.from_file(str(STAC_DIR / "catalog.json")) if catalog.get_child(collection.id): diff --git a/scripts/create_stacs/26_pp_stacs2.py b/scripts/create_stacs/26_pp_stacs2.py new file mode 100644 index 0000000000..85eb77e1d5 --- /dev/null +++ b/scripts/create_stacs/26_pp_stacs2.py @@ -0,0 +1,554 @@ +# %% +# ## Load software +import datetime + +# import os +import pathlib +import glob +import os + +# import sys +# from re import S, template +import json +import fsspec +from typing import Any, Dict, List, Optional, Tuple, Union + +# import cftime +# import numpy as np +import pandas as pd +import pystac +import rasterio + +# import rioxarray as rio +import shapely +import xarray as xr +import math +import dask +from posixpath import join as urljoin +from pystac.extensions import eo, raster +from stactools.core.utils import antimeridian +from pystac.stac_io import DefaultStacIO + +# from datacube.utils.cog import write_cog +from coclicodata.drive_config import p_drive + +# from pystac import Catalog, CatalogType, Collection, Summaries +from coclicodata.etl.cloud_utils import load_google_credentials, dir_to_google_cloud +from coclicodata.coclico_stac.io import CoCliCoStacIO +from coclicodata.coclico_stac.layouts import CoCliCoCOGLayout +from coclicodata.coclico_stac.extension import ( + CoclicoExtension, +) # self built stac extension + +# from coastmonitor.io.cloud import ( +# to_https_url, +# to_storage_location, +# to_uri_protocol, +# write_block, +# ) +from coastmonitor.io.utils import name_block +from rasterio import logging + +log = logging.getLogger() +log.setLevel(logging.ERROR) + +# %% +# ## Define variables +# hard-coded input params at project level +GCS_PROTOCOL = "https://storage.googleapis.com" +GCS_PROJECT = "coclico-11207608-002" +BUCKET_NAME = "coclico-data-public" +BUCKET_PROJ = "coclico" +PROJ_NAME = "pp" + +# hard-coded STAC templates +CUR_CWD = pathlib.Path.cwd() +STAC_DIR = CUR_CWD / "current" + +# hard-coded input params which differ per dataset +METADATA = "metadata_population.json" +DATASET_DIR = "WP5" +CF_FILE = "SSP1_2010_Europe.tif" # NOTE: multiple files +COLLECTION_ID = "pp" # name of stac collection + +# these are added at collection level, determine dashboard graph layout using all items +PLOT_SERIES = "scenarios" +PLOT_X_AXIS = "time" +PLOT_TYPE = "line" +MIN = 0 +MAX = 3 +LINEAR_GRADIENT = [ + {"color": "hsl(110,90%,80%)", "offset": "0.000%", "opacity": 100}, + {"color": "hsla(55,88%,53%,0.5)", "offset": "50.000%", "opacity": 100}, + {"color": "hsl(0,90%,70%)", "offset": "100.000%", "opacity": 100}, +] + +# define local directories +home = pathlib.Path().home() +tmp_dir = home.joinpath("data", "tmp") +coclico_data_dir = p_drive.joinpath( + "11207608-coclico", "FULLTRACK_DATA" +) # remote p drive +google_cred_dir = p_drive.joinpath( + "11207608-coclico", "FASTTRACK_DATA", "google_credentials_new.json" +) + +# use local or remote data dir +use_local_data = False + +if use_local_data: + ds_dir = tmp_dir.joinpath(DATASET_DIR) +else: + ds_dir = coclico_data_dir.joinpath(DATASET_DIR) + +if not ds_dir.exists(): + raise FileNotFoundError(f"Data dir does not exist, {str(ds_dir)}") + +# directory to export result +cog_dirs = ds_dir.joinpath("cogs") +ds_fp = ds_dir.joinpath(CF_FILE) # file directory + +# load metadata template +metadata_fp = ds_dir.joinpath("metadata", METADATA) +with open(metadata_fp, "r") as f: + metadata = json.load(f) + +# data output configurations +HREF_PREFIX = urljoin( + GCS_PROTOCOL, BUCKET_NAME, BUCKET_PROJ, PROJ_NAME +) # cloud export directory +TMP_DIR = pathlib.Path.home() / "tmp" + + +# %% +def create_collection( + description: str | None = None, extra_fields: dict[str, Any] | None = None +) -> pystac.Collection: + providers = [ + pystac.Provider( + name="Deltares", + roles=[ + pystac.provider.ProviderRole.PROCESSOR, + pystac.provider.ProviderRole.HOST, + ], + url="https://deltares.nl", + ), + pystac.Provider( + "Geographisches Institut, Kiel University", + roles=[ + pystac.provider.ProviderRole.PRODUCER, + ], + url="www.uni-kiel.de", + ), + ] + + start_datetime = datetime.datetime(2024, 1, 18, tzinfo=datetime.timezone.utc) + + extent = pystac.Extent( + pystac.SpatialExtent([[-180, -89.9999999999, 180, 90.0000000001]]), + pystac.TemporalExtent([[start_datetime, None]]), + ) + + links = [ + pystac.Link( + rel=pystac.RelType.LICENSE, + target="https://coclicoservices.eu/legal/", + media_type="text/html", + title="ODbL-1.0 License", # NOTE: not sure if this applies + ) + ] + + keywords = [ + "Coast", + "Population", + "Projection", + "Shared Socioeconomic Pathways", + "Europe", + "European" "CoCliCo", + "Deltares", + "Cloud Optimized GeoTIFF", + ] + + if description is None: + description = "Merkens et al. 2016 regionalised the population projection of the SSP-Database. The produced grids have a spatial resolution of 30*30 arcsecond (approx. 1 km at the equator) and represent the population count per cell. A detailed description of the methods is given in the reference below." + + if "Creative Commons" in metadata["LICENSE"] and "4.0" in metadata["LICENSE"]: + metadata["LICENSE"] = "CC-BY-4.0" + + collection = pystac.Collection( + id=COLLECTION_ID, + title="Population Projections", + description=description, # noqa: E502 + license=metadata["LICENSE"], + providers=providers, + extent=extent, + catalog_type=pystac.CatalogType.RELATIVE_PUBLISHED, + ) + + collection.add_asset( + "thumbnail", + pystac.Asset( + "https://storage.googleapis.com/dgds-data-public/coclico/assets/thumbnails/" + + COLLECTION_ID + + ".png", # noqa: E501, # noqa: E501 + title="Thumbnail", + media_type=pystac.MediaType.PNG, + ), + ) + collection.links = links + collection.keywords = keywords + + pystac.extensions.item_assets.ItemAssetsExtension.add_to(collection) + + ASSET_EXTRA_FIELDS = { + "xarray:storage_options": {"token": "google_default"}, + } + + collection.extra_fields["item_assets"] = { + "data": { + "type": pystac.MediaType.COG, + "title": "Gridded population projections for the coastal zone under the Shared Socioeconomic Pathways", + "roles": ["data"], + "description": "Merkens et al. 2016 regionalised the population projection of the SSP-Database. The produced grids have a spatial resolution of 30*30 arcsecond (approx. 1 km at the equator) and represent the population count per cell. A detailed description of the methods is given in the reference below.", + **ASSET_EXTRA_FIELDS, + } + } + + if extra_fields: + collection.extra_fields.update(extra_fields) + + # add coclico frontend properties to collection, NOTE: custom extension does not work like this anymore, need renewed generic method to manage this centrally + # coclico_ext = CoclicoExtension.ext(collection, add_if_missing=True) + # coclico_ext.units = "float32" + # coclico_ext.plot_type = "raster" + # coclico_ext.min = 1 + # coclico_ext.max = 100000 # NOTE: not checked + + # CoclicoExtension.add_to(collection) + collection.extra_fields["deltares:units"] = metadata["UNITS"] + collection.extra_fields["deltares:plot_type"] = PLOT_TYPE + collection.extra_fields["deltares:min"] = MIN + collection.extra_fields["deltares:max"] = MAX + + return collection + + +# %% +def create_item(block, item_id, antimeridian_strategy=antimeridian.Strategy.SPLIT): + dst_crs = rasterio.crs.CRS.from_epsg(4326) + + # when the data spans a range, it's common practice to use the middle time as the datetime provided + # in the STAC item. So then you have to infer the start_datetime, end_datetime and get the middle + # from those. + # start_datetime, end_datetime = ... + # middle_datetime = start_datetime + (end_datetime - start_datetime) / 2 + + # the bbox of the STAC item is provided in 4326 + bbox = rasterio.warp.transform_bounds(block.rio.crs, dst_crs, *block.rio.bounds()) + geometry = shapely.geometry.mapping(shapely.make_valid(shapely.geometry.box(*bbox))) + bbox = shapely.make_valid(shapely.box(*bbox)).bounds + + item = pystac.Item( + id=item_id, + geometry=geometry, + bbox=bbox, + datetime=pd.Timestamp(block["time"].item()), + properties={}, + ) + + # useful for global datasets that cross the antimerdian E-W line + antimeridian.fix_item(item, antimeridian_strategy) + + # use this when the data spans a certain time range + # item.common_metadata.start_datetime = start_datetime + # item.common_metadata.end_datetime = end_datetime + + item.common_metadata.created = datetime.datetime.utcnow() + + ext = pystac.extensions.projection.ProjectionExtension.ext( + item, add_if_missing=True + ) + ext.bbox = block.rio.bounds() # these are provided in the crs of the data + ext.shape = tuple(v for k, v in block.sizes.items() if k in ["y", "x"]) + ext.epsg = block.rio.crs.to_epsg() + ext.geometry = shapely.geometry.mapping(shapely.geometry.box(*ext.bbox)) + ext.transform = list(block.rio.transform())[:6] + ext.add_to(item) + + # add CoCliCo frontend properties to visualize it in the web portal + # TODO: This is just example. We first need to decide which properties frontend needs for COG visualization + # NOTE: custom extension does not work like this anymore, need renewed generic method to manage this centrally + # coclico_ext = CoclicoExtension.ext(item, add_if_missing=True) + # coclico_ext.item_key = item_id + # coclico_ext.add_to(item) + + # CoclicoExtension.add_to(item) + item.properties["deltares:item_key"] = item_id + + # add more functions to describe the data at item level, for example the frontend properties to visualize it + ... + + return item + + +# %% +def create_asset( + item, asset_title, asset_href, nodata, resolution, data_type, nbytes=None +): + asset = pystac.Asset( + href=asset_href, + media_type=pystac.MediaType.COG, + title=asset_title, + roles=["data"], + ) + + item.add_asset(asset_title, asset) + + pystac.extensions.file.FileExtension.ext(asset, add_if_missing=True) + + if nbytes: + asset.extra_fields["file:size"] = nbytes + + raster.RasterExtension.ext(asset, add_if_missing=True).bands = [ + raster.RasterBand.create( + nodata=nodata, + spatial_resolution=resolution, + data_type=data_type, # e.g., raster.DataType.INT8 + ) + ] + + eo.EOExtension.ext(asset, add_if_missing=True).bands = [ + eo.Band.create( + name=asset_title, + # common_name=asset_title, # Iff in <eo#common-band-names>` + description="POP_SSPs", + ) + ] + ... + return item + + +# %% +# ## Function to process one data partition +def process_block( + file_path: pathlib.Path, + base_path: pathlib.Path, # NOTE: only needed because the cog's are stored in a dimension folder structure + data_type: raster.DataType, # Make sure to have raster.DataType properly imported + resolution: int, + storage_prefix: str = "", + name_prefix: str = "", + include_band: str = "", + time_dim: str = "", + x_dim: str = "x", + y_dim: str = "y", + profile_options: Dict[str, Union[str, int]] = {}, + storage_options: Dict[str, str] = {}, +) -> "pystac.Item": + """ + Process a data block, save it, and return a placeholder STAC item. + + Args: + - block: The data block. + - storage_prefix: The storage prefix. + ... [other parameters] + + Returns: + + - pystac.Item: Placeholder STAC item. + """ + # Open dataset (.tif in this case) + block = xr.open_dataset(file_path, engine="rasterio", mask_and_scale=False) + + # Date when Lincke et al. sent Deltares this data + block = block.assign_coords(time=pd.Timestamp(2022, 2, 22).isoformat()) + + item_id = file_path.relative_to(base_path).as_posix() + item = create_item(block, item_id=item_id) + + for var in block: + da = block[var] + + href = urljoin(storage_prefix, pathlib.Path(file_path.name).as_posix()) + # href = name_block( + # da, + # storage_prefix=storage_prefix, + # name_prefix=name_prefix, + # time_dim=time_dim, + # x_dim=x_dim, + # y_dim=y_dim, + # ) + + # uri = to_uri_protocol(href, protocol="gs") + + # TODO: include this file checking + # if not file_exists(file, str(storage_destination), existing_blobs): + # nbytes = write_block(da, uri, storage_options, profile_options, overwrite=True) + + nbytes = os.path.getsize(file_path) + + item = create_asset( + item, + asset_title=da.name, + asset_href=href, + nodata=da.rio.nodata.item(), # use item() as this converts np dtype to python dtype + resolution=resolution, + data_type=raster.DataType.FLOAT32, # should be same as how data is written + nbytes=nbytes, + ) + + return item + + +# %% +def generate_slices(num_chunks: int, chunk_size: int) -> Tuple[slice, slice]: + """Generate slices for chunk-based iteration.""" + for i in range(num_chunks): + yield slice(i * chunk_size, (i + 1) * chunk_size) + + +# %% +def get_paths(folder_structure, base_dir=""): + """Generate paths for a folder structure defined by a dict""" + paths = [] + for key, value in folder_structure.items(): + if isinstance(value, dict): + paths.extend(get_paths(value, os.path.join(base_dir, key))) + elif isinstance(value, list): + if value: + for item in value: + if item != "": + paths.append(os.path.join(base_dir, key, item)) + else: + paths.append(os.path.join(base_dir, key)) + else: + continue + return paths + + +# %% +# ## Do the work +if __name__ == "__main__": + + ## Setup folder structure + + # List the desired folder structure as a dict + # NOTE: make sure the resulting path_list (based on folder structure) matches the tif_list + # NOTE: shortcut taken by calling every year twice, because there are two tif's per year. + folder_structure = { + "SSP1": ["2010", "2030", "2050", "2100", "2150"], + "SSP2": ["2010", "2030", "2050", "2100", "2150"], + "SSP5": ["2010", "2030", "2050", "2100", "2150"], + } + + # Get list of paths for the folder structure + path_list = get_paths(folder_structure) + + items = [] + + collection = create_collection() + + for cur_path in path_list: + + # Update current data being processed + print("now working on: " + cur_path) + # Define tif_list for the cog's created using ../notebooks/26_pp.ipynb + tif_list = pathlib.Path.joinpath(cog_dirs, cur_path).glob("*.tif") + + for cur_tif in tif_list: + + # Open original dataset + pp = xr.open_dataset(cur_tif, engine="rasterio", mask_and_scale=False) + pp = pp.assign_coords( + band=("band", [f"B{k+1:02}" for k in range(pp.dims["band"])]) + ) + pp = pp["band_data"].to_dataset("band") + + profile_options = { + "driver": "COG", + "dtype": "float32", + "compress": "DEFLATE", + # "interleave": "band", + # "ZLEVEL": 9, + # "predictor": 1, + } + storage_options = {"token": "google_default"} + + CUR_HREF_PREFIX = urljoin(HREF_PREFIX, pathlib.Path(cur_path).as_posix()) + + # Process the chunk using a delayed function + item = process_block( + cur_tif, + cog_dirs, + resolution=30, + data_type=raster.DataType.FLOAT32, + storage_prefix=CUR_HREF_PREFIX, + name_prefix="B01", + include_band="", + time_dim=False, + x_dim="x", + y_dim="y", + profile_options=profile_options, + storage_options=storage_options, + ) + + item_href = pathlib.Path( + STAC_DIR, COLLECTION_ID, "items", cur_path, item.id + ) + item_href.with_suffix(".json") + item.set_self_href(item_href) + + items.append(item) + collection.add_item(item) + + print(len(items)) + + # %% store to cloud folder + + # # upload directory with cogs to google cloud + load_google_credentials(google_token_fp=google_cred_dir) + + # dir_to_google_cloud( + # dir_path=str(cog_dirs), + # gcs_project=GCS_PROJECT, + # bucket_name=BUCKET_NAME, + # bucket_proj=BUCKET_PROJ, + # dir_name=PROJ_NAME, + # ) + + # %% + # stac_io = CoCliCoStacIO() + stac_io = DefaultStacIO() + layout = CoCliCoCOGLayout() + + # Set up folder structure + for cur_path in path_list: + STAC_DIR.joinpath(COLLECTION_ID, "items", cur_path).mkdir( + parents=True, exist_ok=True + ) + + collection.update_extent_from_items() + + catalog = pystac.Catalog.from_file(str(STAC_DIR / "catalog.json")) + + if catalog.get_child(collection.id): + catalog.remove_child(collection.id) + print(f"Removed child: {collection.id}.") + + catalog.add_child(collection) + + # NOTE: This function creates problems for maintaining the folder structure. Look into this. + collection.normalize_hrefs(str(STAC_DIR / collection.id), strategy=layout) + + catalog.save( + catalog_type=pystac.CatalogType.SELF_CONTAINED, + dest_href=str(STAC_DIR), + stac_io=stac_io, + ) + + # %% + # TODO: # check coastal_mask_stacs.py validate funcs with coclico_new.. + collection.validate_all() + + # # %% + catalog.validate_all() +# %% From 53dd2a9d930e0524a6a52841ee8054f6e7bdf11b Mon Sep 17 00:00:00 2001 From: mathvansoest <mathvansoest@gmail.com> Date: Tue, 21 Jan 2025 09:19:55 +0100 Subject: [PATCH 7/8] Pushed latest STAC --- scripts/utils/stac_to_cloud.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/utils/stac_to_cloud.py b/scripts/utils/stac_to_cloud.py index 40ab548955..352fc99339 100644 --- a/scripts/utils/stac_to_cloud.py +++ b/scripts/utils/stac_to_cloud.py @@ -16,7 +16,7 @@ GCS_PROJECT = "coclico-11207608-002" BUCKET_NAME = "coclico-data-public" BUCKET_PROJ = "coclico" - STAC_NAME = "coclico-stac-15jan25" # NOTE: if working from main STAC_NAME = 'coclico-stac', if working from branch STAC_NAME = coclico-stac-*** + STAC_NAME = "coclico-stac-20jan25" # NOTE: if working from main STAC_NAME = 'coclico-stac', if working from branch STAC_NAME = coclico-stac-*** IN_DIRNAME = "current" # hard-coded input params at project level From 6591094fb9075c0a202c15056e8b34319c1df9c0 Mon Sep 17 00:00:00 2001 From: mathvansoest <mathvansoest@gmail.com> Date: Wed, 22 Jan 2025 11:11:55 +0100 Subject: [PATCH 8/8] Comment on PR fixed --- current/pp/collection.json | 122 +++- .../pp/items/SSP1/2010/SSP1_2010_EU_UK.json | 4 +- .../pp/items/SSP1/2010/SSP1_2010_Europe.json | 140 ----- .../pp/items/SSP1/2030/SSP1_2030_EU_UK.json | 4 +- .../pp/items/SSP1/2030/SSP1_2030_Europe.json | 140 ----- .../pp/items/SSP1/2050/SSP1_2050_EU_UK.json | 4 +- .../pp/items/SSP1/2050/SSP1_2050_Europe.json | 140 ----- .../pp/items/SSP1/2100/SSP1_2100_EU_UK.json | 4 +- .../pp/items/SSP1/2100/SSP1_2100_Europe.json | 140 ----- .../pp/items/SSP1/2150/SSP1_2150_EU_UK.json | 140 ----- .../pp/items/SSP1/2150/SSP1_2150_Europe.json | 140 ----- .../pp/items/SSP1/2150/SSP2_2010_EU_UK.json | 140 ----- .../pp/items/SSP2/2010/SSP2_2010_EU_UK.json | 4 +- .../pp/items/SSP2/2010/SSP2_2010_Europe.json | 140 ----- .../pp/items/SSP2/2010/SSP2_2030_EU_UK.json | 140 ----- .../pp/items/SSP2/2030/SSP2_2030_EU_UK.json | 4 +- .../pp/items/SSP2/2030/SSP2_2030_Europe.json | 140 ----- .../pp/items/SSP2/2030/SSP2_2050_EU_UK.json | 140 ----- .../pp/items/SSP2/2050/SSP2_2050_EU_UK.json | 4 +- .../pp/items/SSP2/2050/SSP2_2050_Europe.json | 140 ----- .../pp/items/SSP2/2050/SSP2_2100_EU_UK.json | 140 ----- .../pp/items/SSP2/2100/SSP2_2100_EU_UK.json | 4 +- .../pp/items/SSP2/2100/SSP2_2100_Europe.json | 140 ----- .../pp/items/SSP2/2100/SSP5_2010_EU_UK.json | 140 ----- .../pp/items/SSP2/2150/SSP2_2150_EU_UK.json | 140 ----- .../pp/items/SSP2/2150/SSP2_2150_Europe.json | 140 ----- .../pp/items/SSP2/2150/SSP5_2030_EU_UK.json | 140 ----- .../pp/items/SSP3/2010/SSP3_2010_EU_UK.json | 4 +- .../pp/items/SSP3/2030/SSP3_2030_EU_UK.json | 4 +- .../pp/items/SSP3/2050/SSP3_2050_EU_UK.json | 4 +- .../pp/items/SSP3/2100/SSP3_2100_EU_UK.json | 4 +- .../pp/items/SSP4/2010/SSP4_2010_EU_UK.json | 4 +- .../pp/items/SSP4/2030/SSP4_2030_EU_UK.json | 4 +- .../pp/items/SSP4/2050/SSP4_2050_EU_UK.json | 4 +- .../pp/items/SSP4/2100/SSP4_2100_EU_UK.json | 4 +- .../pp/items/SSP5/2010/SSP5_2010_EU_UK.json | 4 +- .../pp/items/SSP5/2010/SSP5_2010_Europe.json | 140 ----- .../pp/items/SSP5/2010/SSP5_2050_EU_UK.json | 140 ----- .../pp/items/SSP5/2030/SSP5_2030_EU_UK.json | 4 +- .../pp/items/SSP5/2030/SSP5_2030_Europe.json | 140 ----- .../pp/items/SSP5/2030/SSP5_2100_EU_UK.json | 140 ----- .../pp/items/SSP5/2050/SSP5_2050_EU_UK.json | 4 +- .../pp/items/SSP5/2050/SSP5_2050_Europe.json | 140 ----- .../pp/items/SSP5/2100/SSP5_2100_EU_UK.json | 4 +- .../pp/items/SSP5/2100/SSP5_2100_Europe.json | 140 ----- .../pp/items/SSP5/2150/SSP5_2150_EU_UK.json | 140 ----- .../pp/items/SSP5/2150/SSP5_2150_Europe.json | 140 ----- scripts/create_stacs/26_pp_stacs.py | 24 +- scripts/create_stacs/26_pp_stacs2.py | 554 ------------------ 49 files changed, 161 insertions(+), 4259 deletions(-) delete mode 100644 current/pp/items/SSP1/2010/SSP1_2010_Europe.json delete mode 100644 current/pp/items/SSP1/2030/SSP1_2030_Europe.json delete mode 100644 current/pp/items/SSP1/2050/SSP1_2050_Europe.json delete mode 100644 current/pp/items/SSP1/2100/SSP1_2100_Europe.json delete mode 100644 current/pp/items/SSP1/2150/SSP1_2150_EU_UK.json delete mode 100644 current/pp/items/SSP1/2150/SSP1_2150_Europe.json delete mode 100644 current/pp/items/SSP1/2150/SSP2_2010_EU_UK.json delete mode 100644 current/pp/items/SSP2/2010/SSP2_2010_Europe.json delete mode 100644 current/pp/items/SSP2/2010/SSP2_2030_EU_UK.json delete mode 100644 current/pp/items/SSP2/2030/SSP2_2030_Europe.json delete mode 100644 current/pp/items/SSP2/2030/SSP2_2050_EU_UK.json delete mode 100644 current/pp/items/SSP2/2050/SSP2_2050_Europe.json delete mode 100644 current/pp/items/SSP2/2050/SSP2_2100_EU_UK.json delete mode 100644 current/pp/items/SSP2/2100/SSP2_2100_Europe.json delete mode 100644 current/pp/items/SSP2/2100/SSP5_2010_EU_UK.json delete mode 100644 current/pp/items/SSP2/2150/SSP2_2150_EU_UK.json delete mode 100644 current/pp/items/SSP2/2150/SSP2_2150_Europe.json delete mode 100644 current/pp/items/SSP2/2150/SSP5_2030_EU_UK.json delete mode 100644 current/pp/items/SSP5/2010/SSP5_2010_Europe.json delete mode 100644 current/pp/items/SSP5/2010/SSP5_2050_EU_UK.json delete mode 100644 current/pp/items/SSP5/2030/SSP5_2030_Europe.json delete mode 100644 current/pp/items/SSP5/2030/SSP5_2100_EU_UK.json delete mode 100644 current/pp/items/SSP5/2050/SSP5_2050_Europe.json delete mode 100644 current/pp/items/SSP5/2100/SSP5_2100_Europe.json delete mode 100644 current/pp/items/SSP5/2150/SSP5_2150_EU_UK.json delete mode 100644 current/pp/items/SSP5/2150/SSP5_2150_Europe.json delete mode 100644 scripts/create_stacs/26_pp_stacs2.py diff --git a/current/pp/collection.json b/current/pp/collection.json index b91c0b8a23..26a8816eb0 100644 --- a/current/pp/collection.json +++ b/current/pp/collection.json @@ -13,102 +13,182 @@ { "rel": "item", "href": "./items/SSP1/2010/SSP1_2010_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP1", + "time": "2010" + } }, { "rel": "item", "href": "./items/SSP1/2030/SSP1_2030_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP1", + "time": "2030" + } }, { "rel": "item", "href": "./items/SSP1/2050/SSP1_2050_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP1", + "time": "2050" + } }, { "rel": "item", "href": "./items/SSP1/2100/SSP1_2100_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP1", + "time": "2100" + } }, { "rel": "item", "href": "./items/SSP2/2010/SSP2_2010_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP2", + "time": "2010" + } }, { "rel": "item", "href": "./items/SSP2/2030/SSP2_2030_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP2", + "time": "2030" + } }, { "rel": "item", "href": "./items/SSP2/2050/SSP2_2050_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP2", + "time": "2050" + } }, { "rel": "item", "href": "./items/SSP2/2100/SSP2_2100_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP2", + "time": "2100" + } }, { "rel": "item", "href": "./items/SSP3/2010/SSP3_2010_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP3", + "time": "2010" + } }, { "rel": "item", "href": "./items/SSP3/2030/SSP3_2030_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP3", + "time": "2030" + } }, { "rel": "item", "href": "./items/SSP3/2050/SSP3_2050_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP3", + "time": "2050" + } }, { "rel": "item", "href": "./items/SSP3/2100/SSP3_2100_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP3", + "time": "2100" + } }, { "rel": "item", "href": "./items/SSP4/2010/SSP4_2010_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP4", + "time": "2010" + } }, { "rel": "item", "href": "./items/SSP4/2030/SSP4_2030_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP4", + "time": "2030" + } }, { "rel": "item", "href": "./items/SSP4/2050/SSP4_2050_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP4", + "time": "2050" + } }, { "rel": "item", "href": "./items/SSP4/2100/SSP4_2100_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP4", + "time": "2100" + } }, { "rel": "item", "href": "./items/SSP5/2010/SSP5_2010_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP5", + "time": "2010" + } }, { "rel": "item", "href": "./items/SSP5/2030/SSP5_2030_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP5", + "time": "2030" + } }, { "rel": "item", "href": "./items/SSP5/2050/SSP5_2050_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP5", + "time": "2050" + } }, { "rel": "item", "href": "./items/SSP5/2100/SSP5_2100_EU_UK.json", - "type": "application/json" + "type": "application/json", + "properties": { + "scenarios": "SSP5", + "time": "2100" + } }, { "rel": "root", @@ -196,8 +276,6 @@ "scenarios": [ "SSP1", "SSP2", - "SSP3", - "SSP4", "SSP5" ], "time": [ diff --git a/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json b/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json index ace308e66b..be234cb8ee 100644 --- a/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json +++ b/current/pp/items/SSP1/2010/SSP1_2010_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP1/2010/SSP1_2010_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.520734Z", + "created": "2025-01-22T09:53:24.852433Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP1_2010_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2010/SSP1_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12477116, diff --git a/current/pp/items/SSP1/2010/SSP1_2010_Europe.json b/current/pp/items/SSP1/2010/SSP1_2010_Europe.json deleted file mode 100644 index 4052caef93..0000000000 --- a/current/pp/items/SSP1/2010/SSP1_2010_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP1/2010/SSP1_2010_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:44.087536Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP1/2010/SSP1_2010_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2010/SSP1_2010_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 18161852, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json b/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json index eb41f82d86..067b8ed01d 100644 --- a/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json +++ b/current/pp/items/SSP1/2030/SSP1_2030_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP1/2030/SSP1_2030_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.553733Z", + "created": "2025-01-22T09:53:24.892440Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP1_2030_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2030/SSP1_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12303548, diff --git a/current/pp/items/SSP1/2030/SSP1_2030_Europe.json b/current/pp/items/SSP1/2030/SSP1_2030_Europe.json deleted file mode 100644 index c7475069a0..0000000000 --- a/current/pp/items/SSP1/2030/SSP1_2030_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP1/2030/SSP1_2030_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:44.275540Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP1/2030/SSP1_2030_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2030/SSP1_2030_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 17158826, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json b/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json index bb6aaec527..e8154ffa51 100644 --- a/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json +++ b/current/pp/items/SSP1/2050/SSP1_2050_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP1/2050/SSP1_2050_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.583735Z", + "created": "2025-01-22T09:53:24.931434Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP1_2050_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2050/SSP1_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12022638, diff --git a/current/pp/items/SSP1/2050/SSP1_2050_Europe.json b/current/pp/items/SSP1/2050/SSP1_2050_Europe.json deleted file mode 100644 index 4cfd5b07d7..0000000000 --- a/current/pp/items/SSP1/2050/SSP1_2050_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP1/2050/SSP1_2050_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:44.464546Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP1/2050/SSP1_2050_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2050/SSP1_2050_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 16095260, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json b/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json index 9981e7a2eb..a22fdf6056 100644 --- a/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json +++ b/current/pp/items/SSP1/2100/SSP1_2100_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP1/2100/SSP1_2100_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.615738Z", + "created": "2025-01-22T09:53:24.970428Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP1_2100_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2100/SSP1_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 10853695, diff --git a/current/pp/items/SSP1/2100/SSP1_2100_Europe.json b/current/pp/items/SSP1/2100/SSP1_2100_Europe.json deleted file mode 100644 index 9602d65023..0000000000 --- a/current/pp/items/SSP1/2100/SSP1_2100_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP1/2100/SSP1_2100_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:44.647546Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP1/2100/SSP1_2100_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2100/SSP1_2100_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 13854565, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP1/2150/SSP1_2150_EU_UK.json b/current/pp/items/SSP1/2150/SSP1_2150_EU_UK.json deleted file mode 100644 index fa58d6c451..0000000000 --- a/current/pp/items/SSP1/2150/SSP1_2150_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP1/2150/SSP1_2150_EU_UK.tif", - "properties": { - "created": "2024-05-16T08:41:44.960544Z", - "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 - ], - "proj:shape": [ - 7844, - 5095 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 34.09166666666666, - 27.633333333405243 - ], - [ - 34.09166666666666, - 70.09166666673858 - ], - [ - -31.275000000000006, - 70.09166666673858 - ], - [ - -31.275000000000006, - 27.633333333405243 - ], - [ - 34.09166666666666, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -31.275000000000006, - 0.0, - -0.008333333333333333, - 70.09166666673858 - ], - "deltares:item_key": "SSP1/2150/SSP1_2150_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 34.09166666666666, - 27.633333333405243 - ], - [ - 34.09166666666666, - 70.09166666673858 - ], - [ - -31.275000000000006, - 70.09166666673858 - ], - [ - -31.275000000000006, - 27.633333333405243 - ], - [ - 34.09166666666666, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2150/SSP1_2150_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 4892058, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP1/2150/SSP1_2150_Europe.json b/current/pp/items/SSP1/2150/SSP1_2150_Europe.json deleted file mode 100644 index 9e03b26adf..0000000000 --- a/current/pp/items/SSP1/2150/SSP1_2150_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP1/2150/SSP1_2150_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:44.863555Z", - "proj:bbox": [ - -180.0, - 27.633333333333336, - 180.0, - 81.85833333333333 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333333336 - ], - [ - 180.0, - 81.85833333333333 - ], - [ - -180.0, - 81.85833333333333 - ], - [ - -180.0, - 27.633333333333336 - ], - [ - 180.0, - 27.633333333333336 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333333333 - ], - "deltares:item_key": "SSP1/2150/SSP1_2150_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333333336 - ], - [ - 180.0, - 81.85833333333333 - ], - [ - -180.0, - 81.85833333333333 - ], - [ - -180.0, - 27.633333333333336 - ], - [ - 180.0, - 27.633333333333336 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2150/SSP1_2150_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 14929062, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333333336, - 180.0, - 81.85833333333333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP1/2150/SSP2_2010_EU_UK.json b/current/pp/items/SSP1/2150/SSP2_2010_EU_UK.json deleted file mode 100644 index 396724a1c4..0000000000 --- a/current/pp/items/SSP1/2150/SSP2_2010_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP1/2150/SSP2_2010_EU_UK.tif", - "properties": { - "created": "2025-01-20T11:20:41.289809Z", - "proj:bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "proj:shape": [ - 8480, - 4554 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333372642, - 0.0, - -25.397916667, - 0.0, - -0.008333333333333333, - 71.799583333 - ], - "deltares:item_key": "SSP1/2150/SSP2_2010_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP1/2150/SSP2_2010_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 12477116, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2010/SSP2_2010_EU_UK.json b/current/pp/items/SSP2/2010/SSP2_2010_EU_UK.json index 2e30b780a7..41254cf8ed 100644 --- a/current/pp/items/SSP2/2010/SSP2_2010_EU_UK.json +++ b/current/pp/items/SSP2/2010/SSP2_2010_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP2/2010/SSP2_2010_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.648738Z", + "created": "2025-01-22T09:53:25.018459Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP2_2010_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2010/SSP2_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12477116, diff --git a/current/pp/items/SSP2/2010/SSP2_2010_Europe.json b/current/pp/items/SSP2/2010/SSP2_2010_Europe.json deleted file mode 100644 index 215ba9e5af..0000000000 --- a/current/pp/items/SSP2/2010/SSP2_2010_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2010/SSP2_2010_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:45.061548Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP2/2010/SSP2_2010_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2010/SSP2_2010_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 18192955, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2010/SSP2_2030_EU_UK.json b/current/pp/items/SSP2/2010/SSP2_2030_EU_UK.json deleted file mode 100644 index 6976039462..0000000000 --- a/current/pp/items/SSP2/2010/SSP2_2030_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2010/SSP2_2030_EU_UK.tif", - "properties": { - "created": "2025-01-20T11:20:41.324810Z", - "proj:bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "proj:shape": [ - 8480, - 4554 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333372642, - 0.0, - -25.397916667, - 0.0, - -0.008333333333333333, - 71.799583333 - ], - "deltares:item_key": "SSP2/2010/SSP2_2030_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2010/SSP2_2030_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 12291085, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2030/SSP2_2030_EU_UK.json b/current/pp/items/SSP2/2030/SSP2_2030_EU_UK.json index 22970d57b0..f7a3454b68 100644 --- a/current/pp/items/SSP2/2030/SSP2_2030_EU_UK.json +++ b/current/pp/items/SSP2/2030/SSP2_2030_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP2/2030/SSP2_2030_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.684737Z", + "created": "2025-01-22T09:53:25.063436Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP2_2030_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2030/SSP2_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12291085, diff --git a/current/pp/items/SSP2/2030/SSP2_2030_Europe.json b/current/pp/items/SSP2/2030/SSP2_2030_Europe.json deleted file mode 100644 index ba370a5c43..0000000000 --- a/current/pp/items/SSP2/2030/SSP2_2030_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2030/SSP2_2030_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:45.225564Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP2/2030/SSP2_2030_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2030/SSP2_2030_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 17581265, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2030/SSP2_2050_EU_UK.json b/current/pp/items/SSP2/2030/SSP2_2050_EU_UK.json deleted file mode 100644 index d413cfa540..0000000000 --- a/current/pp/items/SSP2/2030/SSP2_2050_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2030/SSP2_2050_EU_UK.tif", - "properties": { - "created": "2025-01-20T11:20:41.369810Z", - "proj:bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "proj:shape": [ - 8480, - 4554 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333372642, - 0.0, - -25.397916667, - 0.0, - -0.008333333333333333, - 71.799583333 - ], - "deltares:item_key": "SSP2/2030/SSP2_2050_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2030/SSP2_2050_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 12000849, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2050/SSP2_2050_EU_UK.json b/current/pp/items/SSP2/2050/SSP2_2050_EU_UK.json index ab8d61d421..712ed3e2e0 100644 --- a/current/pp/items/SSP2/2050/SSP2_2050_EU_UK.json +++ b/current/pp/items/SSP2/2050/SSP2_2050_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP2/2050/SSP2_2050_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.725739Z", + "created": "2025-01-22T09:53:25.114437Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP2_2050_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2050/SSP2_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12000849, diff --git a/current/pp/items/SSP2/2050/SSP2_2050_Europe.json b/current/pp/items/SSP2/2050/SSP2_2050_Europe.json deleted file mode 100644 index a3fc19585c..0000000000 --- a/current/pp/items/SSP2/2050/SSP2_2050_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2050/SSP2_2050_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:45.410546Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP2/2050/SSP2_2050_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2050/SSP2_2050_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 17035802, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2050/SSP2_2100_EU_UK.json b/current/pp/items/SSP2/2050/SSP2_2100_EU_UK.json deleted file mode 100644 index e2b0003dcf..0000000000 --- a/current/pp/items/SSP2/2050/SSP2_2100_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2050/SSP2_2100_EU_UK.tif", - "properties": { - "created": "2025-01-20T11:20:41.413811Z", - "proj:bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "proj:shape": [ - 8480, - 4554 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333372642, - 0.0, - -25.397916667, - 0.0, - -0.008333333333333333, - 71.799583333 - ], - "deltares:item_key": "SSP2/2050/SSP2_2100_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2050/SSP2_2100_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 11374839, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2100/SSP2_2100_EU_UK.json b/current/pp/items/SSP2/2100/SSP2_2100_EU_UK.json index e47a1225f3..8177480438 100644 --- a/current/pp/items/SSP2/2100/SSP2_2100_EU_UK.json +++ b/current/pp/items/SSP2/2100/SSP2_2100_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP2/2100/SSP2_2100_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.765744Z", + "created": "2025-01-22T09:53:25.158434Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP2_2100_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2100/SSP2_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 11374839, diff --git a/current/pp/items/SSP2/2100/SSP2_2100_Europe.json b/current/pp/items/SSP2/2100/SSP2_2100_Europe.json deleted file mode 100644 index 5167c0a4d3..0000000000 --- a/current/pp/items/SSP2/2100/SSP2_2100_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2100/SSP2_2100_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:45.598543Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP2/2100/SSP2_2100_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2100/SSP2_2100_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 15172815, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2100/SSP5_2010_EU_UK.json b/current/pp/items/SSP2/2100/SSP5_2010_EU_UK.json deleted file mode 100644 index ed04444332..0000000000 --- a/current/pp/items/SSP2/2100/SSP5_2010_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2100/SSP5_2010_EU_UK.tif", - "properties": { - "created": "2025-01-20T11:20:41.449811Z", - "proj:bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "proj:shape": [ - 8480, - 4554 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333372642, - 0.0, - -25.397916667, - 0.0, - -0.008333333333333333, - 71.799583333 - ], - "deltares:item_key": "SSP2/2100/SSP5_2010_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2100/SSP5_2010_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 12477116, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2150/SSP2_2150_EU_UK.json b/current/pp/items/SSP2/2150/SSP2_2150_EU_UK.json deleted file mode 100644 index 4dda159e7b..0000000000 --- a/current/pp/items/SSP2/2150/SSP2_2150_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2150/SSP2_2150_EU_UK.tif", - "properties": { - "created": "2024-05-16T08:41:45.856549Z", - "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 - ], - "proj:shape": [ - 7844, - 5095 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 34.09166666666666, - 27.633333333405243 - ], - [ - 34.09166666666666, - 70.09166666673858 - ], - [ - -31.275000000000006, - 70.09166666673858 - ], - [ - -31.275000000000006, - 27.633333333405243 - ], - [ - 34.09166666666666, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -31.275000000000006, - 0.0, - -0.008333333333333333, - 70.09166666673858 - ], - "deltares:item_key": "SSP2/2150/SSP2_2150_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 34.09166666666666, - 27.633333333405243 - ], - [ - 34.09166666666666, - 70.09166666673858 - ], - [ - -31.275000000000006, - 70.09166666673858 - ], - [ - -31.275000000000006, - 27.633333333405243 - ], - [ - 34.09166666666666, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2150/SSP2_2150_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 6258489, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2150/SSP2_2150_Europe.json b/current/pp/items/SSP2/2150/SSP2_2150_Europe.json deleted file mode 100644 index fed2998dac..0000000000 --- a/current/pp/items/SSP2/2150/SSP2_2150_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2150/SSP2_2150_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:45.774551Z", - "proj:bbox": [ - -180.0, - 27.633333333333336, - 180.0, - 81.85833333333333 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333333336 - ], - [ - 180.0, - 81.85833333333333 - ], - [ - -180.0, - 81.85833333333333 - ], - [ - -180.0, - 27.633333333333336 - ], - [ - 180.0, - 27.633333333333336 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333333333 - ], - "deltares:item_key": "SSP2/2150/SSP2_2150_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333333336 - ], - [ - 180.0, - 81.85833333333333 - ], - [ - -180.0, - 81.85833333333333 - ], - [ - -180.0, - 27.633333333333336 - ], - [ - 180.0, - 27.633333333333336 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2150/SSP2_2150_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 16687034, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333333336, - 180.0, - 81.85833333333333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP2/2150/SSP5_2030_EU_UK.json b/current/pp/items/SSP2/2150/SSP5_2030_EU_UK.json deleted file mode 100644 index 02ee8a61d2..0000000000 --- a/current/pp/items/SSP2/2150/SSP5_2030_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP2/2150/SSP5_2030_EU_UK.tif", - "properties": { - "created": "2025-01-20T11:20:41.495811Z", - "proj:bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "proj:shape": [ - 8480, - 4554 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333372642, - 0.0, - -25.397916667, - 0.0, - -0.008333333333333333, - 71.799583333 - ], - "deltares:item_key": "SSP2/2150/SSP5_2030_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP2/2150/SSP5_2030_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 12311859, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP3/2010/SSP3_2010_EU_UK.json b/current/pp/items/SSP3/2010/SSP3_2010_EU_UK.json index 556746f3d4..eb61e55b7b 100644 --- a/current/pp/items/SSP3/2010/SSP3_2010_EU_UK.json +++ b/current/pp/items/SSP3/2010/SSP3_2010_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP3/2010/SSP3_2010_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.804737Z", + "created": "2025-01-22T09:53:25.196439Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP3_2010_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP3/2010/SSP3_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12477116, diff --git a/current/pp/items/SSP3/2030/SSP3_2030_EU_UK.json b/current/pp/items/SSP3/2030/SSP3_2030_EU_UK.json index d9077bb0df..03e1afe1b3 100644 --- a/current/pp/items/SSP3/2030/SSP3_2030_EU_UK.json +++ b/current/pp/items/SSP3/2030/SSP3_2030_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP3/2030/SSP3_2030_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.835739Z", + "created": "2025-01-22T09:53:25.241432Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP3_2030_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP3/2030/SSP3_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12304730, diff --git a/current/pp/items/SSP3/2050/SSP3_2050_EU_UK.json b/current/pp/items/SSP3/2050/SSP3_2050_EU_UK.json index 056b19ad99..68040d6caf 100644 --- a/current/pp/items/SSP3/2050/SSP3_2050_EU_UK.json +++ b/current/pp/items/SSP3/2050/SSP3_2050_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP3/2050/SSP3_2050_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.864742Z", + "created": "2025-01-22T09:53:25.281440Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP3_2050_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP3/2050/SSP3_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12025510, diff --git a/current/pp/items/SSP3/2100/SSP3_2100_EU_UK.json b/current/pp/items/SSP3/2100/SSP3_2100_EU_UK.json index 8e12715c05..ea07782764 100644 --- a/current/pp/items/SSP3/2100/SSP3_2100_EU_UK.json +++ b/current/pp/items/SSP3/2100/SSP3_2100_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP3/2100/SSP3_2100_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.895738Z", + "created": "2025-01-22T09:53:25.327435Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP3_2100_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP3/2100/SSP3_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 11880443, diff --git a/current/pp/items/SSP4/2010/SSP4_2010_EU_UK.json b/current/pp/items/SSP4/2010/SSP4_2010_EU_UK.json index e2fd3ccaf0..a3ea2f52e7 100644 --- a/current/pp/items/SSP4/2010/SSP4_2010_EU_UK.json +++ b/current/pp/items/SSP4/2010/SSP4_2010_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP4/2010/SSP4_2010_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.927740Z", + "created": "2025-01-22T09:53:25.371433Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP4_2010_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP4/2010/SSP4_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12477116, diff --git a/current/pp/items/SSP4/2030/SSP4_2030_EU_UK.json b/current/pp/items/SSP4/2030/SSP4_2030_EU_UK.json index 50a55c3a02..435451359f 100644 --- a/current/pp/items/SSP4/2030/SSP4_2030_EU_UK.json +++ b/current/pp/items/SSP4/2030/SSP4_2030_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP4/2030/SSP4_2030_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:23.963754Z", + "created": "2025-01-22T09:53:25.409437Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP4_2030_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP4/2030/SSP4_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12259213, diff --git a/current/pp/items/SSP4/2050/SSP4_2050_EU_UK.json b/current/pp/items/SSP4/2050/SSP4_2050_EU_UK.json index d901f46483..9f5abf1bbb 100644 --- a/current/pp/items/SSP4/2050/SSP4_2050_EU_UK.json +++ b/current/pp/items/SSP4/2050/SSP4_2050_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP4/2050/SSP4_2050_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:24.001742Z", + "created": "2025-01-22T09:53:25.447432Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP4_2050_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP4/2050/SSP4_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 11841529, diff --git a/current/pp/items/SSP4/2100/SSP4_2100_EU_UK.json b/current/pp/items/SSP4/2100/SSP4_2100_EU_UK.json index cc4dbb5d8a..1bb56a7f39 100644 --- a/current/pp/items/SSP4/2100/SSP4_2100_EU_UK.json +++ b/current/pp/items/SSP4/2100/SSP4_2100_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP4/2100/SSP4_2100_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:24.034739Z", + "created": "2025-01-22T09:53:25.486435Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP4_2100_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP4/2100/SSP4_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 10295137, diff --git a/current/pp/items/SSP5/2010/SSP5_2010_EU_UK.json b/current/pp/items/SSP5/2010/SSP5_2010_EU_UK.json index 94e82cb66b..531c6e39bf 100644 --- a/current/pp/items/SSP5/2010/SSP5_2010_EU_UK.json +++ b/current/pp/items/SSP5/2010/SSP5_2010_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP5/2010/SSP5_2010_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:24.065739Z", + "created": "2025-01-22T09:53:25.527446Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2010_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2010/SSP5_2010_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12477116, diff --git a/current/pp/items/SSP5/2010/SSP5_2010_Europe.json b/current/pp/items/SSP5/2010/SSP5_2010_Europe.json deleted file mode 100644 index f578072786..0000000000 --- a/current/pp/items/SSP5/2010/SSP5_2010_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP5/2010/SSP5_2010_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:45.950546Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP5/2010/SSP5_2010_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2010/SSP5_2010_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 18213923, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP5/2010/SSP5_2050_EU_UK.json b/current/pp/items/SSP5/2010/SSP5_2050_EU_UK.json deleted file mode 100644 index 13c31b8b9b..0000000000 --- a/current/pp/items/SSP5/2010/SSP5_2050_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP5/2010/SSP5_2050_EU_UK.tif", - "properties": { - "created": "2025-01-20T11:20:41.535808Z", - "proj:bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "proj:shape": [ - 8480, - 4554 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333372642, - 0.0, - -25.397916667, - 0.0, - -0.008333333333333333, - 71.799583333 - ], - "deltares:item_key": "SSP5/2010/SSP5_2050_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2010/SSP5_2050_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 12124123, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP5/2030/SSP5_2030_EU_UK.json b/current/pp/items/SSP5/2030/SSP5_2030_EU_UK.json index 28b660d3f7..37a666d5ad 100644 --- a/current/pp/items/SSP5/2030/SSP5_2030_EU_UK.json +++ b/current/pp/items/SSP5/2030/SSP5_2030_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP5/2030/SSP5_2030_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:24.095738Z", + "created": "2025-01-22T09:53:25.576435Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2030_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2030/SSP5_2030_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12311859, diff --git a/current/pp/items/SSP5/2030/SSP5_2030_Europe.json b/current/pp/items/SSP5/2030/SSP5_2030_Europe.json deleted file mode 100644 index da4b660504..0000000000 --- a/current/pp/items/SSP5/2030/SSP5_2030_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP5/2030/SSP5_2030_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:46.107560Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP5/2030/SSP5_2030_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2030/SSP5_2030_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 17290221, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP5/2030/SSP5_2100_EU_UK.json b/current/pp/items/SSP5/2030/SSP5_2100_EU_UK.json deleted file mode 100644 index da0cbd26e6..0000000000 --- a/current/pp/items/SSP5/2030/SSP5_2100_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP5/2030/SSP5_2100_EU_UK.tif", - "properties": { - "created": "2025-01-20T11:20:41.570812Z", - "proj:bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "proj:shape": [ - 8480, - 4554 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333372642, - 0.0, - -25.397916667, - 0.0, - -0.008333333333333333, - 71.799583333 - ], - "deltares:item_key": "SSP5/2030/SSP5_2100_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 45.268750000000004, - 33.849583333000005 - ], - [ - 45.268750000000004, - 71.799583333 - ], - [ - -25.397916667, - 71.799583333 - ], - [ - -25.397916667, - 33.849583333000005 - ], - [ - 45.268750000000004, - 33.849583333000005 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2030/SSP5_2100_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 11314430, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -25.397916667, - 33.849583333000005, - 45.268750000000004, - 71.799583333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP5/2050/SSP5_2050_EU_UK.json b/current/pp/items/SSP5/2050/SSP5_2050_EU_UK.json index 67d7e13067..4a736050a3 100644 --- a/current/pp/items/SSP5/2050/SSP5_2050_EU_UK.json +++ b/current/pp/items/SSP5/2050/SSP5_2050_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP5/2050/SSP5_2050_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:24.123739Z", + "created": "2025-01-22T09:53:25.616439Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2050_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2050/SSP5_2050_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 12124123, diff --git a/current/pp/items/SSP5/2050/SSP5_2050_Europe.json b/current/pp/items/SSP5/2050/SSP5_2050_Europe.json deleted file mode 100644 index 7b0ab13251..0000000000 --- a/current/pp/items/SSP5/2050/SSP5_2050_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP5/2050/SSP5_2050_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:46.297554Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP5/2050/SSP5_2050_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2050/SSP5_2050_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 16398501, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP5/2100/SSP5_2100_EU_UK.json b/current/pp/items/SSP5/2100/SSP5_2100_EU_UK.json index ff21153c66..aa85628bed 100644 --- a/current/pp/items/SSP5/2100/SSP5_2100_EU_UK.json +++ b/current/pp/items/SSP5/2100/SSP5_2100_EU_UK.json @@ -3,7 +3,7 @@ "stac_version": "1.0.0", "id": "SSP5/2100/SSP5_2100_EU_UK.tif", "properties": { - "created": "2025-01-20T16:32:24.154738Z", + "created": "2025-01-22T09:53:25.654437Z", "proj:bbox": [ -25.397916667, 33.849583333000005, @@ -104,7 +104,7 @@ ], "assets": { "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2100_EU_UK.tif", + "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2100/SSP5_2100_EU_UK.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "title": "band_data", "file:size": 11314430, diff --git a/current/pp/items/SSP5/2100/SSP5_2100_Europe.json b/current/pp/items/SSP5/2100/SSP5_2100_Europe.json deleted file mode 100644 index 7fdffb39b0..0000000000 --- a/current/pp/items/SSP5/2100/SSP5_2100_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP5/2100/SSP5_2100_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:46.491557Z", - "proj:bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333340524 - ], - "deltares:item_key": "SSP5/2100/SSP5_2100_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333405243 - ], - [ - 180.0, - 81.85833333340524 - ], - [ - -180.0, - 81.85833333340524 - ], - [ - -180.0, - 27.633333333405243 - ], - [ - 180.0, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2100/SSP5_2100_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 14507260, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333405243, - 180.0, - 81.85833333340524 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP5/2150/SSP5_2150_EU_UK.json b/current/pp/items/SSP5/2150/SSP5_2150_EU_UK.json deleted file mode 100644 index e647d95146..0000000000 --- a/current/pp/items/SSP5/2150/SSP5_2150_EU_UK.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP5/2150/SSP5_2150_EU_UK.tif", - "properties": { - "created": "2024-05-16T08:41:46.738560Z", - "proj:bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 - ], - "proj:shape": [ - 7844, - 5095 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 34.09166666666666, - 27.633333333405243 - ], - [ - 34.09166666666666, - 70.09166666673858 - ], - [ - -31.275000000000006, - 70.09166666673858 - ], - [ - -31.275000000000006, - 27.633333333405243 - ], - [ - 34.09166666666666, - 27.633333333405243 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -31.275000000000006, - 0.0, - -0.008333333333333333, - 70.09166666673858 - ], - "deltares:item_key": "SSP5/2150/SSP5_2150_EU_UK.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 34.09166666666666, - 27.633333333405243 - ], - [ - 34.09166666666666, - 70.09166666673858 - ], - [ - -31.275000000000006, - 70.09166666673858 - ], - [ - -31.275000000000006, - 27.633333333405243 - ], - [ - 34.09166666666666, - 27.633333333405243 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2150_EU_UK.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 5644824, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -31.275000000000006, - 27.633333333405243, - 34.09166666666666, - 70.09166666673858 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/current/pp/items/SSP5/2150/SSP5_2150_Europe.json b/current/pp/items/SSP5/2150/SSP5_2150_Europe.json deleted file mode 100644 index 17c907d176..0000000000 --- a/current/pp/items/SSP5/2150/SSP5_2150_Europe.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.0.0", - "id": "SSP5/2150/SSP5_2150_Europe.tif", - "properties": { - "created": "2024-05-16T08:41:46.666554Z", - "proj:bbox": [ - -180.0, - 27.633333333333336, - 180.0, - 81.85833333333333 - ], - "proj:shape": [ - 43200, - 6507 - ], - "proj:epsg": 4326, - "proj:geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333333336 - ], - [ - 180.0, - 81.85833333333333 - ], - [ - -180.0, - 81.85833333333333 - ], - [ - -180.0, - 27.633333333333336 - ], - [ - 180.0, - 27.633333333333336 - ] - ] - ] - }, - "proj:transform": [ - 0.008333333333333333, - 0.0, - -180.0, - 0.0, - -0.008333333333333333, - 81.85833333333333 - ], - "deltares:item_key": "SSP5/2150/SSP5_2150_Europe.tif", - "datetime": "2022-02-22T00:00:00Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 180.0, - 27.633333333333336 - ], - [ - 180.0, - 81.85833333333333 - ], - [ - -180.0, - 81.85833333333333 - ], - [ - -180.0, - 27.633333333333336 - ], - [ - 180.0, - 27.633333333333336 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - }, - { - "rel": "root", - "href": "../../../../catalog.json", - "type": "application/json", - "title": "CoCliCo STAC Catalog" - }, - { - "rel": "parent", - "href": "../../../collection.json", - "type": "application/json", - "title": "Population Projections" - } - ], - "assets": { - "band_data": { - "href": "https://storage.googleapis.com/coclico-data-public/coclico/pp/SSP5/2150/SSP5_2150_Europe.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "title": "band_data", - "file:size": 15657573, - "raster:bands": [ - { - "nodata": -9999, - "data_type": "float32", - "spatial_resolution": 30 - } - ], - "eo:bands": [ - { - "name": "band_data", - "description": "POP_SSPs" - } - ], - "roles": [ - "data" - ] - } - }, - "bbox": [ - -180.0, - 27.633333333333336, - 180.0, - 81.85833333333333 - ], - "stac_extensions": [ - "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/raster/v1.1.0/schema.json", - "https://stac-extensions.github.io/eo/v1.1.0/schema.json" - ], - "collection": "pp" -} \ No newline at end of file diff --git a/scripts/create_stacs/26_pp_stacs.py b/scripts/create_stacs/26_pp_stacs.py index d4bda8c504..8b4acadfb2 100644 --- a/scripts/create_stacs/26_pp_stacs.py +++ b/scripts/create_stacs/26_pp_stacs.py @@ -43,7 +43,8 @@ from coclicodata.coclico_stac.extension import ( CoclicoExtension, ) # self built stac extension - +from coclicodata.coclico_stac.templates import ( + extend_links) # from coastmonitor.io.cloud import ( # to_https_url, # to_storage_location, @@ -556,7 +557,11 @@ def get_paths(folder_structure, base_dir=""): } storage_options = {"token": "google_default"} - CUR_HREF_PREFIX = urljoin(HREF_PREFIX, pathlib.Path(cur_path).as_posix()) + # Get last 3 elements from pathlib.Path object + + # + + CUR_HREF_PREFIX = urljoin(HREF_PREFIX, scen, year) # Process the chunk using a delayed function item = process_block( @@ -575,7 +580,7 @@ def get_paths(folder_structure, base_dir=""): ) item_href = pathlib.Path( - STAC_DIR, COLLECTION_ID, "items", cur_path, item.id + STAC_DIR, COLLECTION_ID, "items", cur_tif.parent, item.id ) item_href.with_suffix(".json") item.set_self_href(item_href) @@ -636,6 +641,19 @@ def get_paths(folder_structure, base_dir=""): if value not in dimvals[key]: dimvals[key].append(value) + # set extra link properties + extend_links(collection, dimvals.keys()) + + collection.update_extent_from_items() + + dims_to_ignore = {'scenarios': ['SSP3', 'SSP4']} + + # Delete dims_to_ignore from dimvals + for k, v in dims_to_ignore.items(): + for val in v: + if val in dimvals[k]: + dimvals[k].remove(val) + for k, v in dimvals.items(): collection.summaries.add(k, v) diff --git a/scripts/create_stacs/26_pp_stacs2.py b/scripts/create_stacs/26_pp_stacs2.py deleted file mode 100644 index 85eb77e1d5..0000000000 --- a/scripts/create_stacs/26_pp_stacs2.py +++ /dev/null @@ -1,554 +0,0 @@ -# %% -# ## Load software -import datetime - -# import os -import pathlib -import glob -import os - -# import sys -# from re import S, template -import json -import fsspec -from typing import Any, Dict, List, Optional, Tuple, Union - -# import cftime -# import numpy as np -import pandas as pd -import pystac -import rasterio - -# import rioxarray as rio -import shapely -import xarray as xr -import math -import dask -from posixpath import join as urljoin -from pystac.extensions import eo, raster -from stactools.core.utils import antimeridian -from pystac.stac_io import DefaultStacIO - -# from datacube.utils.cog import write_cog -from coclicodata.drive_config import p_drive - -# from pystac import Catalog, CatalogType, Collection, Summaries -from coclicodata.etl.cloud_utils import load_google_credentials, dir_to_google_cloud -from coclicodata.coclico_stac.io import CoCliCoStacIO -from coclicodata.coclico_stac.layouts import CoCliCoCOGLayout -from coclicodata.coclico_stac.extension import ( - CoclicoExtension, -) # self built stac extension - -# from coastmonitor.io.cloud import ( -# to_https_url, -# to_storage_location, -# to_uri_protocol, -# write_block, -# ) -from coastmonitor.io.utils import name_block -from rasterio import logging - -log = logging.getLogger() -log.setLevel(logging.ERROR) - -# %% -# ## Define variables -# hard-coded input params at project level -GCS_PROTOCOL = "https://storage.googleapis.com" -GCS_PROJECT = "coclico-11207608-002" -BUCKET_NAME = "coclico-data-public" -BUCKET_PROJ = "coclico" -PROJ_NAME = "pp" - -# hard-coded STAC templates -CUR_CWD = pathlib.Path.cwd() -STAC_DIR = CUR_CWD / "current" - -# hard-coded input params which differ per dataset -METADATA = "metadata_population.json" -DATASET_DIR = "WP5" -CF_FILE = "SSP1_2010_Europe.tif" # NOTE: multiple files -COLLECTION_ID = "pp" # name of stac collection - -# these are added at collection level, determine dashboard graph layout using all items -PLOT_SERIES = "scenarios" -PLOT_X_AXIS = "time" -PLOT_TYPE = "line" -MIN = 0 -MAX = 3 -LINEAR_GRADIENT = [ - {"color": "hsl(110,90%,80%)", "offset": "0.000%", "opacity": 100}, - {"color": "hsla(55,88%,53%,0.5)", "offset": "50.000%", "opacity": 100}, - {"color": "hsl(0,90%,70%)", "offset": "100.000%", "opacity": 100}, -] - -# define local directories -home = pathlib.Path().home() -tmp_dir = home.joinpath("data", "tmp") -coclico_data_dir = p_drive.joinpath( - "11207608-coclico", "FULLTRACK_DATA" -) # remote p drive -google_cred_dir = p_drive.joinpath( - "11207608-coclico", "FASTTRACK_DATA", "google_credentials_new.json" -) - -# use local or remote data dir -use_local_data = False - -if use_local_data: - ds_dir = tmp_dir.joinpath(DATASET_DIR) -else: - ds_dir = coclico_data_dir.joinpath(DATASET_DIR) - -if not ds_dir.exists(): - raise FileNotFoundError(f"Data dir does not exist, {str(ds_dir)}") - -# directory to export result -cog_dirs = ds_dir.joinpath("cogs") -ds_fp = ds_dir.joinpath(CF_FILE) # file directory - -# load metadata template -metadata_fp = ds_dir.joinpath("metadata", METADATA) -with open(metadata_fp, "r") as f: - metadata = json.load(f) - -# data output configurations -HREF_PREFIX = urljoin( - GCS_PROTOCOL, BUCKET_NAME, BUCKET_PROJ, PROJ_NAME -) # cloud export directory -TMP_DIR = pathlib.Path.home() / "tmp" - - -# %% -def create_collection( - description: str | None = None, extra_fields: dict[str, Any] | None = None -) -> pystac.Collection: - providers = [ - pystac.Provider( - name="Deltares", - roles=[ - pystac.provider.ProviderRole.PROCESSOR, - pystac.provider.ProviderRole.HOST, - ], - url="https://deltares.nl", - ), - pystac.Provider( - "Geographisches Institut, Kiel University", - roles=[ - pystac.provider.ProviderRole.PRODUCER, - ], - url="www.uni-kiel.de", - ), - ] - - start_datetime = datetime.datetime(2024, 1, 18, tzinfo=datetime.timezone.utc) - - extent = pystac.Extent( - pystac.SpatialExtent([[-180, -89.9999999999, 180, 90.0000000001]]), - pystac.TemporalExtent([[start_datetime, None]]), - ) - - links = [ - pystac.Link( - rel=pystac.RelType.LICENSE, - target="https://coclicoservices.eu/legal/", - media_type="text/html", - title="ODbL-1.0 License", # NOTE: not sure if this applies - ) - ] - - keywords = [ - "Coast", - "Population", - "Projection", - "Shared Socioeconomic Pathways", - "Europe", - "European" "CoCliCo", - "Deltares", - "Cloud Optimized GeoTIFF", - ] - - if description is None: - description = "Merkens et al. 2016 regionalised the population projection of the SSP-Database. The produced grids have a spatial resolution of 30*30 arcsecond (approx. 1 km at the equator) and represent the population count per cell. A detailed description of the methods is given in the reference below." - - if "Creative Commons" in metadata["LICENSE"] and "4.0" in metadata["LICENSE"]: - metadata["LICENSE"] = "CC-BY-4.0" - - collection = pystac.Collection( - id=COLLECTION_ID, - title="Population Projections", - description=description, # noqa: E502 - license=metadata["LICENSE"], - providers=providers, - extent=extent, - catalog_type=pystac.CatalogType.RELATIVE_PUBLISHED, - ) - - collection.add_asset( - "thumbnail", - pystac.Asset( - "https://storage.googleapis.com/dgds-data-public/coclico/assets/thumbnails/" - + COLLECTION_ID - + ".png", # noqa: E501, # noqa: E501 - title="Thumbnail", - media_type=pystac.MediaType.PNG, - ), - ) - collection.links = links - collection.keywords = keywords - - pystac.extensions.item_assets.ItemAssetsExtension.add_to(collection) - - ASSET_EXTRA_FIELDS = { - "xarray:storage_options": {"token": "google_default"}, - } - - collection.extra_fields["item_assets"] = { - "data": { - "type": pystac.MediaType.COG, - "title": "Gridded population projections for the coastal zone under the Shared Socioeconomic Pathways", - "roles": ["data"], - "description": "Merkens et al. 2016 regionalised the population projection of the SSP-Database. The produced grids have a spatial resolution of 30*30 arcsecond (approx. 1 km at the equator) and represent the population count per cell. A detailed description of the methods is given in the reference below.", - **ASSET_EXTRA_FIELDS, - } - } - - if extra_fields: - collection.extra_fields.update(extra_fields) - - # add coclico frontend properties to collection, NOTE: custom extension does not work like this anymore, need renewed generic method to manage this centrally - # coclico_ext = CoclicoExtension.ext(collection, add_if_missing=True) - # coclico_ext.units = "float32" - # coclico_ext.plot_type = "raster" - # coclico_ext.min = 1 - # coclico_ext.max = 100000 # NOTE: not checked - - # CoclicoExtension.add_to(collection) - collection.extra_fields["deltares:units"] = metadata["UNITS"] - collection.extra_fields["deltares:plot_type"] = PLOT_TYPE - collection.extra_fields["deltares:min"] = MIN - collection.extra_fields["deltares:max"] = MAX - - return collection - - -# %% -def create_item(block, item_id, antimeridian_strategy=antimeridian.Strategy.SPLIT): - dst_crs = rasterio.crs.CRS.from_epsg(4326) - - # when the data spans a range, it's common practice to use the middle time as the datetime provided - # in the STAC item. So then you have to infer the start_datetime, end_datetime and get the middle - # from those. - # start_datetime, end_datetime = ... - # middle_datetime = start_datetime + (end_datetime - start_datetime) / 2 - - # the bbox of the STAC item is provided in 4326 - bbox = rasterio.warp.transform_bounds(block.rio.crs, dst_crs, *block.rio.bounds()) - geometry = shapely.geometry.mapping(shapely.make_valid(shapely.geometry.box(*bbox))) - bbox = shapely.make_valid(shapely.box(*bbox)).bounds - - item = pystac.Item( - id=item_id, - geometry=geometry, - bbox=bbox, - datetime=pd.Timestamp(block["time"].item()), - properties={}, - ) - - # useful for global datasets that cross the antimerdian E-W line - antimeridian.fix_item(item, antimeridian_strategy) - - # use this when the data spans a certain time range - # item.common_metadata.start_datetime = start_datetime - # item.common_metadata.end_datetime = end_datetime - - item.common_metadata.created = datetime.datetime.utcnow() - - ext = pystac.extensions.projection.ProjectionExtension.ext( - item, add_if_missing=True - ) - ext.bbox = block.rio.bounds() # these are provided in the crs of the data - ext.shape = tuple(v for k, v in block.sizes.items() if k in ["y", "x"]) - ext.epsg = block.rio.crs.to_epsg() - ext.geometry = shapely.geometry.mapping(shapely.geometry.box(*ext.bbox)) - ext.transform = list(block.rio.transform())[:6] - ext.add_to(item) - - # add CoCliCo frontend properties to visualize it in the web portal - # TODO: This is just example. We first need to decide which properties frontend needs for COG visualization - # NOTE: custom extension does not work like this anymore, need renewed generic method to manage this centrally - # coclico_ext = CoclicoExtension.ext(item, add_if_missing=True) - # coclico_ext.item_key = item_id - # coclico_ext.add_to(item) - - # CoclicoExtension.add_to(item) - item.properties["deltares:item_key"] = item_id - - # add more functions to describe the data at item level, for example the frontend properties to visualize it - ... - - return item - - -# %% -def create_asset( - item, asset_title, asset_href, nodata, resolution, data_type, nbytes=None -): - asset = pystac.Asset( - href=asset_href, - media_type=pystac.MediaType.COG, - title=asset_title, - roles=["data"], - ) - - item.add_asset(asset_title, asset) - - pystac.extensions.file.FileExtension.ext(asset, add_if_missing=True) - - if nbytes: - asset.extra_fields["file:size"] = nbytes - - raster.RasterExtension.ext(asset, add_if_missing=True).bands = [ - raster.RasterBand.create( - nodata=nodata, - spatial_resolution=resolution, - data_type=data_type, # e.g., raster.DataType.INT8 - ) - ] - - eo.EOExtension.ext(asset, add_if_missing=True).bands = [ - eo.Band.create( - name=asset_title, - # common_name=asset_title, # Iff in <eo#common-band-names>` - description="POP_SSPs", - ) - ] - ... - return item - - -# %% -# ## Function to process one data partition -def process_block( - file_path: pathlib.Path, - base_path: pathlib.Path, # NOTE: only needed because the cog's are stored in a dimension folder structure - data_type: raster.DataType, # Make sure to have raster.DataType properly imported - resolution: int, - storage_prefix: str = "", - name_prefix: str = "", - include_band: str = "", - time_dim: str = "", - x_dim: str = "x", - y_dim: str = "y", - profile_options: Dict[str, Union[str, int]] = {}, - storage_options: Dict[str, str] = {}, -) -> "pystac.Item": - """ - Process a data block, save it, and return a placeholder STAC item. - - Args: - - block: The data block. - - storage_prefix: The storage prefix. - ... [other parameters] - - Returns: - - - pystac.Item: Placeholder STAC item. - """ - # Open dataset (.tif in this case) - block = xr.open_dataset(file_path, engine="rasterio", mask_and_scale=False) - - # Date when Lincke et al. sent Deltares this data - block = block.assign_coords(time=pd.Timestamp(2022, 2, 22).isoformat()) - - item_id = file_path.relative_to(base_path).as_posix() - item = create_item(block, item_id=item_id) - - for var in block: - da = block[var] - - href = urljoin(storage_prefix, pathlib.Path(file_path.name).as_posix()) - # href = name_block( - # da, - # storage_prefix=storage_prefix, - # name_prefix=name_prefix, - # time_dim=time_dim, - # x_dim=x_dim, - # y_dim=y_dim, - # ) - - # uri = to_uri_protocol(href, protocol="gs") - - # TODO: include this file checking - # if not file_exists(file, str(storage_destination), existing_blobs): - # nbytes = write_block(da, uri, storage_options, profile_options, overwrite=True) - - nbytes = os.path.getsize(file_path) - - item = create_asset( - item, - asset_title=da.name, - asset_href=href, - nodata=da.rio.nodata.item(), # use item() as this converts np dtype to python dtype - resolution=resolution, - data_type=raster.DataType.FLOAT32, # should be same as how data is written - nbytes=nbytes, - ) - - return item - - -# %% -def generate_slices(num_chunks: int, chunk_size: int) -> Tuple[slice, slice]: - """Generate slices for chunk-based iteration.""" - for i in range(num_chunks): - yield slice(i * chunk_size, (i + 1) * chunk_size) - - -# %% -def get_paths(folder_structure, base_dir=""): - """Generate paths for a folder structure defined by a dict""" - paths = [] - for key, value in folder_structure.items(): - if isinstance(value, dict): - paths.extend(get_paths(value, os.path.join(base_dir, key))) - elif isinstance(value, list): - if value: - for item in value: - if item != "": - paths.append(os.path.join(base_dir, key, item)) - else: - paths.append(os.path.join(base_dir, key)) - else: - continue - return paths - - -# %% -# ## Do the work -if __name__ == "__main__": - - ## Setup folder structure - - # List the desired folder structure as a dict - # NOTE: make sure the resulting path_list (based on folder structure) matches the tif_list - # NOTE: shortcut taken by calling every year twice, because there are two tif's per year. - folder_structure = { - "SSP1": ["2010", "2030", "2050", "2100", "2150"], - "SSP2": ["2010", "2030", "2050", "2100", "2150"], - "SSP5": ["2010", "2030", "2050", "2100", "2150"], - } - - # Get list of paths for the folder structure - path_list = get_paths(folder_structure) - - items = [] - - collection = create_collection() - - for cur_path in path_list: - - # Update current data being processed - print("now working on: " + cur_path) - # Define tif_list for the cog's created using ../notebooks/26_pp.ipynb - tif_list = pathlib.Path.joinpath(cog_dirs, cur_path).glob("*.tif") - - for cur_tif in tif_list: - - # Open original dataset - pp = xr.open_dataset(cur_tif, engine="rasterio", mask_and_scale=False) - pp = pp.assign_coords( - band=("band", [f"B{k+1:02}" for k in range(pp.dims["band"])]) - ) - pp = pp["band_data"].to_dataset("band") - - profile_options = { - "driver": "COG", - "dtype": "float32", - "compress": "DEFLATE", - # "interleave": "band", - # "ZLEVEL": 9, - # "predictor": 1, - } - storage_options = {"token": "google_default"} - - CUR_HREF_PREFIX = urljoin(HREF_PREFIX, pathlib.Path(cur_path).as_posix()) - - # Process the chunk using a delayed function - item = process_block( - cur_tif, - cog_dirs, - resolution=30, - data_type=raster.DataType.FLOAT32, - storage_prefix=CUR_HREF_PREFIX, - name_prefix="B01", - include_band="", - time_dim=False, - x_dim="x", - y_dim="y", - profile_options=profile_options, - storage_options=storage_options, - ) - - item_href = pathlib.Path( - STAC_DIR, COLLECTION_ID, "items", cur_path, item.id - ) - item_href.with_suffix(".json") - item.set_self_href(item_href) - - items.append(item) - collection.add_item(item) - - print(len(items)) - - # %% store to cloud folder - - # # upload directory with cogs to google cloud - load_google_credentials(google_token_fp=google_cred_dir) - - # dir_to_google_cloud( - # dir_path=str(cog_dirs), - # gcs_project=GCS_PROJECT, - # bucket_name=BUCKET_NAME, - # bucket_proj=BUCKET_PROJ, - # dir_name=PROJ_NAME, - # ) - - # %% - # stac_io = CoCliCoStacIO() - stac_io = DefaultStacIO() - layout = CoCliCoCOGLayout() - - # Set up folder structure - for cur_path in path_list: - STAC_DIR.joinpath(COLLECTION_ID, "items", cur_path).mkdir( - parents=True, exist_ok=True - ) - - collection.update_extent_from_items() - - catalog = pystac.Catalog.from_file(str(STAC_DIR / "catalog.json")) - - if catalog.get_child(collection.id): - catalog.remove_child(collection.id) - print(f"Removed child: {collection.id}.") - - catalog.add_child(collection) - - # NOTE: This function creates problems for maintaining the folder structure. Look into this. - collection.normalize_hrefs(str(STAC_DIR / collection.id), strategy=layout) - - catalog.save( - catalog_type=pystac.CatalogType.SELF_CONTAINED, - dest_href=str(STAC_DIR), - stac_io=stac_io, - ) - - # %% - # TODO: # check coastal_mask_stacs.py validate funcs with coclico_new.. - collection.validate_all() - - # # %% - catalog.validate_all() -# %%