{ "cells": [ { "cell_type": "code", "execution_count": 2, "id": "44127b59", "metadata": {}, "outputs": [], "source": [ "import xarray as xr\n", "import pandas as pd\n", "import os\n", "import geopandas as gpd\n", "from shapely.geometry import mapping\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 46, "id": "f555db26", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting rioxarray\n", " Downloading rioxarray-0.14.0-py3-none-any.whl (53 kB)\n", "Requirement already satisfied: pyproj>=2.2 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rioxarray) (3.4.1)\n", "Requirement already satisfied: numpy>=1.21 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rioxarray) (1.22.3)\n", "Requirement already satisfied: packaging in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rioxarray) (21.3)\n", "Requirement already satisfied: rasterio>=1.2 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rioxarray) (1.3.6)\n", "Requirement already satisfied: xarray>=0.17 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rioxarray) (2022.3.0)\n", "Requirement already satisfied: certifi in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from pyproj>=2.2->rioxarray) (2021.10.8)\n", "Requirement already satisfied: snuggs>=1.4.1 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rasterio>=1.2->rioxarray) (1.4.7)\n", "Requirement already satisfied: attrs in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rasterio>=1.2->rioxarray) (21.4.0)\n", "Requirement already satisfied: click>=4.0 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rasterio>=1.2->rioxarray) (8.0.4)\n", "Requirement already satisfied: click-plugins in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rasterio>=1.2->rioxarray) (1.1.1)\n", "Requirement already satisfied: affine in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rasterio>=1.2->rioxarray) (2.4.0)\n", "Requirement already satisfied: cligj>=0.5 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rasterio>=1.2->rioxarray) (0.7.2)\n", "Requirement already satisfied: setuptools in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from rasterio>=1.2->rioxarray) (58.0.4)\n", "Requirement already satisfied: colorama in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from click>=4.0->rasterio>=1.2->rioxarray) (0.4.4)\n", "Requirement already satisfied: pyparsing>=2.1.6 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from snuggs>=1.4.1->rasterio>=1.2->rioxarray) (3.0.4)\n", "Requirement already satisfied: pandas>=1.1 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from xarray>=0.17->rioxarray) (1.5.3)\n", "Requirement already satisfied: pytz>=2020.1 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from pandas>=1.1->xarray>=0.17->rioxarray) (2021.3)\n", "Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from pandas>=1.1->xarray>=0.17->rioxarray) (2.8.2)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages (from python-dateutil>=2.8.1->pandas>=1.1->xarray>=0.17->rioxarray) (1.16.0)\n", "Installing collected packages: rioxarray\n", "Successfully installed rioxarray-0.14.0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: Ignoring invalid distribution -yqt5-sip (c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages)\n", "WARNING: Ignoring invalid distribution -yqt5-sip (c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages)\n", "WARNING: Ignoring invalid distribution -yqt5-sip (c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages)\n", "WARNING: Ignoring invalid distribution -yqt5-sip (c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages)\n", "WARNING: Ignoring invalid distribution -yqt5-sip (c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages)\n", "WARNING: Ignoring invalid distribution -yqt5-sip (c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages)\n", "WARNING: Ignoring invalid distribution -yqt5-sip (c:\\users\\dboateng\\anaconda3\\envs\\regionmask_env\\lib\\site-packages)\n", "WARNING: You are using pip version 22.0.4; however, version 23.0.1 is available.\n", "You should consider upgrading via the 'C:\\Users\\dboateng\\Anaconda3\\envs\\regionmask_env\\python.exe -m pip install --upgrade pip' command.\n" ] } ], "source": [ "!pip install rioxarray" ] }, { "cell_type": "code", "execution_count": 51, "id": "0f4db48f", "metadata": {}, "outputs": [], "source": [ "# set paths\n", "import regionmask\n", "era_data_path=\"C:/Users/dboateng/Desktop/Datasets/ERA5/monthly_1950_2021/\"\n", "path_shapefile=\"C:/Users/dboateng/Desktop/Datasets/Station/Ghana/Ghana_ShapeFile/gh_wgs16dregions.shp\"\n", "afr_shape = \"C:/Users/dboateng/Desktop/Datasets/Station/Ghana/Africa_shapefile/afr_g2014_2013_0.shp\"\n", "\n", "from1979to2012 = pd.date_range(start=\"1979-01-01\", end=\"2012-12-31\", freq=\"MS\")\n", "# read data\n", "\n", "ghana_shape = gpd.read_file(path_shapefile)" ] }, { "cell_type": "code", "execution_count": 56, "id": "9d9d5040", "metadata": {}, "outputs": [], "source": [ "tp_monthly= xr.open_dataset(os.path.join(era_data_path, \"tp_monthly.nc\"))\n", "tp_monthly = tp_monthly[\"tp\"].sel(time=from1979to2012).mean(dim=\"time\")\n", "tp_monthly = tp_monthly.assign_coords({\"longitude\": (((tp_monthly.longitude + 180) % 360) - 180)})" ] }, { "cell_type": "code", "execution_count": 57, "id": "51db8c57", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'tp' (latitude: 721, longitude: 1440)>\n",
       "array([[0.00069632, 0.00069632, 0.00069632, ..., 0.00069632, 0.00069632,\n",
       "        0.00069632],\n",
       "       [0.00070333, 0.00070337, 0.00070338, ..., 0.00070332, 0.00070333,\n",
       "        0.00070335],\n",
       "       [0.0006945 , 0.00069459, 0.00069464, ..., 0.00069443, 0.00069443,\n",
       "        0.00069447],\n",
       "       ...,\n",
       "       [0.00017392, 0.0001739 , 0.00017387, ..., 0.00017391, 0.00017391,\n",
       "        0.00017392],\n",
       "       [0.00017434, 0.00017429, 0.00017429, ..., 0.00017439, 0.00017439,\n",
       "        0.0001744 ],\n",
       "       [0.00018674, 0.00018674, 0.00018674, ..., 0.00018674, 0.00018674,\n",
       "        0.00018674]], dtype=float32)\n",
       "Coordinates:\n",
       "    expver       float64 1.0\n",
       "  * longitude    (longitude) float32 0.0 0.25 0.5 0.75 ... -1.0 -0.75 -0.5 -0.25\n",
       "  * latitude     (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n",
       "    spatial_ref  int32 0
" ], "text/plain": [ "\n", "array([[0.00069632, 0.00069632, 0.00069632, ..., 0.00069632, 0.00069632,\n", " 0.00069632],\n", " [0.00070333, 0.00070337, 0.00070338, ..., 0.00070332, 0.00070333,\n", " 0.00070335],\n", " [0.0006945 , 0.00069459, 0.00069464, ..., 0.00069443, 0.00069443,\n", " 0.00069447],\n", " ...,\n", " [0.00017392, 0.0001739 , 0.00017387, ..., 0.00017391, 0.00017391,\n", " 0.00017392],\n", " [0.00017434, 0.00017429, 0.00017429, ..., 0.00017439, 0.00017439,\n", " 0.0001744 ],\n", " [0.00018674, 0.00018674, 0.00018674, ..., 0.00018674, 0.00018674,\n", " 0.00018674]], dtype=float32)\n", "Coordinates:\n", " expver float64 ...\n", " * longitude (longitude) float32 0.0 0.25 0.5 0.75 ... -1.0 -0.75 -0.5 -0.25\n", " * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n", " spatial_ref int32 0" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import rioxarray\n", "tp_monthly.rio.set_spatial_dims(x_dim=\"longitude\", y_dim=\"latitude\", inplace=True)\n", "tp_monthly.rio.write_crs(\"epsg:4326\", inplace=True)" ] }, { "cell_type": "code", "execution_count": 58, "id": "3194c491", "metadata": {}, "outputs": [], "source": [ "clipped = tp_monthly.rio.clip(ghana_shape.geometry.apply(mapping), ghana_shape.crs, drop=True)" ] }, { "cell_type": "code", "execution_count": 60, "id": "d9ae6c98", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'tp' (latitude: 22, longitude: 1440)>\n",
       "array([[0.00216022, 0.00199021, 0.00189564, ..., 0.00212618, 0.001947  ,\n",
       "        0.00184436],\n",
       "       [       nan,        nan,        nan, ..., 0.00205568, 0.00212555,\n",
       "        0.00212988],\n",
       "       [0.00244041, 0.00207277, 0.00209045, ..., 0.00240557, 0.00269521,\n",
       "        0.00254029],\n",
       "       ...,\n",
       "       [0.0036659 , 0.00372819, 0.00330154, ..., 0.00386723, 0.00438464,\n",
       "        0.00364647],\n",
       "       [0.00347596, 0.00212743, 0.00262582, ..., 0.0040779 , 0.00491352,\n",
       "        0.00403812],\n",
       "       [0.00188213, 0.00165231, 0.00205362, ..., 0.00494683, 0.00430314,\n",
       "        0.0027265 ]], dtype=float32)\n",
       "Coordinates:\n",
       "  * latitude     (latitude) float64 11.0 10.75 10.5 10.25 ... 6.5 6.25 6.0 5.75\n",
       "  * longitude    (longitude) float64 0.0 0.25 0.5 0.75 ... -1.0 -0.75 -0.5 -0.25\n",
       "    expver       float64 1.0\n",
       "    spatial_ref  int32 0
" ], "text/plain": [ "\n", "array([[0.00216022, 0.00199021, 0.00189564, ..., 0.00212618, 0.001947 ,\n", " 0.00184436],\n", " [ nan, nan, nan, ..., 0.00205568, 0.00212555,\n", " 0.00212988],\n", " [0.00244041, 0.00207277, 0.00209045, ..., 0.00240557, 0.00269521,\n", " 0.00254029],\n", " ...,\n", " [0.0036659 , 0.00372819, 0.00330154, ..., 0.00386723, 0.00438464,\n", " 0.00364647],\n", " [0.00347596, 0.00212743, 0.00262582, ..., 0.0040779 , 0.00491352,\n", " 0.00403812],\n", " [0.00188213, 0.00165231, 0.00205362, ..., 0.00494683, 0.00430314,\n", " 0.0027265 ]], dtype=float32)\n", "Coordinates:\n", " * latitude (latitude) float64 11.0 10.75 10.5 10.25 ... 6.5 6.25 6.0 5.75\n", " * longitude (longitude) float64 0.0 0.25 0.5 0.75 ... -1.0 -0.75 -0.5 -0.25\n", " expver float64 1.0\n", " spatial_ref int32 0" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clipped" ] }, { "cell_type": "code", "execution_count": 62, "id": "d7a378af", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "clipped.sortby(\"longitude\").plot()" ] }, { "cell_type": "code", "execution_count": 5, "id": "d29169b8", "metadata": {}, "outputs": [], "source": [ "africa_shape = gpd.read_file(afr_shape)" ] }, { "cell_type": "code", "execution_count": 6, "id": "d08aa3fe", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ADM0_CODEADM0_NAMECONTINENTISO3ISO2UNIUNDPFAOSTATGAULRIC_ISO3...CRAECOWASIGADIOCSADCCICOSICPACBDMSMOIgeometry
06SudanAfricaSDNSD729.0SUD276.06.0ICPAC-SDN...004000.014.00.0NaNMULTIPOLYGON (((38.58148 18.02542, 38.58203 18...
18AngolaAfricaAGOAO24.0ANG7.08.0BDMS-AGO...000060.00.016.0NaNMULTIPOLYGON (((11.79481 -16.81925, 11.79375 -...
229BeninAfricaBENBJ204.0BEN53.029.0CRA-BEN...1330000.00.00.0NaNMULTIPOLYGON (((1.86343 6.28872, 1.86292 6.288...
335BotswanaAfricaBWABW72.0BOT20.035.0BDMS-BWA...000060.00.016.0NaNPOLYGON ((25.17447 -17.77881, 25.18476 -17.783...
442Burkina FasoAfricaBFABF854.0BKF233.042.0CRA-BFA...1330000.00.00.0NaNPOLYGON ((-0.45567 15.08082, -0.45411 15.07937...
545CameroonAfricaCMRCM120.0CMR32.045.0CICOS-CMR...0000011.00.00.0NaNMULTIPOLYGON (((9.26462 3.94935, 9.26302 3.948...
647Cape VerdeAfricaCPVCV132.0CVI35.047.0CRA-CPV...1330000.00.00.0NaNMULTIPOLYGON (((-24.69949 14.89513, -24.69853 ...
749Central African RepublicAfricaCAFCF140.0CAF37.049.0CICOS-CAF...0000011.00.00.0NaNPOLYGON ((22.52068 11.00757, 22.55266 10.99373...
850ChadAfricaTCDTD148.0CHD39.050.0CRA_CICOS-TCD...13000011.00.00.00.0POLYGON ((24.00000 16.00000, 24.00000 15.71112...
958ComorosAfricaCOMKM174.0COI45.058.0MOI-COM...00050NaNNaNNaN15.0MULTIPOLYGON (((43.71993 -12.40682, 43.72064 -...
1059CongoAfricaCOGCG178.0PRC46.059.0CICOS-COG...0000011.00.00.0NaNPOLYGON ((17.60632 3.64125, 17.65328 3.63904, ...
1166Côte d'IvoireAfricaCIVCI384.0IVC107.066.0CRA-CIV...1330000.00.00.0NaNMULTIPOLYGON (((-6.61524 4.74392, -6.61529 4.7...
1268Democratic Republic of the CongoAfricaCODCD180.0ZAI250.068.0BDMS-COD...0000611.00.016.00.0MULTIPOLYGON (((12.44326 -6.05846, 12.44326 -6...
1370DjiboutiAfricaDJIDJ262.0DJI72.070.0ICPAC-DJI...004000.014.00.0NaNMULTIPOLYGON (((42.63588 11.47977, 42.63588 11...
1474South SudanAfricaSSDSS728.0NaN277.074.0ICPAC-SSD...004000.014.00.0NaNPOLYGON ((33.02315 12.22673, 33.25586 12.21435...
1576Equatorial GuineaAfricaGNQGQ226.0EQG61.076.0CICOS-GNQ...0000011.00.00.0NaNMULTIPOLYGON (((5.63372 -1.40429, 5.63449 -1.4...
1677EritreaAfricaERIER232.0ERI178.077.0ICPAC-ERI...004000.014.00.0NaNMULTIPOLYGON (((43.15610 12.71929, 43.15624 12...
1779EthiopiaAfricaETHET231.0ETH238.079.0ICPAC-ETH...004000.014.00.0NaNPOLYGON ((37.94868 14.83911, 37.95420 14.83687...
1889GabonAfricaGABGA266.0GAB74.089.0CICOS-GAB...0000011.00.00.0NaNMULTIPOLYGON (((9.54272 -2.06359, 9.54272 -2.0...
1990GambiaAfricaGMBGM270.0GAM75.090.0CRA-GMB...1330000.00.00.0NaNMULTIPOLYGON (((-16.82265 13.38340, -16.82221 ...
2094GhanaAfricaGHAGH288.0GHA81.094.0CRA-GHA...1330000.00.00.0NaNMULTIPOLYGON (((-1.94577 4.79251, -1.94592 4.7...
21105Guinea-BissauAfricaGNBGW624.0GBS175.0105.0CRA-GNB...1330000.00.00.0NaNMULTIPOLYGON (((-15.72265 10.85933, -15.72317 ...
22106GuineaAfricaGINGN324.0GUI90.0106.0CRA-GIN...1330000.00.00.0NaNMULTIPOLYGON (((-13.27189 9.29412, -13.27383 9...
23133KenyaAfricaKENKE404.0KEN114.0133.0ICPAC-KEN...004000.014.00.015.0MULTIPOLYGON (((39.37656 -4.72125, 39.37412 -4...
24142LesothoAfricaLSOLS426.0LES122.0142.0BDMS-LSO...000060.00.016.0NaNPOLYGON ((28.69016 -28.58986, 28.69980 -28.600...
25144LiberiaAfricaLBRLR430.0LIR123.0144.0CRA-LBR...1330000.00.00.0NaNMULTIPOLYGON (((-7.82210 4.42817, -7.82210 4.4...
26150MadagascarAfricaMDGMG450.0MAG129.0150.0BDMS_MOI-MDG...000560.00.016.015.0MULTIPOLYGON (((44.22955 -25.22101, 44.22670 -...
27152MalawiAfricaMWIMW454.0MLW130.0152.0BDMS-MWI...000060.00.016.0NaNMULTIPOLYGON (((34.76880 -12.09417, 34.72768 -...
28155MaliAfricaMLIML466.0MLI133.0155.0CRA-MLI...1330000.00.00.0NaNPOLYGON ((-5.00000 24.99792, -5.00000 24.99589...
29159MauritaniaAfricaMRTMR478.0MAU136.0159.0CRA-MRT...1300000.00.00.0NaNMULTIPOLYGON (((-16.50235 16.05727, -16.50409 ...
30160MauritiusAfricaMUSMU480.0MAR137.0160.0BDMS_MOI-MUS...000560.00.016.015.0MULTIPOLYGON (((57.33786 -20.47313, 57.33677 -...
31170MozambiqueAfricaMOZMZ508.0MOZ144.0170.0BDMS-MOZ...000060.00.016.015.0MULTIPOLYGON (((32.99153 -25.97012, 32.99189 -...
32172NamibiaAfricaNAMNA516.0NAM147.0172.0BDMS-NAM...000060.00.016.0NaNMULTIPOLYGON (((15.52104 -27.66624, 15.52115 -...
33181NigerAfricaNERNE562.0NER158.0181.0CRA-NER...1330000.00.00.0NaNPOLYGON ((12.12185 23.48946, 12.15302 23.48107...
34182NigeriaAfricaNGANG566.0NIR159.0182.0CRA-NGA...1330000.00.00.0NaNMULTIPOLYGON (((5.95832 4.33796, 5.95832 4.337...
35217SenegalAfricaSENSN686.0SEN195.0217.0CRA-SEN...1330000.00.00.0NaNMULTIPOLYGON (((-16.78778 12.66777, -16.78882 ...
36220SeychellesAfricaSYCSC690.0SEY196.0220.0BDMS_MOI-SYC...000560.00.016.015.0MULTIPOLYGON (((51.12800 -10.22187, 51.12868 -...
37221Sierra LeoneAfricaSLESL694.0SIL197.0221.0CRA-SLE...1330000.00.00.0NaNMULTIPOLYGON (((-11.58407 6.97383, -11.58407 6...
38226SomaliaAfricaSOMSO706.0SOM201.0226.0ICPAC-SOM...004000.014.00.0NaNMULTIPOLYGON (((41.57762 -1.66024, 41.57721 -1...
39227South AfricaAfricaZAFZA710.0SAF202.0227.0BDMS-ZAF...000060.00.016.0NaNMULTIPOLYGON (((37.84717 -46.85358, 37.84717 -...
40235SwazilandAfricaSWZSZ748.0SWA209.0235.0BDMS-SWZ...000060.00.016.0NaNPOLYGON ((31.42451 -25.71965, 31.47514 -25.751...
41243TogoAfricaTGOTG768.0TOG217.0243.0CRA-TGO...1330000.00.00.0NaNPOLYGON ((-0.00000 11.11002, 0.03523 11.10232,...
42253UgandaAfricaUGAUG800.0UGA226.0253.0ICPAC-UGA...004000.014.00.0NaNPOLYGON ((34.09062 3.87878, 34.09114 3.87310, ...
43257United Republic of TanzaniaAfricaTZATZ834.0URT215.0257.0BDMS-TZA...000060.00.016.015.0MULTIPOLYGON (((40.21717 -10.29314, 40.21717 -...
44270ZambiaAfricaZMBZM894.0ZAM251.0270.0BDMS-ZMB...000060.00.016.0NaNPOLYGON ((30.78884 -8.25962, 30.79738 -8.28310...
45271ZimbabweAfricaZWEZW716.0ZIM181.0271.0BDMS-ZWE...000060.00.016.0NaNPOLYGON ((29.90322 -15.62243, 29.90864 -15.623...
464AlgeriaAfricaDZADZ12.0ALG4.04.0OTHER-DZA...00000NaNNaNNaNNaNMULTIPOLYGON (((-1.91302 35.08822, -1.91302 35...
4743BurundiAfricaBDIBI108.0BDI29.043.0ICPAC-BDI...000000.014.00.0NaNPOLYGON ((30.43090 -2.32831, 30.43728 -2.32935...
48102AbyeiAfricaNaNNaN0.0NaN0.00.0NaN...00400NaNNaNNaNNaNPOLYGON ((28.97701 9.64116, 28.97701 9.64116, ...
49145LibyaAfricaLBYLY434.0LIB124.0145.0OTHER-LBY...00000NaNNaNNaNNaNMULTIPOLYGON (((19.12258 30.29128, 19.12199 30...
50169MoroccoAfricaMARMA504.0MOR143.0169.0OTHER-MAR...00000NaNNaNNaNNaNMULTIPOLYGON (((-9.79329 31.49641, -9.79350 31...
51205RwandaAfricaRWARW646.0RWA184.0205.0ICPAC-RWA...000000.014.00.0NaNPOLYGON ((30.46679 -1.06294, 30.46446 -1.06678...
52214Sao Tome and PrincipeAfricaSTPST678.0STP193.0214.0OTHER-STP...00000NaNNaNNaNNaNMULTIPOLYGON (((6.52215 -0.01493, 6.52073 -0.0...
53248TunisiaAfricaTUNTN788.0TUN222.0248.0OTHER-TUN...00000NaNNaNNaNNaNMULTIPOLYGON (((11.41957 33.17910, 11.41803 33...
54268Western SaharaAfricaNaNNaN0.0NaN0.00.0NaN...00000NaNNaNNaNNaNMULTIPOLYGON (((-17.01258 21.40293, -17.01285 ...
5540760Hala'ib triangleAfricaNaNNaN0.0NaN0.00.0NaN...00000NaNNaNNaNNaNMULTIPOLYGON (((36.66130 22.24455, 36.66102 22...
5640762Ma'tan al-SarraAfricaNaNNaN0.0NaN0.00.0NaN...00400NaNNaNNaNNaNPOLYGON ((34.00521 21.77233, 33.95924 21.76744...
5740765EgyptAfricaEGYEG818.0EGY59.040765.0OTHER-EGY...00000NaNNaNNaNNaNMULTIPOLYGON (((36.24782 23.56470, 36.24783 23...
5861013Ilemi triangleAfricaNaNNaN0.0NaN0.00.0NaN...00400NaNNaNNaNNaNPOLYGON ((35.32822 4.97037, 35.31111 4.91972, ...
\n", "

59 rows × 24 columns

\n", "
" ], "text/plain": [ " ADM0_CODE ADM0_NAME CONTINENT ISO3 ISO2 UNI \\\n", "0 6 Sudan Africa SDN SD 729.0 \n", "1 8 Angola Africa AGO AO 24.0 \n", "2 29 Benin Africa BEN BJ 204.0 \n", "3 35 Botswana Africa BWA BW 72.0 \n", "4 42 Burkina Faso Africa BFA BF 854.0 \n", "5 45 Cameroon Africa CMR CM 120.0 \n", "6 47 Cape Verde Africa CPV CV 132.0 \n", "7 49 Central African Republic Africa CAF CF 140.0 \n", "8 50 Chad Africa TCD TD 148.0 \n", "9 58 Comoros Africa COM KM 174.0 \n", "10 59 Congo Africa COG CG 178.0 \n", "11 66 Côte d'Ivoire Africa CIV CI 384.0 \n", "12 68 Democratic Republic of the Congo Africa COD CD 180.0 \n", "13 70 Djibouti Africa DJI DJ 262.0 \n", "14 74 South Sudan Africa SSD SS 728.0 \n", "15 76 Equatorial Guinea Africa GNQ GQ 226.0 \n", "16 77 Eritrea Africa ERI ER 232.0 \n", "17 79 Ethiopia Africa ETH ET 231.0 \n", "18 89 Gabon Africa GAB GA 266.0 \n", "19 90 Gambia Africa GMB GM 270.0 \n", "20 94 Ghana Africa GHA GH 288.0 \n", "21 105 Guinea-Bissau Africa GNB GW 624.0 \n", "22 106 Guinea Africa GIN GN 324.0 \n", "23 133 Kenya Africa KEN KE 404.0 \n", "24 142 Lesotho Africa LSO LS 426.0 \n", "25 144 Liberia Africa LBR LR 430.0 \n", "26 150 Madagascar Africa MDG MG 450.0 \n", "27 152 Malawi Africa MWI MW 454.0 \n", "28 155 Mali Africa MLI ML 466.0 \n", "29 159 Mauritania Africa MRT MR 478.0 \n", "30 160 Mauritius Africa MUS MU 480.0 \n", "31 170 Mozambique Africa MOZ MZ 508.0 \n", "32 172 Namibia Africa NAM NA 516.0 \n", "33 181 Niger Africa NER NE 562.0 \n", "34 182 Nigeria Africa NGA NG 566.0 \n", "35 217 Senegal Africa SEN SN 686.0 \n", "36 220 Seychelles Africa SYC SC 690.0 \n", "37 221 Sierra Leone Africa SLE SL 694.0 \n", "38 226 Somalia Africa SOM SO 706.0 \n", "39 227 South Africa Africa ZAF ZA 710.0 \n", "40 235 Swaziland Africa SWZ SZ 748.0 \n", "41 243 Togo Africa TGO TG 768.0 \n", "42 253 Uganda Africa UGA UG 800.0 \n", "43 257 United Republic of Tanzania Africa TZA TZ 834.0 \n", "44 270 Zambia Africa ZMB ZM 894.0 \n", "45 271 Zimbabwe Africa ZWE ZW 716.0 \n", "46 4 Algeria Africa DZA DZ 12.0 \n", "47 43 Burundi Africa BDI BI 108.0 \n", "48 102 Abyei Africa NaN NaN 0.0 \n", "49 145 Libya Africa LBY LY 434.0 \n", "50 169 Morocco Africa MAR MA 504.0 \n", "51 205 Rwanda Africa RWA RW 646.0 \n", "52 214 Sao Tome and Principe Africa STP ST 678.0 \n", "53 248 Tunisia Africa TUN TN 788.0 \n", "54 268 Western Sahara Africa NaN NaN 0.0 \n", "55 40760 Hala'ib triangle Africa NaN NaN 0.0 \n", "56 40762 Ma'tan al-Sarra Africa NaN NaN 0.0 \n", "57 40765 Egypt Africa EGY EG 818.0 \n", "58 61013 Ilemi triangle Africa NaN NaN 0.0 \n", "\n", " UNDP FAOSTAT GAUL RIC_ISO3 ... CRA ECOWAS IGAD IOC SADC \\\n", "0 SUD 276.0 6.0 ICPAC-SDN ... 0 0 4 0 0 \n", "1 ANG 7.0 8.0 BDMS-AGO ... 0 0 0 0 6 \n", "2 BEN 53.0 29.0 CRA-BEN ... 13 3 0 0 0 \n", "3 BOT 20.0 35.0 BDMS-BWA ... 0 0 0 0 6 \n", "4 BKF 233.0 42.0 CRA-BFA ... 13 3 0 0 0 \n", "5 CMR 32.0 45.0 CICOS-CMR ... 0 0 0 0 0 \n", "6 CVI 35.0 47.0 CRA-CPV ... 13 3 0 0 0 \n", "7 CAF 37.0 49.0 CICOS-CAF ... 0 0 0 0 0 \n", "8 CHD 39.0 50.0 CRA_CICOS-TCD ... 13 0 0 0 0 \n", "9 COI 45.0 58.0 MOI-COM ... 0 0 0 5 0 \n", "10 PRC 46.0 59.0 CICOS-COG ... 0 0 0 0 0 \n", "11 IVC 107.0 66.0 CRA-CIV ... 13 3 0 0 0 \n", "12 ZAI 250.0 68.0 BDMS-COD ... 0 0 0 0 6 \n", "13 DJI 72.0 70.0 ICPAC-DJI ... 0 0 4 0 0 \n", "14 NaN 277.0 74.0 ICPAC-SSD ... 0 0 4 0 0 \n", "15 EQG 61.0 76.0 CICOS-GNQ ... 0 0 0 0 0 \n", "16 ERI 178.0 77.0 ICPAC-ERI ... 0 0 4 0 0 \n", "17 ETH 238.0 79.0 ICPAC-ETH ... 0 0 4 0 0 \n", "18 GAB 74.0 89.0 CICOS-GAB ... 0 0 0 0 0 \n", "19 GAM 75.0 90.0 CRA-GMB ... 13 3 0 0 0 \n", "20 GHA 81.0 94.0 CRA-GHA ... 13 3 0 0 0 \n", "21 GBS 175.0 105.0 CRA-GNB ... 13 3 0 0 0 \n", "22 GUI 90.0 106.0 CRA-GIN ... 13 3 0 0 0 \n", "23 KEN 114.0 133.0 ICPAC-KEN ... 0 0 4 0 0 \n", "24 LES 122.0 142.0 BDMS-LSO ... 0 0 0 0 6 \n", "25 LIR 123.0 144.0 CRA-LBR ... 13 3 0 0 0 \n", "26 MAG 129.0 150.0 BDMS_MOI-MDG ... 0 0 0 5 6 \n", "27 MLW 130.0 152.0 BDMS-MWI ... 0 0 0 0 6 \n", "28 MLI 133.0 155.0 CRA-MLI ... 13 3 0 0 0 \n", "29 MAU 136.0 159.0 CRA-MRT ... 13 0 0 0 0 \n", "30 MAR 137.0 160.0 BDMS_MOI-MUS ... 0 0 0 5 6 \n", "31 MOZ 144.0 170.0 BDMS-MOZ ... 0 0 0 0 6 \n", "32 NAM 147.0 172.0 BDMS-NAM ... 0 0 0 0 6 \n", "33 NER 158.0 181.0 CRA-NER ... 13 3 0 0 0 \n", "34 NIR 159.0 182.0 CRA-NGA ... 13 3 0 0 0 \n", "35 SEN 195.0 217.0 CRA-SEN ... 13 3 0 0 0 \n", "36 SEY 196.0 220.0 BDMS_MOI-SYC ... 0 0 0 5 6 \n", "37 SIL 197.0 221.0 CRA-SLE ... 13 3 0 0 0 \n", "38 SOM 201.0 226.0 ICPAC-SOM ... 0 0 4 0 0 \n", "39 SAF 202.0 227.0 BDMS-ZAF ... 0 0 0 0 6 \n", "40 SWA 209.0 235.0 BDMS-SWZ ... 0 0 0 0 6 \n", "41 TOG 217.0 243.0 CRA-TGO ... 13 3 0 0 0 \n", "42 UGA 226.0 253.0 ICPAC-UGA ... 0 0 4 0 0 \n", "43 URT 215.0 257.0 BDMS-TZA ... 0 0 0 0 6 \n", "44 ZAM 251.0 270.0 BDMS-ZMB ... 0 0 0 0 6 \n", "45 ZIM 181.0 271.0 BDMS-ZWE ... 0 0 0 0 6 \n", "46 ALG 4.0 4.0 OTHER-DZA ... 0 0 0 0 0 \n", "47 BDI 29.0 43.0 ICPAC-BDI ... 0 0 0 0 0 \n", "48 NaN 0.0 0.0 NaN ... 0 0 4 0 0 \n", "49 LIB 124.0 145.0 OTHER-LBY ... 0 0 0 0 0 \n", "50 MOR 143.0 169.0 OTHER-MAR ... 0 0 0 0 0 \n", "51 RWA 184.0 205.0 ICPAC-RWA ... 0 0 0 0 0 \n", "52 STP 193.0 214.0 OTHER-STP ... 0 0 0 0 0 \n", "53 TUN 222.0 248.0 OTHER-TUN ... 0 0 0 0 0 \n", "54 NaN 0.0 0.0 NaN ... 0 0 0 0 0 \n", "55 NaN 0.0 0.0 NaN ... 0 0 0 0 0 \n", "56 NaN 0.0 0.0 NaN ... 0 0 4 0 0 \n", "57 EGY 59.0 40765.0 OTHER-EGY ... 0 0 0 0 0 \n", "58 NaN 0.0 0.0 NaN ... 0 0 4 0 0 \n", "\n", " CICOS ICPAC BDMS MOI \\\n", "0 0.0 14.0 0.0 NaN \n", "1 0.0 0.0 16.0 NaN \n", "2 0.0 0.0 0.0 NaN \n", "3 0.0 0.0 16.0 NaN \n", "4 0.0 0.0 0.0 NaN \n", "5 11.0 0.0 0.0 NaN \n", "6 0.0 0.0 0.0 NaN \n", "7 11.0 0.0 0.0 NaN \n", "8 11.0 0.0 0.0 0.0 \n", "9 NaN NaN NaN 15.0 \n", "10 11.0 0.0 0.0 NaN \n", "11 0.0 0.0 0.0 NaN \n", "12 11.0 0.0 16.0 0.0 \n", "13 0.0 14.0 0.0 NaN \n", "14 0.0 14.0 0.0 NaN \n", "15 11.0 0.0 0.0 NaN \n", "16 0.0 14.0 0.0 NaN \n", "17 0.0 14.0 0.0 NaN \n", "18 11.0 0.0 0.0 NaN \n", "19 0.0 0.0 0.0 NaN \n", "20 0.0 0.0 0.0 NaN \n", "21 0.0 0.0 0.0 NaN \n", "22 0.0 0.0 0.0 NaN \n", "23 0.0 14.0 0.0 15.0 \n", "24 0.0 0.0 16.0 NaN \n", "25 0.0 0.0 0.0 NaN \n", "26 0.0 0.0 16.0 15.0 \n", "27 0.0 0.0 16.0 NaN \n", "28 0.0 0.0 0.0 NaN \n", "29 0.0 0.0 0.0 NaN \n", "30 0.0 0.0 16.0 15.0 \n", "31 0.0 0.0 16.0 15.0 \n", "32 0.0 0.0 16.0 NaN \n", "33 0.0 0.0 0.0 NaN \n", "34 0.0 0.0 0.0 NaN \n", "35 0.0 0.0 0.0 NaN \n", "36 0.0 0.0 16.0 15.0 \n", "37 0.0 0.0 0.0 NaN \n", "38 0.0 14.0 0.0 NaN \n", "39 0.0 0.0 16.0 NaN \n", "40 0.0 0.0 16.0 NaN \n", "41 0.0 0.0 0.0 NaN \n", "42 0.0 14.0 0.0 NaN \n", "43 0.0 0.0 16.0 15.0 \n", "44 0.0 0.0 16.0 NaN \n", "45 0.0 0.0 16.0 NaN \n", "46 NaN NaN NaN NaN \n", "47 0.0 14.0 0.0 NaN \n", "48 NaN NaN NaN NaN \n", "49 NaN NaN NaN NaN \n", "50 NaN NaN NaN NaN \n", "51 0.0 14.0 0.0 NaN \n", "52 NaN NaN NaN NaN \n", "53 NaN NaN NaN NaN \n", "54 NaN NaN NaN NaN \n", "55 NaN NaN NaN NaN \n", "56 NaN NaN NaN NaN \n", "57 NaN NaN NaN NaN \n", "58 NaN NaN NaN NaN \n", "\n", " geometry \n", "0 MULTIPOLYGON (((38.58148 18.02542, 38.58203 18... \n", "1 MULTIPOLYGON (((11.79481 -16.81925, 11.79375 -... \n", "2 MULTIPOLYGON (((1.86343 6.28872, 1.86292 6.288... \n", "3 POLYGON ((25.17447 -17.77881, 25.18476 -17.783... \n", "4 POLYGON ((-0.45567 15.08082, -0.45411 15.07937... \n", "5 MULTIPOLYGON (((9.26462 3.94935, 9.26302 3.948... \n", "6 MULTIPOLYGON (((-24.69949 14.89513, -24.69853 ... \n", "7 POLYGON ((22.52068 11.00757, 22.55266 10.99373... \n", "8 POLYGON ((24.00000 16.00000, 24.00000 15.71112... \n", "9 MULTIPOLYGON (((43.71993 -12.40682, 43.72064 -... \n", "10 POLYGON ((17.60632 3.64125, 17.65328 3.63904, ... \n", "11 MULTIPOLYGON (((-6.61524 4.74392, -6.61529 4.7... \n", "12 MULTIPOLYGON (((12.44326 -6.05846, 12.44326 -6... \n", "13 MULTIPOLYGON (((42.63588 11.47977, 42.63588 11... \n", "14 POLYGON ((33.02315 12.22673, 33.25586 12.21435... \n", "15 MULTIPOLYGON (((5.63372 -1.40429, 5.63449 -1.4... \n", "16 MULTIPOLYGON (((43.15610 12.71929, 43.15624 12... \n", "17 POLYGON ((37.94868 14.83911, 37.95420 14.83687... \n", "18 MULTIPOLYGON (((9.54272 -2.06359, 9.54272 -2.0... \n", "19 MULTIPOLYGON (((-16.82265 13.38340, -16.82221 ... \n", "20 MULTIPOLYGON (((-1.94577 4.79251, -1.94592 4.7... \n", "21 MULTIPOLYGON (((-15.72265 10.85933, -15.72317 ... \n", "22 MULTIPOLYGON (((-13.27189 9.29412, -13.27383 9... \n", "23 MULTIPOLYGON (((39.37656 -4.72125, 39.37412 -4... \n", "24 POLYGON ((28.69016 -28.58986, 28.69980 -28.600... \n", "25 MULTIPOLYGON (((-7.82210 4.42817, -7.82210 4.4... \n", "26 MULTIPOLYGON (((44.22955 -25.22101, 44.22670 -... \n", "27 MULTIPOLYGON (((34.76880 -12.09417, 34.72768 -... \n", "28 POLYGON ((-5.00000 24.99792, -5.00000 24.99589... \n", "29 MULTIPOLYGON (((-16.50235 16.05727, -16.50409 ... \n", "30 MULTIPOLYGON (((57.33786 -20.47313, 57.33677 -... \n", "31 MULTIPOLYGON (((32.99153 -25.97012, 32.99189 -... \n", "32 MULTIPOLYGON (((15.52104 -27.66624, 15.52115 -... \n", "33 POLYGON ((12.12185 23.48946, 12.15302 23.48107... \n", "34 MULTIPOLYGON (((5.95832 4.33796, 5.95832 4.337... \n", "35 MULTIPOLYGON (((-16.78778 12.66777, -16.78882 ... \n", "36 MULTIPOLYGON (((51.12800 -10.22187, 51.12868 -... \n", "37 MULTIPOLYGON (((-11.58407 6.97383, -11.58407 6... \n", "38 MULTIPOLYGON (((41.57762 -1.66024, 41.57721 -1... \n", "39 MULTIPOLYGON (((37.84717 -46.85358, 37.84717 -... \n", "40 POLYGON ((31.42451 -25.71965, 31.47514 -25.751... \n", "41 POLYGON ((-0.00000 11.11002, 0.03523 11.10232,... \n", "42 POLYGON ((34.09062 3.87878, 34.09114 3.87310, ... \n", "43 MULTIPOLYGON (((40.21717 -10.29314, 40.21717 -... \n", "44 POLYGON ((30.78884 -8.25962, 30.79738 -8.28310... \n", "45 POLYGON ((29.90322 -15.62243, 29.90864 -15.623... \n", "46 MULTIPOLYGON (((-1.91302 35.08822, -1.91302 35... \n", "47 POLYGON ((30.43090 -2.32831, 30.43728 -2.32935... \n", "48 POLYGON ((28.97701 9.64116, 28.97701 9.64116, ... \n", "49 MULTIPOLYGON (((19.12258 30.29128, 19.12199 30... \n", "50 MULTIPOLYGON (((-9.79329 31.49641, -9.79350 31... \n", "51 POLYGON ((30.46679 -1.06294, 30.46446 -1.06678... \n", "52 MULTIPOLYGON (((6.52215 -0.01493, 6.52073 -0.0... \n", "53 MULTIPOLYGON (((11.41957 33.17910, 11.41803 33... \n", "54 MULTIPOLYGON (((-17.01258 21.40293, -17.01285 ... \n", "55 MULTIPOLYGON (((36.66130 22.24455, 36.66102 22... \n", "56 POLYGON ((34.00521 21.77233, 33.95924 21.76744... \n", "57 MULTIPOLYGON (((36.24782 23.56470, 36.24783 23... \n", "58 POLYGON ((35.32822 4.97037, 35.31111 4.91972, ... \n", "\n", "[59 rows x 24 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "africa_shape" ] }, { "cell_type": "code", "execution_count": 22, "id": "b6e9004f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 WESTERN NORTH\n", "1 WESTERN\n", "2 VOLTA\n", "3 UPPER WEST\n", "4 UPPER EAST\n", "5 SAVANNAH\n", "6 OTI\n", "7 NORTHERN\n", "8 NORTH EAST\n", "9 GREATER ACCRA\n", "10 EASTERN\n", "11 CENTRAL\n", "12 BONO EAST\n", "13 BONO\n", "14 ASHANTI\n", "15 AHAFO\n", "Name: REGION, dtype: object" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "regions =ghana_shape[\"REGION\"]\n", "regions" ] }, { "cell_type": "code", "execution_count": 15, "id": "730b1b65", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'AHAFO',\n", " 'ASHANTI',\n", " 'BONO',\n", " 'BONO EAST',\n", " 'CENTRAL',\n", " 'EASTERN',\n", " 'GREATER ACCRA',\n", " 'NORTH EAST',\n", " 'NORTHERN',\n", " 'OTI',\n", " 'SAVANNAH',\n", " 'UPPER EAST',\n", " 'UPPER WEST',\n", " 'VOLTA',\n", " 'WESTERN',\n", " 'WESTERN NORTH'}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "my_list" ] }, { "cell_type": "code", "execution_count": 23, "id": "4bd12ab3", "metadata": {}, "outputs": [], "source": [ "countries_mask_poly = regionmask.Regions(outlines=ghana_shape.geometry)" ] }, { "cell_type": "code", "execution_count": 24, "id": "93add024", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Name: unnamed\n", "overlap: False\n", "\n", "Regions:\n", " 0 r0 Region0\n", " 1 r1 Region1\n", " 2 r2 Region2\n", " 3 r3 Region3\n", " 4 r4 Region4\n", ".. .. ...\n", "11 r11 Region11\n", "12 r12 Region12\n", "13 r13 Region13\n", "14 r14 Region14\n", "15 r15 Region15\n", "\n", "[16 regions]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "countries_mask_poly" ] }, { "cell_type": "code", "execution_count": 66, "id": "8424ad3c", "metadata": {}, "outputs": [], "source": [ "tp_monthly= xr.open_dataset(os.path.join(era_data_path, \"tp_monthly.nc\"))\n", "tp_monthly = tp_monthly[\"tp\"].sel(time=from1979to2012).mean(dim=\"time\")" ] }, { "cell_type": "code", "execution_count": 67, "id": "f47618ec", "metadata": {}, "outputs": [], "source": [ "mask = countries_mask_poly.mask(tp_monthly, lat_name=\"latitude\", lon_name=\"longitude\", wrap_lon=True)" ] }, { "cell_type": "code", "execution_count": 68, "id": "389cf455", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'mask' (latitude: 721, longitude: 1440)>\n",
       "array([[nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       ...,\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan]])\n",
       "Coordinates:\n",
       "    expver     float64 1.0\n",
       "  * latitude   (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n",
       "  * longitude  (longitude) float32 0.0 0.25 0.5 0.75 ... 359.0 359.2 359.5 359.8
" ], "text/plain": [ "\n", "array([[nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " ...,\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan]])\n", "Coordinates:\n", " expver float64 1.0\n", " * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n", " * longitude (longitude) float32 0.0 0.25 0.5 0.75 ... 359.0 359.2 359.5 359.8" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mask" ] }, { "cell_type": "code", "execution_count": 69, "id": "cf4b348d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mask.plot()" ] }, { "cell_type": "code", "execution_count": 76, "id": "73f66365", "metadata": {}, "outputs": [], "source": [ "droped = mask.dropna(dim=(\"latitude\"), how=\"any\")" ] }, { "cell_type": "code", "execution_count": 77, "id": "e67352de", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'mask' (latitude: 0, longitude: 1440)>\n",
       "array([], shape=(0, 1440), dtype=float64)\n",
       "Coordinates:\n",
       "    expver     float64 1.0\n",
       "  * latitude   (latitude) float32 \n",
       "  * longitude  (longitude) float32 0.0 0.25 0.5 0.75 ... 359.0 359.2 359.5 359.8
" ], "text/plain": [ "\n", "array([], shape=(0, 1440), dtype=float64)\n", "Coordinates:\n", " expver float64 1.0\n", " * latitude (latitude) float32 \n", " * longitude (longitude) float32 0.0 0.25 0.5 0.75 ... 359.0 359.2 359.5 359.8" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "droped" ] }, { "cell_type": "code", "execution_count": 41, "id": "a6feaaaf", "metadata": {}, "outputs": [], "source": [ "countries = list(africa_shape[\"ISO3\"])\n", "my_list = set(list(countries))\n", "indexes = [countries.index(x) for x in my_list]\n", "\n", "countries_mask_poly = regionmask.Regions(name=\"ADM0_NAME\", numbers=indexes, \n", " names=africa_shape.ADM0_NAME[indexes],\n", " outlines=list(africa_shape.geometry.values[i] for i in range(0, africa_shape.shape[0])),\n", " abbrevs=africa_shape[\"ADM0_CODE\"][indexes])" ] }, { "cell_type": "code", "execution_count": 42, "id": "de69f585", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Name: ADM0_NAME\n", "overlap: False\n", "\n", "Regions:\n", " 0 6 Sudan\n", " 1 8 Angola\n", " 2 29 Benin\n", " 3 35 Botswana\n", " 4 42 Burkina Faso\n", ".. ... ...\n", "50 169 Morocco\n", "51 205 Rwanda\n", "52 214 Sao Tome and Principe\n", "53 248 Tunisia\n", "57 40765 Egypt\n", "\n", "[55 regions]" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "countries_mask_poly" ] }, { "cell_type": "code", "execution_count": 45, "id": "6cf28c77", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "countries_mask_poly[20]" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }