You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2024/03/14 20:20:46 UTC

(superset) branch master updated: feat: Add Turkey's regions to country map visualization (#27455)

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 6b529a4b68 feat: Add Turkey's regions to country map visualization (#27455)
6b529a4b68 is described below

commit 6b529a4b68f26ec0f38926d78057473de3ed2648
Author: İSKENDER ÜLGEN OĞUL <is...@users.noreply.github.com>
AuthorDate: Thu Mar 14 23:20:39 2024 +0300

    feat: Add Turkey's regions to country map visualization (#27455)
---
 .../scripts/Country Map GeoJSON Generator.ipynb    | 1415 +++-----------------
 .../src/countries.ts                               |    5 +
 .../src/countries/turkey_regions.geojson           |   18 +
 3 files changed, 210 insertions(+), 1228 deletions(-)

diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb b/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb
index 6b8052274e..7006cb441a 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb	
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb	
@@ -42,7 +42,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": null,
    "metadata": {
     "colab": {
      "base_uri": "https://localhost:8080/"
@@ -50,18 +50,7 @@
     "id": "VjGrqW4Kt1LS",
     "outputId": "2e2accda-5ee4-4270-872e-ecb78d0d02a2"
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Skip ne_10m_admin_0_countries.zip because it already exists\n",
-      "Skip ne_10m_admin_1_states_provinces.zip because it already exists\n",
-      "Skip ne_50m_admin_1_states_provinces.zip because it already exists\n",
-      "Done.                                                               \n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "import os\n",
     "import requests\n",
@@ -107,7 +96,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": null,
    "metadata": {
     "colab": {
      "base_uri": "https://localhost:8080/"
@@ -115,15 +104,7 @@
     "id": "EL0e9DEVt1LT",
     "outputId": "16cd6450-d4a3-457a-b205-9797bbce33fc"
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "GeoJSON file for India downloaded and loaded successfully.\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "import os\n",
     "import geopandas as gpd\n",
@@ -147,56 +128,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": null,
    "metadata": {
     "id": "_PKEg8s1t1LT",
     "outputId": "9937eacd-7a05-491f-f356-790ad75a819f"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "Index(['featurecla', 'scalerank', 'adm1_code', 'diss_me', 'iso_3166_2',\n",
-       "       'wikipedia', 'iso_a2', 'adm0_sr', 'name', 'name_alt',\n",
-       "       ...\n",
-       "       'FCLASS_ID', 'FCLASS_PL', 'FCLASS_GR', 'FCLASS_IT', 'FCLASS_NL',\n",
-       "       'FCLASS_SE', 'FCLASS_BD', 'FCLASS_UA', 'FCLASS_TLC', 'geometry'],\n",
-       "      dtype='object', length=122)"
-      ]
-     },
-     "execution_count": 3,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "df_50m.columns"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": null,
    "metadata": {
     "id": "w8OD4nq2t1LT",
     "outputId": "b7164440-d6e0-4074-b357-47fd8a8d2884"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "Index(['featurecla', 'scalerank', 'labelrank', 'sovereignt', 'sov_a3',\n",
-       "       'adm0_dif', 'level', 'type', 'tlc', 'admin',\n",
-       "       ...\n",
-       "       'fclass_tr', 'fclass_id', 'fclass_pl', 'fclass_gr', 'fclass_it',\n",
-       "       'fclass_nl', 'fclass_se', 'fclass_bd', 'fclass_ua', 'geometry'],\n",
-       "      dtype='object', length=169)"
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "df_admin0_10m.columns = df_admin0_10m.columns.str.lower()\n",
     "df_admin0_10m.columns"
@@ -204,378 +153,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": null,
    "metadata": {
     "id": "DUrz04nYt1LT",
     "outputId": "18d7cdb0-8ab6-4238-e50c-925c5dc117b0"
    },
-   "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>featurecla</th>\n",
-       "      <th>scalerank</th>\n",
-       "      <th>adm1_code</th>\n",
-       "      <th>diss_me</th>\n",
-       "      <th>iso_3166_2</th>\n",
-       "      <th>wikipedia</th>\n",
-       "      <th>iso_a2</th>\n",
-       "      <th>adm0_sr</th>\n",
-       "      <th>name</th>\n",
-       "      <th>name_alt</th>\n",
-       "      <th>...</th>\n",
-       "      <th>FCLASS_ID</th>\n",
-       "      <th>FCLASS_PL</th>\n",
-       "      <th>FCLASS_GR</th>\n",
-       "      <th>FCLASS_IT</th>\n",
-       "      <th>FCLASS_NL</th>\n",
-       "      <th>FCLASS_SE</th>\n",
-       "      <th>FCLASS_BD</th>\n",
-       "      <th>FCLASS_UA</th>\n",
-       "      <th>FCLASS_TLC</th>\n",
-       "      <th>geometry</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>admin</th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>Australia</th>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>0</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>0</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>9</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>Brazil</th>\n",
-       "      <td>27</td>\n",
-       "      <td>27</td>\n",
-       "      <td>27</td>\n",
-       "      <td>27</td>\n",
-       "      <td>27</td>\n",
-       "      <td>0</td>\n",
-       "      <td>27</td>\n",
-       "      <td>27</td>\n",
-       "      <td>27</td>\n",
-       "      <td>13</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>27</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>Canada</th>\n",
-       "      <td>13</td>\n",
-       "      <td>13</td>\n",
-       "      <td>13</td>\n",
-       "      <td>13</td>\n",
-       "      <td>13</td>\n",
-       "      <td>13</td>\n",
-       "      <td>13</td>\n",
-       "      <td>13</td>\n",
-       "      <td>13</td>\n",
-       "      <td>9</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>13</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>China</th>\n",
-       "      <td>31</td>\n",
-       "      <td>31</td>\n",
-       "      <td>31</td>\n",
-       "      <td>31</td>\n",
-       "      <td>31</td>\n",
-       "      <td>0</td>\n",
-       "      <td>31</td>\n",
-       "      <td>31</td>\n",
-       "      <td>31</td>\n",
-       "      <td>30</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>31</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>India</th>\n",
-       "      <td>36</td>\n",
-       "      <td>36</td>\n",
-       "      <td>36</td>\n",
-       "      <td>36</td>\n",
-       "      <td>36</td>\n",
-       "      <td>0</td>\n",
-       "      <td>36</td>\n",
-       "      <td>36</td>\n",
-       "      <td>36</td>\n",
-       "      <td>13</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>36</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>Indonesia</th>\n",
-       "      <td>33</td>\n",
-       "      <td>33</td>\n",
-       "      <td>33</td>\n",
-       "      <td>33</td>\n",
-       "      <td>33</td>\n",
-       "      <td>0</td>\n",
-       "      <td>33</td>\n",
-       "      <td>33</td>\n",
-       "      <td>33</td>\n",
-       "      <td>30</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>33</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>Russia</th>\n",
-       "      <td>85</td>\n",
-       "      <td>85</td>\n",
-       "      <td>85</td>\n",
-       "      <td>85</td>\n",
-       "      <td>85</td>\n",
-       "      <td>1</td>\n",
-       "      <td>85</td>\n",
-       "      <td>85</td>\n",
-       "      <td>85</td>\n",
-       "      <td>84</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>85</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>South Africa</th>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>0</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>9</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>9</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>United States of America</th>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>51</td>\n",
-       "      <td>...</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>51</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "<p>9 rows × 121 columns</p>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "                          featurecla  scalerank  adm1_code  diss_me  \\\n",
-       "admin                                                                 \n",
-       "Australia                          9          9          9        9   \n",
-       "Brazil                            27         27         27       27   \n",
-       "Canada                            13         13         13       13   \n",
-       "China                             31         31         31       31   \n",
-       "India                             36         36         36       36   \n",
-       "Indonesia                         33         33         33       33   \n",
-       "Russia                            85         85         85       85   \n",
-       "South Africa                       9          9          9        9   \n",
-       "United States of America          51         51         51       51   \n",
-       "\n",
-       "                          iso_3166_2  wikipedia  iso_a2  adm0_sr  name  \\\n",
-       "admin                                                                    \n",
-       "Australia                          9          0       9        9     9   \n",
-       "Brazil                            27          0      27       27    27   \n",
-       "Canada                            13         13      13       13    13   \n",
-       "China                             31          0      31       31    31   \n",
-       "India                             36          0      36       36    36   \n",
-       "Indonesia                         33          0      33       33    33   \n",
-       "Russia                            85          1      85       85    85   \n",
-       "South Africa                       9          0       9        9     9   \n",
-       "United States of America          51         51      51       51    51   \n",
-       "\n",
-       "                          name_alt  ...  FCLASS_ID  FCLASS_PL  FCLASS_GR  \\\n",
-       "admin                               ...                                    \n",
-       "Australia                        0  ...          0          0          0   \n",
-       "Brazil                          13  ...          0          0          0   \n",
-       "Canada                           9  ...          0          0          0   \n",
-       "China                           30  ...          0          0          0   \n",
-       "India                           13  ...          0          0          0   \n",
-       "Indonesia                       30  ...          0          0          0   \n",
-       "Russia                          84  ...          0          0          0   \n",
-       "South Africa                     9  ...          0          0          0   \n",
-       "United States of America        51  ...          0          0          0   \n",
-       "\n",
-       "                          FCLASS_IT  FCLASS_NL  FCLASS_SE  FCLASS_BD  \\\n",
-       "admin                                                                  \n",
-       "Australia                         0          0          0          0   \n",
-       "Brazil                            0          0          0          0   \n",
-       "Canada                            0          0          0          0   \n",
-       "China                             0          0          0          0   \n",
-       "India                             0          0          0          0   \n",
-       "Indonesia                         0          0          0          0   \n",
-       "Russia                            0          0          0          0   \n",
-       "South Africa                      0          0          0          0   \n",
-       "United States of America          0          0          0          0   \n",
-       "\n",
-       "                          FCLASS_UA  FCLASS_TLC  geometry  \n",
-       "admin                                                      \n",
-       "Australia                         0           0         9  \n",
-       "Brazil                            0           0        27  \n",
-       "Canada                            0           0        13  \n",
-       "China                             0           0        31  \n",
-       "India                             0           0        36  \n",
-       "Indonesia                         0           0        33  \n",
-       "Russia                            0           0        85  \n",
-       "South Africa                      0           0         9  \n",
-       "United States of America          0           0        51  \n",
-       "\n",
-       "[9 rows x 121 columns]"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "df_50m.groupby('admin').count()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": null,
    "metadata": {
     "colab": {
      "base_uri": "https://localhost:8080/",
@@ -584,38 +174,7 @@
     "id": "eUlJjdRkt1LT",
     "outputId": "60df2dc3-800e-40ac-f151-696a7f91cff4"
    },
-   "outputs": [
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAABK4AAAMtCAYAAAC2GTmHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3ib1f338Y+m997xiu3svXcII0DYe7aMMktbRqGl5dfytNBB6QBK2S2bUvbeJIQQkkD2dIYz7HhvS56SLOn5w2Bi4iS2I1uy/X5dVy7iW0fn/grHTvTxOd9j8Hq9XgEAAAAAAAABxujvAgAAAAAAAIDOEFwBAAAAAAAgIBFcAQAAAAAAICARXAEAAAAAACAgEVwBAAAAAAAgIBFcAQAAAAAAICARXAEAAAAAACAgmf1dwPd5PB6VlJQoIiJCBoPB3+UAAAAAAADAh7xer+rr6zVkyBAZjYdfUxVw [...]
-      "text/plain": [
-       "<Figure size 2000x1000 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAt8AAAMtCAYAAABHJx1iAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hc5ZU/8O+903tR7yNb7rZcZMuYTqgJIRBgQzYhkCykkmxC2CRLym+XbNqmVwhJYAktlAAhlEAoptuWJcuWbLlIsnqXpve55ffHSLJltZnRzNyZ0fk8D08iaXTvkayZOfe95z2HEUVRBCGEEEIIISTlWKkDIIQQQgghZLmg5JsQQgghhJA0oeSbEEIIIYSQNKHkmxBCCCGEkDSh5JsQQgghhJA0oeSbEEIIIYSQNKHkmxBCCCGEkDSRSx3AmQRBwODgIAwGAxiGkTocQgghhBBCFiWKIjweD0pL [...]
-      "text/plain": [
-       "<Figure size 2000x1000 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "df_50m[df_50m.adm0_a3 == 'USA'].plot(figsize=(20,10))\n",
     "plt.show()\n",
@@ -633,32 +192,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": null,
    "metadata": {
     "id": "pr1jqM3kt1LU",
     "outputId": "7211a182-b64a-469b-fadb-af2148ec6852"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "array(['Australia', 'Brazil', 'Canada', 'United States of America',\n",
-       "       'China', 'India', 'Indonesia', 'Russia', 'South Africa'],\n",
-       "      dtype=object)"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "df_50m['admin'].unique()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": null,
    "metadata": {
     "id": "k-KuZ8L4t1LU"
    },
@@ -682,19 +228,11 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": null,
    "metadata": {
     "id": "-4uH5XaEt1LU"
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Following country names are not valid: ['france_regions']\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "# Country names used in file names\n",
     "countries = [\n",
@@ -782,6 +320,7 @@
     "  'thailand',\n",
     "  'timorleste',\n",
     "  'turkey',\n",
+    "  'turkey_regions', # this one derived from turkey - see below\n",
     "  'turkmenistan',\n",
     "  'uganda',\n",
     "  'uk',\n",
@@ -827,31 +366,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": null,
    "metadata": {
     "id": "tJ_WNQl8t1LU",
     "outputId": "4f601ce0-26e4-4a40-c36c-8449420e9406"
    },
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/var/folders/lc/0hq8dvlj5c7_g_fzpmgclh540000gn/T/ipykernel_60888/1621097802.py:21: UserWarning: The GeoDataFrame you are attempting to plot is empty. Nothing has been displayed.\n",
-      "  get_gdf(country).plot(ax=ax)\n"
-     ]
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAB8oAAAagCAYAAAAH4dMtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hTZfsH8O/Jbpom6R50D1poKaMMi7KRgvwQRQEVX0ERFAEBUQEHgoigoL5OQF5FVBBBBRWRoSzRAqVQ9ip00b139vP7ozQ2NN0jSXt/rivXRZ6cnNznkN4559zPeR6OMcZACCGEEEIIIYQQQgghhBBCCCGEdBI8SwdACCGEEEIIIYQQQgghhBBCCCGEtCcqlBNCCCGEEEIIIYQQQgghhBBCCOlUqFBOCCGEEEIIIYQQQgghhBBCCCGkU6FCOSGEEEIIIYQQQgghhBBCCCGEkE6FCuWEEEIIIYQQ [...]
-      "text/plain": [
-       "<Figure size 2000x2000 with 95 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "import geopandas as gpd\n",
     "\n",
@@ -905,33 +425,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": null,
    "metadata": {
     "id": "xx8IbBKtt1LU",
     "outputId": "025139d2-ba0b-43a9-e2ec-f4608e6ecad2"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 11,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAF3CAYAAAAFEil7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABq+klEQVR4nO3dd3hc1bU28PdM7029FxdJlns3xhRjEGASCKZDQk3DkIAJCYaEclPghlxKvmACCYEQ4pAAAUIzAdvY4I7cm9xkS7J6maIy/Xx/yJItq81IU6X39zx6QHPOnNmzJeus2XvttQVRFEUQERERRYgk2g0gIiKi0YXBBxEREUUUgw8iIiKKKAYfREREFFEMPoiIiCiiGHwQERFRRDH4ICIiooiSRbsBZ/P7/aiuroZer4cgCNFuDhEREQVAFEU4HA6kp6dDIhl4bCPmgo/q6mpkZWVFuxlEREQ0BJWVlcjM [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "usa = df[df['adm0_a3'] == 'USA']\n",
     "usa.plot()"
@@ -939,33 +438,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": null,
    "metadata": {
     "id": "ixC6KENXt1LU",
     "outputId": "8e63cb2d-d733-4a9f-caf6-ccc843f15b5d"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 12,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApsAAAFvCAYAAAAFeQD2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAACfgElEQVR4nOzdd1hb59k/8O/R3ou9p20MeGCMdxyPLGcnzptmtM1ezWiTjjRv+7ZNOpImv7YZbdK0TZM2sxlN0+xtxyM2GOOFDQbM3iC0t3R+f8hgY8AgkHSOxP25Li4bjaMHIaT7PM9z3zfDsiwLQgghhBBCIkDA9QAIIYQQQkj8omCTEEIIIYREDAWbhBBCCCEkYijYJIQQQgghEUPBJiGEEEIIiRgKNgkhhBBCSMRQsEkIIYQQQiKGgk1CCCGEEBIxIq4HcKpAIICuri6o1WowDMP1cAghhBBCyClYloXVakV6 [...]
-      "text/plain": [
-       "<Figure size 800x800 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "def reposition(df, idx, xoff=None, yoff=None, xscale=None, yscale=None, simplify=None):\n",
     "\n",
@@ -1003,168 +481,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": null,
    "metadata": {
     "id": "vN4Ngpe7t1LU",
     "outputId": "3bcdc612-cc01-49be-fe19-f6e08e833fca"
    },
-   "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>featurecla</th>\n",
-       "      <th>scalerank</th>\n",
-       "      <th>labelrank</th>\n",
-       "      <th>sov_a3</th>\n",
-       "      <th>type</th>\n",
-       "      <th>admin</th>\n",
-       "      <th>adm0_a3</th>\n",
-       "      <th>gu_a3</th>\n",
-       "      <th>name</th>\n",
-       "      <th>abbrev</th>\n",
-       "      <th>...</th>\n",
-       "      <th>name_sv</th>\n",
-       "      <th>name_tr</th>\n",
-       "      <th>name_uk</th>\n",
-       "      <th>name_ur</th>\n",
-       "      <th>name_vi</th>\n",
-       "      <th>name_zh_x</th>\n",
-       "      <th>name_zht</th>\n",
-       "      <th>geometry</th>\n",
-       "      <th>name_zh_y</th>\n",
-       "      <th>iso_3166_2</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>Admin-0 country</td>\n",
-       "      <td>0</td>\n",
-       "      <td>4</td>\n",
-       "      <td>CH1</td>\n",
-       "      <td>Country</td>\n",
-       "      <td>Hong Kong S.A.R.</td>\n",
-       "      <td>HKG</td>\n",
-       "      <td>HKG</td>\n",
-       "      <td>Hong Kong</td>\n",
-       "      <td>H.K.</td>\n",
-       "      <td>...</td>\n",
-       "      <td>Hongkong</td>\n",
-       "      <td>Hong Kong</td>\n",
-       "      <td>Гонконг</td>\n",
-       "      <td>ہانگ کانگ</td>\n",
-       "      <td>Hồng Kông</td>\n",
-       "      <td>香港</td>\n",
-       "      <td>香港</td>\n",
-       "      <td>MULTIPOLYGON (((114.22983 22.55581, 114.23471 ...</td>\n",
-       "      <td>香港特别行政区</td>\n",
-       "      <td>CN-91</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>Admin-0 country</td>\n",
-       "      <td>0</td>\n",
-       "      <td>3</td>\n",
-       "      <td>TWN</td>\n",
-       "      <td>Sovereign country</td>\n",
-       "      <td>Taiwan</td>\n",
-       "      <td>TWN</td>\n",
-       "      <td>TWN</td>\n",
-       "      <td>Taiwan</td>\n",
-       "      <td>Taiwan</td>\n",
-       "      <td>...</td>\n",
-       "      <td>Taiwan</td>\n",
-       "      <td>Çin Cumhuriyeti</td>\n",
-       "      <td>Республіка Китай</td>\n",
-       "      <td>تائیوان</td>\n",
-       "      <td>Đài Loan</td>\n",
-       "      <td>中华民国</td>\n",
-       "      <td>中華民國</td>\n",
-       "      <td>MULTIPOLYGON (((121.90577 24.95010, 121.83473 ...</td>\n",
-       "      <td>中国台湾</td>\n",
-       "      <td>CN-71</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>Admin-0 country</td>\n",
-       "      <td>0</td>\n",
-       "      <td>4</td>\n",
-       "      <td>CH1</td>\n",
-       "      <td>Country</td>\n",
-       "      <td>Macao S.A.R</td>\n",
-       "      <td>MAC</td>\n",
-       "      <td>MAC</td>\n",
-       "      <td>Macao</td>\n",
-       "      <td>Mac.</td>\n",
-       "      <td>...</td>\n",
-       "      <td>Macao</td>\n",
-       "      <td>Makao</td>\n",
-       "      <td>Аоминь</td>\n",
-       "      <td>مکاؤ</td>\n",
-       "      <td>Ma Cao</td>\n",
-       "      <td>澳门</td>\n",
-       "      <td>澳門</td>\n",
-       "      <td>MULTIPOLYGON (((113.55860 22.16303, 113.56943 ...</td>\n",
-       "      <td>澳门特别行政区</td>\n",
-       "      <td>CN-92</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "<p>3 rows × 51 columns</p>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "        featurecla  scalerank  labelrank sov_a3               type  \\\n",
-       "0  Admin-0 country          0          4    CH1            Country   \n",
-       "1  Admin-0 country          0          3    TWN  Sovereign country   \n",
-       "2  Admin-0 country          0          4    CH1            Country   \n",
-       "\n",
-       "              admin adm0_a3 gu_a3       name  abbrev  ...   name_sv  \\\n",
-       "0  Hong Kong S.A.R.     HKG   HKG  Hong Kong    H.K.  ...  Hongkong   \n",
-       "1            Taiwan     TWN   TWN     Taiwan  Taiwan  ...    Taiwan   \n",
-       "2       Macao S.A.R     MAC   MAC      Macao    Mac.  ...     Macao   \n",
-       "\n",
-       "           name_tr           name_uk    name_ur    name_vi  name_zh_x  \\\n",
-       "0        Hong Kong           Гонконг  ہانگ کانگ  Hồng Kông         香港   \n",
-       "1  Çin Cumhuriyeti  Республіка Китай    تائیوان   Đài Loan       中华民国   \n",
-       "2            Makao            Аоминь       مکاؤ     Ma Cao         澳门   \n",
-       "\n",
-       "   name_zht                                           geometry  name_zh_y  \\\n",
-       "0        香港  MULTIPOLYGON (((114.22983 22.55581, 114.23471 ...    香港特别行政区   \n",
-       "1      中華民國  MULTIPOLYGON (((121.90577 24.95010, 121.83473 ...       中国台湾   \n",
-       "2        澳門  MULTIPOLYGON (((113.55860 22.16303, 113.56943 ...    澳门特别行政区   \n",
-       "\n",
-       "   iso_3166_2  \n",
-       "0       CN-91  \n",
-       "1       CN-71  \n",
-       "2       CN-92  \n",
-       "\n",
-       "[3 rows x 51 columns]"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "# Chinese Special Administrative Regions\n",
     "china_sars = df_admin0_10m.loc[\n",
@@ -1183,34 +505,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": null,
    "metadata": {
     "id": "PP6E24eEt1LV",
     "outputId": "2621d5f1-1edc-42fc-e8df-8afd6a525cc6",
     "scrolled": true
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9EAAALDCAYAAAASWYNXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5hkZZU/8O+tnFPn3D0550AWBERRDKCygDnHVdTVZdVV0FV3/a24RtR1xQCCKCAZyWlCT+7pyd3TOXdXzun+/uiZZno6Vb4Vvp/n4WGmq+reMzPdVffc97znCKIoiiAiIiIiIiKiBcmkDoCIiIiIiIioUDCJJiIiIiIiIkoQk2giIiIiIiKiBDGJJiIiIiIiIkoQk2giIiIiIiKiBDGJJiIiIiIiIkoQk2giIiIiIiKiBDGJJiIiIiIiIkqQQuoAzhePxzE4OAij0QhBEKQOh4iIiIiIiIqcKIrw [...]
-      "text/plain": [
-       "<Figure size 1200x1200 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "import pandas as pd\n",
     "\n",
@@ -1246,7 +547,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": null,
    "metadata": {
     "id": "LuNGgwiQt1LV"
    },
@@ -1267,33 +568,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": null,
    "metadata": {
     "id": "v8ig_jQDt1LV",
     "outputId": "3f10b14d-dde2-46d9-f4f6-6f4311fb3e73"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 16,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf0AAAPHCAYAAAAispBqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAADyEklEQVR4nOzdd3ib5dk28FPbsq3pve3sOHuzR6GFMgstpYPR0vGW0tJC27fQ9bZfB92DbsrooNDJKpQ9AyFx9o7jJN7b1t7r+f5wMBl2LNmS7ueRzt9x5DgSW5auJJJOPfe4bpUkSRKIiIgo56lFF0BERETZwdAnIiLKEwx9IiKiPMHQJyIiyhMMfSIiojzB0CciIsoTDH0iIqI8oRVdwIkSiQT6+vpgMpmgUqlEl0NERCRLkiTB6/WiuroaanVy1/CyC/2+vj7U1dWJLoOIiEgRuru7UVtbm9RtZRf6JpMJwNhf [...]
-      "text/plain": [
-       "<Figure size 1200x1200 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "import pandas as pd\n",
     "\n",
@@ -1323,33 +603,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": null,
    "metadata": {
     "id": "8zBzSIqQt1LV",
     "outputId": "cc8b6fbf-accb-44ba-b80a-a837df398c96"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 17,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKwAAAGdCAYAAACPYJhkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAkJUlEQVR4nO3de1xUdf7H8fdcDzM4M9xkBnBAvOKtMEwizbL4yZbbZrq13W+ubi62mT5a5VFq7Wa41raVj0zdfeS2ZavrttVqbeVS0baLmndRQQ0UBGYAgXMGmBsz398f1KnJS4NyGL7weT4e5/FgzhwO3/G8PJwZzsxRMcYYCOGEOtIDIKQrKFjCFQqWcIWCJVyhYAlXKFjCFQqWcIWCJVzRRnoAlyoYDKK2thYmkwkqlSrSwyEXiTEGl8uF5ORkqNXn349yH2xtbS3sdnukh0G6SXV1NQYNGnTe+7kP1mQyAeh8 [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "norway = df[df['adm0_a3'] == 'NOR']\n",
     "norway.plot()"
@@ -1357,33 +616,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
+   "execution_count": null,
    "metadata": {
     "id": "-LXcKKOjt1LV",
     "outputId": "546a286e-9682-4f9a-c57e-b19250d88a34"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 18,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhIAAAGdCAYAAABHM5ovAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAACtAUlEQVR4nOzdd3iUVfbA8e/0TNqk9x4ILfTQpYpixd57byuKrgXddVfX1dXV1d+6a++rYkexgkhReq+B9N77JJlMn98fgYGQQhLSgPN5Hp41M+/c951skvfMveeeo3C5XC6EEEIIIbpB2d8XIIQQQogTlwQSQgghhOg2CSSEEEII0W0SSAghhBCi2ySQEEIIIUS3SSAhhBBCiG6TQEIIIYQQ3SaBhBBCCCG6Td3fF3A0p9NJcXExPj4+KBSK/r4cIYQQ4pTkcrmor68nIiICpbL9eYcBF0gUFxcTHR3d35chhBBC [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "norway_copy = norway.copy()\n",
     "norway_copy = norway_copy[norway_copy[\"iso_3166_2\"] != \"NO-X01~\"]\n",
@@ -1404,33 +642,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": null,
    "metadata": {
     "id": "mznw0XOgt1LV",
     "outputId": "7e8085bc-abd9-4592-f047-62fa1a45eb01"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 19,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAFUCAYAAAAOBceiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5GUlEQVR4nO3deXxU5b0/8M/sk8yWTPZlskAgIUDYlyBaQVap4i1W788F21IVS/EqbUXaWq9FhZ/aS71W0etWfrVcKlgUF0RcwKosIRAJIAgSSMhKmGRmMsns5/dHZCSSZSYzSc5MPu/XK69XZs45z3znODifPOc5zyMRBEEAERERkYhIB7oAIiIiou9jQCEiIiLRYUAhIiIi0WFAISIiItFhQCEiIiLRYUAhIiIi0WFAISIiItFhQCEiIiLRkQ90Ad/n8/lQU1MDnU4HiUQy0OUQERFRAARBgM1mQ3p6OqTS0Ps/ [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "portugal = df[df.admin == 'Portugal']\n",
     "portugal.plot()"
@@ -1438,33 +655,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": null,
    "metadata": {
     "id": "yfAO1qFrt1LV",
     "outputId": "9151ce8f-2412-415b-da73-eeec613276d8"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 20,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApsAAAHRCAYAAAAluXLzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABoAklEQVR4nO3deXhU5d0+8Hv2mcw+2fcEAmENq0BwRxYpVVx+2sWKtdZWS/u6dFFefau2tdDS19a+Vlyrtkq1arVaF1xxQYQQtgAStoSELGSdJZPZ5/z+CARCttnOzCTcn+vKVXLmzHO+c4rJzXOeRSIIggAiIiIiIhFIE10AEREREY1eDJtEREREJBqGTSIiIiISDcMmEREREYmGYZOIiIiIRMOwSURERESiYdgkIiIiItHIE13AmYLBIBobG6HX6yGRSBJdDhERERGdQRAEOBwO5OTkQCoduu8y6cJmY2Mj8vPz [...]
-      "text/plain": [
-       "<Figure size 800x800 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "portugal_copy = portugal.copy()\n",
     "reposition(portugal_copy, portugal.name == 'Azores', 11, 0)\n",
@@ -1483,33 +679,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 21,
+   "execution_count": null,
    "metadata": {
     "id": "bbyDCO0Qt1LV",
     "outputId": "f2a0594d-999b-4573-d008-5158f898a1c6"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 21,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdEAAAGdCAYAAABNWUmMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABrWklEQVR4nO3deXicZbk/8O87+75l35M2bdK0TfeUFFmEQqmIoCgcRSgczlE4BYSKS8/RI6hYfqKCCwJHEXHhsHmKqCACWhAoXdKFdF+z78ssmX15f39MMzTNJJl5Z7J/P9eV6yKTd573mWnIPc9234IoiiKIiIgoabLJ7gAREdF0xSBKREQkEYMoERGRRAyiREREEjGIEhERScQgSkREJBGDKBERkUQMokRERBIpJrsD54pEImhra4PRaIQgCJPdHSIimmVEUYTL5UJ+fj5kstHHmlMuiLa1taGoqGiyu0FERLNc [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "spain = df[df.admin == 'Spain']\n",
     "spain.plot()"
@@ -1517,33 +692,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 22,
+   "execution_count": null,
    "metadata": {
     "id": "yJ_Ueh7Rt1LV",
     "outputId": "16fe59db-4be4-4e02-d37b-3098bdfa945a"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 22,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAp0AAAGjCAYAAABuTa5+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAACvZklEQVR4nOzdd3hkZ3k34N/p08409T7a1e5qtStt02q9tgE3MMaYbiCAIZSEEDohEPIRAqEHEgiBAKEFEhwCBoztEIwpNja2V9t7X/UuTe8zZ873x0iz6ppypknPfV1ciUcz57wqKz3zvk9hVFVVQQghhBBCSB6xxV4AIYQQQghZ/yjoJIQQQggheUdBJyGEEEIIyTsKOgkhhBBCSN5R0EkIIYQQQvKOgk5CCCGEEJJ3FHQSQgghhJC8o6CTEEIIIYTkHV/sBSyWSCQwOjoKWZbBMEyxl0MIIYQQQhZRVRU+nw/1 [...]
-      "text/plain": [
-       "<Figure size 800x800 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "spain_copy = spain.copy()\n",
     "reposition(spain_copy, spain.name.isin(['Las Palmas', 'Santa Cruz de Tenerife']), 3, 7, 1, 1)\n",
@@ -1561,33 +715,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 23,
+   "execution_count": null,
    "metadata": {
     "id": "60UpJMNwt1LV",
     "outputId": "1c9ff3fa-83e6-411e-9dc3-0c718ee97d39"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 23,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAChCAYAAABnAt39AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABT8klEQVR4nO3dd3ykVbnA8d87vbf0XrZle+8sdWVB4IIgIKIUERRQRBAE76VaQFDwqhRBL0UUBBUEpQjLLggs23sv6XVTJjOZTJ/3/jHJbCYzyaZnsznfz4cPu++88845k+y8z5zznOdIsizLCIIgCIIgjBDFaDdAEARBEITxRQQfgiAIgiCMKBF8CIIgCIIwokTwIQiCIAjCiBLBhyAIgiAII0oEH4IgCIIgjCgRfAiCIAiCMKJE8CEIgiAIwohSjXYDuotEItTU1GA2m5EkabSbIwiCIAhCH8iyjNvtJjs7G4Wi [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "russia = df[df.admin == 'Russia']\n",
     "russia.plot()"
@@ -1604,34 +737,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 24,
+   "execution_count": null,
    "metadata": {
     "id": "rfBkQf78t1LW",
     "outputId": "8342e4b8-2483-4aac-8a79-e88d455297e2",
     "scrolled": true
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 24,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAABj0AAAMyCAYAAAA2aQPiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddXhk5fUH8O+4zySZuMsmm9WsuwKLu7v9sBZaKC0tFCm0SCkUt0JxpzgLLLDCuls2nmzcfTTj9/dHlkDYZGMzmcj38zw82czc+94z7CaT3POec0SCIAggIiIiIiIiIiIiIiIa5cTBDoCIiIiIiIiIiIiIiMgfmPQgIiIiIiIiIiIiIqIxgUkPIiIiIiIiIiIiIiIaE5j0ICIiIiIiIiIiIiKiMYFJDyIiIiIiIiIiIiIiGhOY9CAiIiIiIiIiIiIiojGBSQ8iIiIiIiIiIiIiIhoTmPQgIiIiIiIi [...]
-      "text/plain": [
-       "<Figure size 2000x2000 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "import shapely.geometry\n",
     "import shapely.ops\n",
@@ -1673,6 +785,111 @@
     "russia_copy.plot(figsize=(20, 20))\n"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Turkey"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Turkey Regions"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "turkey = df[df.admin == 'Turkey'][['iso_3166_2','geometry']]\n",
+    "turkey.plot()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from shapely.geometry import Polygon, MultiPolygon\n",
+    "\n",
+    "# NUTS - 1 Codes for Turkey and correspong region - city names\n",
+    "\n",
+    "region_dict = {\n",
+    " 'TR1': ['TR-34'],\n",
+    " 'TR2': ['TR-59', 'TR-22', 'TR-39', 'TR-10', 'TR-17'],\n",
+    " 'TR3': ['TR-35', 'TR-09', 'TR-20', 'TR-48', 'TR-45', 'TR-03', 'TR-43', 'TR-64'],\n",
+    " 'TR4': ['TR-16', 'TR-26', 'TR-11', 'TR-41', 'TR-54', 'TR-81', 'TR-14', 'TR-77'],\n",
+    " 'TR5': ['TR-06', 'TR-42', 'TR-70'],\n",
+    " 'TR6': ['TR-07', 'TR-32', 'TR-15', 'TR-01', 'TR-33', 'TR-31', 'TR-46', 'TR-80'],\n",
+    " 'TR7': ['TR-71', 'TR-68', 'TR-51', 'TR-50', 'TR-40', 'TR-38', 'TR-58', 'TR-66'],\n",
+    " 'TR8': ['TR-67', 'TR-78', 'TR-74', 'TR-37', 'TR-18', 'TR-57', 'TR-55', 'TR-60', 'TR-19', 'TR-05'],\n",
+    " 'TR9': ['TR-61', 'TR-52', 'TR-28', 'TR-53', 'TR-08', 'TR-29'],\n",
+    " 'TRA': ['TR-25', 'TR-24', 'TR-69', 'TR-04', 'TR-36', 'TR-76', 'TR-75'],\n",
+    " 'TRB': ['TR-44', 'TR-23', 'TR-12', 'TR-62', 'TR-65', 'TR-49', 'TR-13', 'TR-30'],\n",
+    " 'TRC': ['TR-27', 'TR-02', 'TR-79', 'TR-63', 'TR-21', 'TR-47', 'TR-72', 'TR-73', 'TR-56']}\n",
+    "\n",
+    "# Region names corresponding to NUTS-1\n",
+    "\n",
+    "region_name_dict = {'TR1':'İstanbul',\n",
+    "                    'TR2':'Batı Marmara',\n",
+    "                    'TR3':'Ege',\n",
+    "                    'TR4':'Doğu Marmara',\n",
+    "                    'TR5':'Batı Anadolu',\n",
+    "                    'TR6':'Akdeniz',\n",
+    "                    'TR7':'Orta Anadolu',\n",
+    "                    'TR8':'Batı Karadeniz',\n",
+    "                    'TR9':'Doğu Karadeniz',\n",
+    "                    'TRA':'Kuzeydoğu Anadolu',\n",
+    "                    'TRC':'Güneydoğu Anadolu',\n",
+    "                    'TRB':'Ortadoğu Anadolu'\n",
+    "                    }\n",
+    "\n",
+    "\n",
+    "def create_region_polygons(region_dict, turkey_gdf):\n",
+    "    # Create a reverse dictionary where city codes map to region codes\n",
+    "    city_to_region = {city_code: region_code for region_code, city_codes in region_dict.items() for city_code in city_codes}\n",
+    "\n",
+    "    # Create a new column 'REGION' in the GeoDataFrame that maps each city to its region\n",
+    "    turkey_gdf['REGION'] = turkey_gdf['iso_3166_2'].map(city_to_region)\n",
+    "\n",
+    "    # Dissolve the GeoDataFrame on the 'REGION' column to combine city polygons into region polygons\n",
+    "    region_gdf = turkey_gdf.dissolve(by='REGION')\n",
+    "\n",
+    "    # Reset the index of the new GeoDataFrame\n",
+    "    region_gdf.reset_index(inplace=True)\n",
+    "    \n",
+    "    return region_gdf.drop(columns=['iso_3166_2'])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "turkey_regions = create_region_polygons(region_dict, turkey)\n",
+    "\n",
+    "# Rename 'REGION' column to 'ISO'\n",
+    "turkey_regions = turkey_regions.rename(columns={'REGION': 'iso_3166_2'})\n",
+    "\n",
+    "# Map the region_name_dict to a new 'NAME_1' column\n",
+    "turkey_regions['name'] = turkey_regions['iso_3166_2'].map(region_name_dict)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "turkey_regions.plot(figsize=(10, 7), edgecolor='black', column='name', legend=False, cmap='tab20')"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {
@@ -1684,33 +901,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 25,
+   "execution_count": null,
    "metadata": {
     "id": "AcT31Diyt1LW",
     "outputId": "cd6cc6ef-43ba-478e-b183-84eb7e003e17"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 25,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAFnCAYAAABqwnnlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxQUlEQVR4nO3de3RU9b3//9fcc53J/UYSCIICIogoGG/1kkqpbbWi39baViw/rDZaEdqjHK3W3zoWlvXUVlsvbS3aUxWL56cercrxYIvt1yAQ5RIUBLkkIZkESDKTC5nJzHx+f0RHcwBLkMlkm+djrb0W89l79n7PR2Rea8/n89k2Y4wRAADAMGdPdgEAAABHg9ACAAAsgdACAAAsgdACAAAsgdACAAAsgdACAAAsgdACAAAswZnsAj6rWCympqYmZWZmymazJbscAABwFIwx6uzsVElJiez2o7uHYvnQ0tTUpLKy [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "france = df[df.admin == 'France']\n",
     "france.plot()"
@@ -1737,7 +933,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 26,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1752,33 +948,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 27,
+   "execution_count": null,
    "metadata": {
     "id": "yjKX9Pbbt1LW",
     "outputId": "14caae01-b1b0-4775-a00e-a9e4f30fdf73"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 27,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApsAAAKRCAYAAAAbCWICAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3xb93kv/s9Z2JvgXqBIbWpLlO3YmXb2aOzWWXVGkzQ3bdOMtunNbdKMpk1+vW3S5Gbv0Syn2bEzbCfelqhJbUqiuDeJvYFzzu8PiBApgiTGOcAB+bxfr7xikcDBIQgCz/l+n8HIsiyDEEIIIYQQFbCVPgFCCCGEELJ+UbBJCCGEEEJUQ8EmIYQQQghRDQWbhBBCCCFENRRsEkIIIYQQ1VCwSQghhBBCVEPBJiGEEEIIUQ0Fm4QQQgghRDV8pU/gZpIkYWJiAlarFQzDVPp0CCGEEELITWRZRigU [...]
-      "text/plain": [
-       "<Figure size 800x800 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "france_copy = france.copy()\n",
     "reposition(france_copy, france.name=='Guadeloupe', 57.4, 25.4, 1.5, 1.5)\n",
@@ -1799,30 +974,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 49,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 49,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAa0AAAGdCAYAAAChLCyaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+I0lEQVR4nO3dd3xV9f0/8Ne5e+TO7L0YAZIAARJBcYGKUupqtUq1jrqKA+3Pqq2t2iW1tvar1Uqtq3WPuq2KqCgzEAgQIIGE7J3c3L3vPb8/AhdC1t333Jv38/HI40HuPffcz+Xmnvf9rPebYVmWBSGEEBIHeLFuACGEEOIvClqEEELiBgUtQgghcYOCFiGEkLhBQYsQQkjcoKBFCCEkblDQIoQQEjcoaBFCCIkbglg34FRerxddXV1QKBRgGCbWzSGEEBIilmVhMpmQlZUFHi+0vhLnglZXVxdyc3Nj3QxCCCFh [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "france_regions = france_copy.copy()\n",
     "# Define the mapping from the departments to their parent division\n",
@@ -1954,7 +1108,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 50,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1968,33 +1122,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 51,
+   "execution_count": null,
    "metadata": {
     "id": "IS5Gcxgct1LW",
     "outputId": "b8dbb05f-4ca9-4884-83ac-a7c169a9830a"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 51,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAFmCAYAAAC/V5rzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAlV0lEQVR4nO3df3RU9Z3/8dfk15CQzOT3L5kExApomq+KNYw/WJRUFlyqa9zTo1TFL8uKJ2IF2mXzlVbhuzZ89RRc2YW6tYuelUhLD5T1J0XQeKyJ0pgYwJIKBRIMCVXMTAhkEsjn+4dlykhQJgl8yOT5OOeew3w+937m/Zlo7uvc+dwbhzHGCAAAwJIo2wUAAIChjTACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArIoJZ+fHHntMixcvDmkbM2aMdu3aJUmaNGmSKisr [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "netherlands = df[df.admin == 'Netherlands']\n",
     "netherlands.plot()"
@@ -2002,33 +1135,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 52,
+   "execution_count": null,
    "metadata": {
     "id": "nwUGucQ1t1LW",
     "outputId": "26c5aede-c587-4d88-cfe0-30ecaec9ede3"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 52,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAKTCAYAAAD1xWeKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAC1YklEQVR4nOzdd3hc1bU34N+Z3pt6by5yL7IlG0zHYJMChOoACQk3kEZCCCH1Jibhfk5yCZc0ShqENCAEU0INxcbgIhfZli1LVhv1Or3X8/0hW1i2yvRzZma9z6PH9mh0ZsmWZ9bsvfZaDMuyLAghhBBCspCA6wAIIYQQQrhCiRAhhBBCshYlQoQQQgjJWpQIEUIIISRrUSJECCGEkKxFiRAhhBBCshYlQoQQQgjJWiKuA0iEcDiMwcFBqNVqMAzDdTiEEEII4RDLsnA4HCguLoZAMPuaT0YkQoODgygrK+M6DEII [...]
-      "text/plain": [
-       "<Figure size 800x800 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "netherlands_copy = apply_bounds(netherlands, (-20, 60), (20, 20))\n",
     "netherlands_copy.plot(figsize=(8, 8))"
@@ -2045,33 +1157,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 53,
+   "execution_count": null,
    "metadata": {
     "id": "xfMx6gJmt1LW",
     "outputId": "5278dfc3-3f51-4c21-84cc-922251b1d0cb"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 53,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWIAAAGdCAYAAAAomHm2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAACafElEQVR4nOzddXxkZ7348c8Zd4t7spvdZN1361SoAYUWb6G4S6HIvXB/cKEXKRcpXNylQCmlLaVQL3VZ981K3H3c7fz+mGQ2k0ySiW2y2+f9eu2LzciZM6H7nWee8xVJlmUZQRAEYdEoFvsEBEEQXulEIBYEQVhkIhALgiAsMhGIBUEQFpkIxIIgCItMBGJBEIRFJgKxIAjCIhOBWBAEYZGpFvsExksmk/T09GA2m5EkabFPRxAEIYMsy/h8PkpLS1Eo5mctu+QCcU9PDxUVFYt9GoIgCFPq7OykvLx8Xo615AKx [...]
-      "text/plain": [
-       "<Figure size 640x480 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "uk = df[df.admin == 'United Kingdom']\n",
     "uk.plot()"
@@ -2079,33 +1170,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 54,
+   "execution_count": null,
    "metadata": {
     "id": "28VU40f9t1LW",
     "outputId": "45585067-de13-4e02-8147-053ef0115d2d"
    },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<AxesSubplot: >"
-      ]
-     },
-     "execution_count": 54,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaYAAAKTCAYAAABSLqyAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3xb1dkH8N+92nt47x07HkkcJ86GEMLeu2GvAqWM0gKFtrxA4YX2LQXKKmWVUSCMsjdhZMdOnOmVeO+tvdd9/5CtWLYkS7Zsyfb5fj79fBrpSjoOzn10znnO81AMwzAgCIIgiChBR3oABEEQBDEaCUwEQRBEVCGBiSAIgogqJDARBEEQUYUEJoIgCCKqkMBEEARBRBUSmAiCIIiowo70AMZyuVzo7u6GRCIBRVGRHg5BEAQRBgzDQK/XIzk5GTQdeE4UdYGpu7sbaWlpkR4GQRAEMQ06OjqQmpoa [...]
-      "text/plain": [
-       "<Figure size 800x800 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "uk_copy = apply_bounds(uk, (-10, 60), (20, 20))\n",
     "uk_copy.plot(figsize=(8, 8))"
@@ -2122,7 +1192,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 55,
+   "execution_count": null,
    "metadata": {
     "id": "5xOVyzXCt1LW"
    },
@@ -2134,6 +1204,7 @@
     "    \"usa\": usa_copy,\n",
     "    \"france\": france_copy,\n",
     "    \"france_regions\": france_regions,\n",
+    "    \"turkey_regions\": turkey_regions,\n",
     "    \"netherlands\": netherlands_copy,\n",
     "    \"norway\": norway_copy,\n",
     "    \"uk\": uk_copy,\n",
@@ -2145,138 +1216,25 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 56,
+   "execution_count": null,
    "metadata": {
     "id": "tM1F5d0Vt1LW",
     "outputId": "75abad9b-9442-4279-d66d-a0cd5fb97198"
    },
-   "outputs": [
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAB8oAAAagCAYAAAAH4dMtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hTZfsH8O/Jbpom6R50D1poKaMMi7KRgvwQRQEVX0ERFAEBUQEHgoigoL5OQF5FVBBBBRWRoSzRAqVQ9ip00b139vP7ozQ2NN0jSXt/rivXRZ6cnNznkN4559zPeR6OMcZACCGEEEIIIYQQQgghhBBCCCGEdBI8SwdACCGEEEIIIYQQQgghhBBCCCGEtCcqlBNCCCGEEEIIIYQQQgghhBBCCOlUqFBOCCGEEEIIIYQQQgghhBBCCCGkU6FCOSGEEEIIIYQQQgghhBBCCCGEkE6FCuWEEEIIIYQQ [...]
-      "text/plain": [
-       "<Figure size 2000x2000 with 95 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "plot_all_countries()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 57,
+   "execution_count": null,
    "metadata": {
     "id": "8U3S1PUbt1LW",
     "outputId": "cfb8d229-ffdf-473f-d516-6aa136e41a60",
     "scrolled": true
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "afghanistan\tSize 130.904\tSaving geojson for afghanistan...\n",
-      "albania\tSize 5.325\tSaving geojson for albania...\n",
-      "algeria\tSize 374.167\tSaving geojson for algeria...\n",
-      "argentina\tSize 662.347\tSaving geojson for argentina...\n",
-      "australia\tSaving geojson for australia...\n",
-      "austria\tSize 20.068\tSaving geojson for austria...\n",
-      "belgium\tSize 7.709\tSaving geojson for belgium...\n",
-      "bolivia\tSize 161.264\tSaving geojson for bolivia...\n",
-      "brazil\tSaving geojson for brazil...\n",
-      "bulgaria\tSize 18.715\tSaving geojson for bulgaria...\n",
-      "burundi\tSize 3.99\tSaving geojson for burundi...\n",
-      "canada\tSaving geojson for canada...\n",
-      "chile\tSize 1652.977\tSaving geojson for chile...\n",
-      "china\tSaving geojson for china...\n",
-      "colombia\tSize 264.526\tSaving geojson for colombia...\n",
-      "costa rica\tSize 25.939\tSaving geojson for costa rica...\n",
-      "cuba\tSize 37.185\tSaving geojson for cuba...\n",
-      "cyprus\tSize 1.05\tSaving geojson for cyprus...\n",
-      "denmark\tSize 22.461\tSaving geojson for denmark...\n",
-      "dominican republic\tSize 8.806\tSaving geojson for dominican republic...\n",
-      "ecuador\tSize 112.048\tSaving geojson for ecuador...\n",
-      "egypt\tSize 117.982\tSaving geojson for egypt...\n",
-      "el salvador\tSize 3.116\tSaving geojson for el salvador...\n",
-      "estonia\tSize 13.694\tSaving geojson for estonia...\n",
-      "ethiopia\tSize 172.021\tSaving geojson for ethiopia...\n",
-      "france\tSize 148.331\tSaving geojson for france...\n",
-      "france_regions\tSize 148.331\tSaving geojson for france_regions...\n",
-      "finland\tSize 123.747\tSaving geojson for finland...\n",
-      "germany\tSize 71.47\tSaving geojson for germany...\n",
-      "guatemala\tSize 16.442\tSaving geojson for guatemala...\n",
-      "haiti\tSize 5.882\tSaving geojson for haiti...\n",
-      "honduras\tSize 27.669\tSaving geojson for honduras...\n",
-      "iceland\tSize 34.959\tSaving geojson for iceland...\n",
-      "india\tSaving geojson for india...\n",
-      "indonesia\tSaving geojson for indonesia...\n",
-      "iran\tSize 284.014\tSaving geojson for iran...\n",
-      "italy\tSize 138.162\tSaving geojson for italy...\n",
-      "japan\tSize 661.569\tSaving geojson for japan...\n",
-      "jordan\tSize 18.16\tSaving geojson for jordan...\n",
-      "kazakhstan\tSize 606.552\tSaving geojson for kazakhstan...\n",
-      "kenya\tSize 77.61\tSaving geojson for kenya...\n",
-      "korea\tSize 34.227\tSaving geojson for korea...\n",
-      "kuwait\tSize 2.973\tSaving geojson for kuwait...\n",
-      "kyrgyzstan\tSize 44.924\tSaving geojson for kyrgyzstan...\n",
-      "latvia\tSize 17.456\tSaving geojson for latvia...\n",
-      "liechtenstein\tSize 0.029\tSaving geojson for liechtenstein...\n",
-      "lithuania\tSize 15.018\tSaving geojson for lithuania...\n",
-      "malaysia\tSize 127.7\tSaving geojson for malaysia...\n",
-      "mexico\tSize 575.302\tSaving geojson for mexico...\n",
-      "morocco\tSize 231.84\tSaving geojson for morocco...\n",
-      "myanmar\tSize 168.709\tSaving geojson for myanmar...\n",
-      "netherlands\tSize 10.818\tSaving geojson for netherlands...\n",
-      "nicaragua\tSize 21.415\tSaving geojson for nicaragua...\n",
-      "nigeria\tSize 115.287\tSaving geojson for nigeria...\n",
-      "norway\tSize 530.052\tSaving geojson for norway...\n",
-      "oman\tSize 76.643\tSaving geojson for oman...\n",
-      "pakistan\tSize 216.493\tSaving geojson for pakistan...\n",
-      "panama\tSize 14.275\tSaving geojson for panama...\n",
-      "papua new guinea\tSize 155.567\tSaving geojson for papua new guinea...\n",
-      "paraguay\tSize 69.763\tSaving geojson for paraguay...\n",
-      "peru\tSize 231.665\tSaving geojson for peru...\n",
-      "philippines\tSize 159.114\tSaving geojson for philippines...\n",
-      "portugal\tSize 105.727\tSaving geojson for portugal...\n",
-      "poland\tSize 58.556\tSaving geojson for poland...\n",
-      "puerto rico\tSize 1.616\tSaving geojson for puerto rico...\n",
-      "qatar\tSize 1.385\tSaving geojson for qatar...\n",
-      "russia\tSaving geojson for russia...\n",
-      "rwanda\tSize 3.59\tSaving geojson for rwanda...\n",
-      "saint barthelemy\tSize 0.004\tSaving geojson for saint barthelemy...\n",
-      "saint martin\tSize 0.012\tSaving geojson for saint martin...\n",
-      "saudi arabia\tSize 331.779\tSaving geojson for saudi arabia...\n",
-      "singapore\tSize 0.067\tSaving geojson for singapore...\n",
-      "slovenia\tSize 4.537\tSaving geojson for slovenia...\n",
-      "spain\tSize 178.488\tSaving geojson for spain...\n",
-      "sri lanka\tSize 8.728\tSaving geojson for sri lanka...\n",
-      "sweden\tSize 178.774\tSaving geojson for sweden...\n",
-      "switzerland\tSize 8.935\tSaving geojson for switzerland...\n",
-      "syria\tSize 33.348\tSaving geojson for syria...\n",
-      "tajikistan\tSize 34.112\tSaving geojson for tajikistan...\n",
-      "tanzania\tSize 119.579\tSaving geojson for tanzania...\n",
-      "thailand\tSize 122.959\tSaving geojson for thailand...\n",
-      "timorleste\tSize 4.486\tSaving geojson for timorleste...\n",
-      "turkey\tSize 120.204\tSaving geojson for turkey...\n",
-      "turkmenistan\tSize 108.7\tSaving geojson for turkmenistan...\n",
-      "uganda\tSize 31.083\tSaving geojson for uganda...\n",
-      "uk\tSaving geojson for uk...\n",
-      "ukraine\tSize 128.988\tSaving geojson for ukraine...\n",
-      "united arab emirates\tSize 16.628\tSaving geojson for united arab emirates...\n",
-      "uruguay\tSize 25.985\tSaving geojson for uruguay...\n",
-      "usa\tSaving geojson for usa...\n",
-      "uzbekistan\tSize 143.798\tSaving geojson for uzbekistan...\n",
-      "venezuela\tSize 204.361\tSaving geojson for venezuela...\n",
-      "vietnam\tSize 108.841\tSaving geojson for vietnam...\n",
-      "zambia\tSize 115.483\tSaving geojson for zambia...\n",
-      "Done.                          \n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "import shutil\n",
     "\n",
@@ -2339,17 +1297,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 58,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "TypeScript code written to src/countries.ts\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "# Function to convert country name to a valid JavaScript identifier\n",
     "def to_js_identifier(name):\n",
@@ -2394,7 +1344,16 @@
     "  if (x === 'france_regions') {\n",
     "    return [x, 'France (regions)'];\n",
     "  }\n",
-    "  return [x, x.split('_').map((e) => e[0].toUpperCase() + e.slice(1)).join(' ')];\n",
+    "  if (x === 'turkey_regions') {\n",
+    "    return [x, 'Turkey (regions)'];\n",
+    "  }\n",
+    "  return [\n",
+    "    x,\n",
+    "    x\n",
+    "      .split('_')\n",
+    "      .map(e => e[0].toUpperCase() + e.slice(1))\n",
+    "      .join(' '),\n",
+    "  ];\n",
     "});\n",
     "\n",
     "export default countries;\n",
@@ -2437,7 +1396,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.11.7"
+   "version": "3.11.8"
   },
   "vscode": {
    "interpreter": {
diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries.ts b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries.ts
index 73657dd97a..9957e291c0 100755
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries.ts
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries.ts
@@ -101,6 +101,7 @@ import tanzania from './countries/tanzania.geojson';
 import thailand from './countries/thailand.geojson';
 import timorleste from './countries/timorleste.geojson';
 import turkey from './countries/turkey.geojson';
+import turkey_regions from './countries/turkey_regions.geojson';
 import turkmenistan from './countries/turkmenistan.geojson';
 import uganda from './countries/uganda.geojson';
 import uk from './countries/uk.geojson';
@@ -198,6 +199,7 @@ export const countries = {
   thailand,
   timorleste,
   turkey,
+  turkey_regions,
   turkmenistan,
   uganda,
   uk,
@@ -221,6 +223,9 @@ export const countryOptions = Object.keys(countries).map(x => {
   if (x === 'france_regions') {
     return [x, 'France (regions)'];
   }
+  if (x === 'turkey_regions') {
+    return [x, 'Turkey (regions)'];
+  }
   return [
     x,
     x
diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/turkey_regions.geojson b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/turkey_regions.geojson
new file mode 100644
index 0000000000..70bdbb9485
--- /dev/null
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/turkey_regions.geojson
@@ -0,0 +1,18 @@
+{
+"type": "FeatureCollection",
+"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
+"features": [
+{ "type": "Feature", "properties": { "ISO": "TR1", "NAME_1": "İstanbul" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 29.25367272200009, 40.875474351000037 ], [ 29.144786004000082, 40.914129950000074 ], [ 29.028086785000085, 40.982123114000046 ], [ 29.00757897200009, 41.030503648000035 ], [ 29.062347852000073, 41.076320705000057 ], [ 29.090586785000085, 41.14093659100007 ], [ 29.069102410000085, 41.152777411000045 ], [ 29.16968834700009, 41.233099677000041 ], [ 29.23178 [...]
+{ "type": "Feature", "properties": { "ISO": "TR2", "NAME_1": "Batı Marmara" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 26.060557488000086, 39.837591864000046 ], [ 26.083018425000091, 39.834947007000039 ], [ 26.074961785000085, 39.784898179000038 ], [ 25.978037957000083, 39.834173895000049 ], [ 26.060557488000086, 39.837591864000046 ] ] ], [ [ [ 26.012217644000089, 40.166571356000077 ], [ 26.012217644000089, 40.146063544000071 ], [ 25.990244988000086, 40.1369082700000 [...]
+{ "type": "Feature", "properties": { "ISO": "TR3", "NAME_1": "Ege" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 29.261204804558076, 36.293578581086649 ], [ 29.234629754000082, 36.324286200000074 ], [ 29.158457879000082, 36.356756903000075 ], [ 29.144704623000052, 36.349310614000046 ], [ 29.144704623000052, 36.377183335000041 ], [ 29.096364780000044, 36.39093659100007 ], [ 29.130381707000083, 36.411363023000035 ], [ 29.124196811000047, 36.453599351000037 ], [ 29.09636478000004 [...]
+{ "type": "Feature", "properties": { "ISO": "TR4", "NAME_1": "Doğu Marmara" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 30.863573845856308, 40.142795519297749 ], [ 30.906671990619827, 40.100575872778279 ], [ 30.922071567648686, 40.020012315116219 ], [ 30.945739373972913, 40.014637966568898 ], [ 31.081648390260966, 40.048124294900276 ], [ 31.191099074063004, 40.02409475426947 ], [ 31.246909620682402, 40.057710272910754 ], [ 31.389123163303339, 40.056883449711393 ], [ 31.43077 [...]
+{ "type": "Feature", "properties": { "ISO": "TR5", "NAME_1": "Batı Anadolu" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 34.148954705595145, 37.155019232851316 ], [ 34.002710401563775, 37.128819281884319 ], [ 33.870625441111201, 37.057738349445231 ], [ 33.761174758208483, 37.031435044791465 ], [ 33.619374626737624, 37.031796779997364 ], [ 33.539999626581505, 37.006578680961354 ], [ 33.371947869998166, 36.98800100414303 ], [ 33.232731560912782, 36.918005276422321 ], [ 33.20069 [...]
+{ "type": "Feature", "properties": { "ISO": "TR6", "NAME_1": "Akdeniz" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 36.659562625000092, 36.827243022000104 ], [ 36.639861288000077, 36.828089091000024 ], [ 36.643271932000061, 36.803646139000065 ], [ 36.603274374000137, 36.746957093000063 ], [ 36.569271281000056, 36.62014312700002 ], [ 36.565343872000085, 36.532499899000115 ], [ 36.531237427000065, 36.479014791000068 ], [ 36.552734823000094, 36.408166403000038 ], [ 36.5933524980 [...]
+{ "type": "Feature", "properties": { "ISO": "TR7", "NAME_1": "Orta Anadolu" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 34.512240025256915, 37.351983953996239 ], [ 34.489088982870214, 37.394927070028245 ], [ 34.389146762712926, 37.486471868781678 ], [ 34.394107700110226, 37.561066798693787 ], [ 34.456842888888218, 37.660311387760316 ], [ 34.445474074169169, 37.717129624732365 ], [ 34.300470005386444, 37.87528534584203 ], [ 34.20631554492644, 37.909934394156949 ], [ 34.173139 [...]
+{ "type": "Feature", "properties": { "ISO": "TR8", "NAME_1": "Batı Karadeniz" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 36.705181105423662, 40.862493191507554 ], [ 36.687507765271107, 40.836009019700498 ], [ 36.698876580889475, 40.806811835198005 ], [ 36.946820103365042, 40.720253811364273 ], [ 37.013379347079194, 40.698937283428847 ], [ 37.21967166471552, 40.697697048180203 ], [ 37.448804966376088, 40.575947374571683 ], [ 37.584093865939167, 40.569384466719725 ], [ 37.634 [...]
+{ "type": "Feature", "properties": { "ISO": "TR9", "NAME_1": "Doğu Karadeniz" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 39.833982375186451, 40.561012885536229 ], [ 39.867365349831005, 40.413580023998861 ], [ 39.860027297421823, 40.266948147239191 ], [ 39.811451450424101, 40.14395823838197 ], [ 39.869122349017175, 40.014818833722188 ], [ 39.78788699688738, 39.934797879318637 ], [ 39.622005649740913, 39.893766791204428 ], [ 39.385430942883659, 39.893327542532063 ], [ 39.2664 [...]
+{ "type": "Feature", "properties": { "ISO": "TRA", "NAME_1": "Kuzeydoğu Anadolu" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 44.45825019369147, 39.642520089430548 ], [ 44.414012085000138, 39.560893860000036 ], [ 44.404813680000132, 39.434389954000082 ], [ 44.316963745000066, 39.385297343000033 ], [ 44.269524781000086, 39.382868551000072 ], [ 44.176507203000085, 39.411548971000073 ], [ 44.061372111000139, 39.400283508000101 ], [ 44.01486332200011, 39.374083557000077 ], [ 44.0 [...]
+{ "type": "Feature", "properties": { "ISO": "TRB", "NAME_1": "Ortadoğu Anadolu" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 38.147677036166272, 39.072576606125438 ], [ 38.361720819160439, 39.150272122360548 ], [ 38.440889112842285, 39.119524645146214 ], [ 38.580932245126974, 39.101954657781221 ], [ 38.687902459330985, 39.022967231252721 ], [ 38.745676710711621, 39.03777252907895 ], [ 38.720355258888048, 39.157868557188124 ], [ 38.755598586405597, 39.172596339749248 ], [ 38.7 [...]
+{ "type": "Feature", "properties": { "ISO": "TRC", "NAME_1": "Güneydoğu Anadolu" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 37.522143502026204, 36.67359952678661 ], [ 37.446116984000128, 36.634199117000051 ], [ 37.241891724000141, 36.658590393000068 ], [ 37.104432414000087, 36.650993957000097 ], [ 37.053066040000147, 36.619936422000066 ], [ 37.014515422000045, 36.642260641000021 ], [ 37.018442831000129, 36.70664947500002 ], [ 36.964699341000141, 36.753830058000048 ], [ 36.6 [...]
+]
+}