superset/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb

2217 lines
1.8 MiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Generate GeoJSON from Natural Earth Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Install Dependencies"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```\n",
"pip install geopandas shapely matplotlib\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Download Data\n",
"\n",
"Download datasets (_Admin 0 - Countries_ in [1:10](https://www.naturalearthdata.com/downloads/10m-cultural-vectors/), and _Admin 1 States, Provinces_ in 1:10 and [1:50](https://www.naturalearthdata.com/downloads/50m-cultural-vectors/)) from Natural Earch Data:"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 1,
"metadata": {},
"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"
]
}
],
"source": [
"import os\n",
"import requests\n",
"\n",
"data_dir = os.path.expanduser(\"~/Downloads\")\n",
"if not os.path.exists(data_dir):\n",
" os.mkdir(data_dir)\n",
"\n",
"def download_files(skip_existing=True):\n",
" for url in [\n",
" \"https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip\",\n",
" \"https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_1_states_provinces.zip\",\n",
" \"https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_1_states_provinces.zip\"\n",
" ]:\n",
" file_name = url.split('/')[-1]\n",
" full_file_name = f'{data_dir}/{file_name}'\n",
" with requests.get(\n",
" url,\n",
" headers={\n",
" \"accept-encoding\": \"gzip, deflate, br\",\n",
" \"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36\"\n",
" },\n",
" stream=True,\n",
" ) as res:\n",
" file_size = int(res.headers['content-length'])\n",
" if res.status_code != 200:\n",
" print(\"Error downloading files. Please open the URL to download them from browser manually.\")\n",
" break\n",
" if (\n",
" skip_existing and\n",
" os.path.exists(full_file_name) and\n",
" file_size == os.path.getsize(full_file_name)\n",
" ):\n",
" print(f\"Skip {file_name} because it already exists\")\n",
" continue\n",
" print(f\"Downloading {file_name}... \\r\", end=\"\")\n",
" with open(full_file_name, \"wb\") as fh:\n",
" fh.write(res.content)\n",
" print(\"Done. \")\n",
"\n",
"download_files(skip_existing=True)"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import geopandas as gpd\n",
"import matplotlib.pyplot as plt\n",
"import shapely\n",
"\n",
"df_admin0_10m = gpd.read_file(f\"{data_dir}/ne_10m_admin_0_countries.zip\")\n",
"df_10m = gpd.read_file(f\"{data_dir}/ne_10m_admin_1_states_provinces.zip\")\n",
"df_50m = gpd.read_file(f\"{data_dir}/ne_50m_admin_1_states_provinces.zip\")"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 3,
"metadata": {},
"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_TR', 'FCLASS_ID', 'FCLASS_PL', 'FCLASS_GR', 'FCLASS_IT',\n",
" 'FCLASS_NL', 'FCLASS_SE', 'FCLASS_BD', 'FCLASS_UA', 'geometry'],\n",
" dtype='object', length=121)"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_50m.columns"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['featurecla', 'scalerank', 'labelrank', 'sovereignt', 'sov_a3',\n",
" 'adm0_dif', 'level', 'type', 'admin', 'adm0_a3',\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=162)"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_admin0_10m.columns = df_admin0_10m.columns.str.lower()\n",
"df_admin0_10m.columns"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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_TR</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>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 × 120 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_TR FCLASS_ID FCLASS_PL \\\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_GR FCLASS_IT FCLASS_NL FCLASS_SE \\\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_BD FCLASS_UA 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 120 columns]"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_50m.groupby('admin').count()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAI/CAYAAABAqYlRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACnzklEQVR4nOzdd3gc1bkG8Hdme99V79VFLnKV5YINptcAoV4IgZBACCE9uemk3PRCElIhAZIQCL33AMHGGFwk9yI39V52V1ptL3P/WFlYVpe2Su/vSR6s3dmZb2XLnnfPOd8RJEkCERERERERjU6MdwFERERERESJjsGJiIiIiIhoHAxORERERERE42BwIiIiIiIiGgeDExERERER0TgYnIiIiIiIiMYhj+XF0tLSpKKiolhekoiIiIiIaEKqq6u7JUlKH+m5mAanoqIiVFVVxfKSREREREREEyIIQsNoz3GqHhERERER0TgYnIiIiIiIiMbB4ERERERERDQOBiciIiIiIqJxMDgRERERERGNg8GJiIiIiIhoHAxORERERERE42BwIiIiIiIiGgeDExERERER0TgYnIiIiIiIiMbB4ERERERERDQOBiciIiIiIqJxMDgRERERERGNg8GJiIiIiIhoHAxORERERERE42BwIiIiIiIiGgeDExERERER0TgYnIiIiIiIiMbB4ERERERERDQOBiciIiIiIqJxMDgRERERERGNg8GJiIiIiIhoHAxORFMUCknwBULxLoOIiIiIYoDBiWiSet1+/Omd4/jO8/sRCDE4EREREc0G8ngXQJRMth7vxlee3IOOPi8A4O3DnVhRYMGKQjNWFFiwONcEtUIW5yqJiIiIKNIYnIgm6MmdTfj2c/sRCEmDj3U6vHj9YDteP9g++FhlUQqe/Mza8PN9HkgA0vQqyEQh1iUTERERUYQwOBGNY39zL+558wg2Heka8zhBANYUp+KbF5cBADYf7cKnH66CNxBCplGFz58zFzetKYxFyUREREQUYQxONKuEQhJ63X5YdMoxj/MFQvhvTQce29GEzUfHDkwAsDTfjAdvqUCaXoVOhwffeHofnqhqGny+o8+LAy29w14XCIbQYHWhp98HAKjr7sfhNgfyLBqUZRlRmKpFr9uPdIMKmUb1JN8tEREREUWKIEnS+EdFSEVFhVRVVRWz6xGdVN/txJNVTXhh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
"text/plain": [
"<Figure size 1440x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df_50m[df_50m.adm0_a3 == 'USA'].plot(figsize=(20,10))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use 1:50m geometry for some large countries:"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Australia', 'Brazil', 'Canada', 'United States of America',\n",
" 'China', 'India', 'Indonesia', 'Russia', 'South Africa'],\n",
" dtype=object)"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_50m['admin'].unique()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.concat([df_10m[~df_10m['admin'].isin(df_50m['admin'].unique())], df_50m])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Adjust the Maps\n",
"\n",
"<span style=\"color: red; font-size: 1.5em\">TO SUPPORT NEW COUNTRIES, ADD COUNTRY NAME BELOW</span>"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"# Country names used in file names\n",
"countries = [\n",
" 'aland',\n",
" 'australia',\n",
" 'belgium',\n",
" 'brazil',\n",
" 'bulgaria',\n",
2022-02-16 18:45:11 -05:00
" 'burundi',\n",
" 'canada',\n",
" 'china',\n",
" 'denmark',\n",
" 'egypt',\n",
" 'estonia',\n",
2022-02-16 18:45:11 -05:00
" 'ethiopia',\n",
" 'france',\n",
" 'finland',\n",
" 'germany',\n",
" 'iceland',\n",
" 'india',\n",
" 'indonesia',\n",
" 'iran',\n",
" 'italy',\n",
" 'japan',\n",
2022-02-16 18:45:11 -05:00
" 'kenya',\n",
" 'korea',\n",
" 'liechtenstein',\n",
" 'malaysia',\n",
" 'mexico',\n",
" 'morocco',\n",
" 'myanmar',\n",
" 'netherlands',\n",
2022-02-16 18:45:11 -05:00
" 'nigeria',\n",
" 'norway',\n",
" 'portugal',\n",
" 'poland',\n",
" 'russia',\n",
2022-02-16 18:45:11 -05:00
" 'rwanda',\n",
" 'singapore',\n",
" 'slovenia',\n",
" 'spain',\n",
" 'sweden',\n",
" 'switzerland',\n",
" 'syria',\n",
2022-02-16 18:45:11 -05:00
" 'tanzania',\n",
" 'thailand',\n",
" 'timorleste',\n",
2022-02-16 18:45:11 -05:00
" 'uganda',\n",
" 'uk',\n",
" 'ukraine',\n",
" 'uruguay',\n",
" 'usa',\n",
" 'zambia',\n",
"]\n",
"\n",
"# country name used in dataset\n",
"country_name_aliases = {\n",
" \"uk\": \"united kingdom\",\n",
" \"usa\": \"united states of america\",\n",
" \"korea\": \"south korea\",\n",
" \"timorleste\": \"east timor\",\n",
2022-02-16 18:45:11 -05:00
" \"tanzania\": \"united republic of tanzania\",\n",
"}\n",
"\n",
"# Make sure all country names are covered:\n",
"invalid_countries = [x for x in countries if country_name_aliases.get(x, x) not in df[\"admin\"].str.lower().unique()]\n",
"if invalid_countries:\n",
" print(f\"Following country names are not valid: {invalid_countries}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Preview all countries:"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 10,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
2022-02-16 18:45:11 -05:00
"image/png": "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
"text/plain": [
2022-02-16 18:45:11 -05:00
"<Figure size 1440x1440 with 50 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"alt_maps = dict()\n",
"\n",
"def get_gdf(country):\n",
" country_alias = country_name_aliases.get(country, country)\n",
" if country in alt_maps:\n",
" gdf = alt_maps[country]\n",
" else:\n",
" gdf = df[df[\"admin\"].str.lower() == country_alias]\n",
" return gdf.copy()\n",
"\n",
"def plot_all_countries():\n",
" plt.figure(figsize=(20, 20))\n",
"\n",
" for i, country in enumerate(countries):\n",
" # create subplot axes in a 3x3 grid\n",
" ax = plt.subplot(len(countries) // 5, 6, i + 1) # nrows, ncols, axes position\n",
" get_gdf(country).plot(ax=ax)\n",
" ax.set_title(country)\n",
" ax.set_aspect('equal', adjustable='datalim')\n",
" \n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"plot_all_countries()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Handle countries with flying islands\n",
"\n",
"#### USA"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For countries with flying islands, we need to move the islands closer to the mainland."
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWcAAAD4CAYAAAAw/yevAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA+AklEQVR4nO3dd5xkVZn4/8+p2NXVOecwOceeGYacHRDBAAgqoOKX1UVX1FVYw67Lb4O6rmJalV0DiC6oqLCogJLzTE/OuXPOqbri+f1R1U33dKjQ1V1V3c/79eqZqntvVZ07t+epc094jtJaI4QQIr4YYl0AIYQQE0lwFkKIOCTBWQgh4pAEZyGEiEMSnIUQIg6Z5vLDcnJydEVFxVx+pBBCxK3du3d3aK1zJ9s3p8G5oqKC6urqufxIIYSIW0qp2qn2SbOGEELEIQnOQggRhyQ4CyFEHJLgLIQQcUiCsxBCxCEJzkIIEYckOAshRByS4CyEEHFoTiehiMn5fJpf7awjNcnEpcvzSLeZY10kIUSMSXCOsfquIe5/6gh/OdIKQFqSiftvWIPL66NnyMXHLlyEwaBiXEohxFwLGpyVUsuBx8ZsWgT8I/BwYHsFUAPcrLXujn4R54dXT3bw1IEmVhWl0T3oprZzkPYBJ6+f7sTre3s1msrcFB56o4a9dT1YjAYON/WRmWxhd203XYMujAZFdoqFr713HcsLUmN4RkKI2aTCWaZKKWUEGoFtwN1Al9b6a0qp+4BMrfW9072+qqpKL7TcGnvqunnuaCvt/U6e3N/EsNsXlffdsbqAy1fkccXKPIZcXo4097E4N4W2/mGaeobJsptZW5xBTooFpaTmLUQ8Ukrt1lpXTbYv3GaNK4DTWutapdQNwKWB7Q8BLwLTBuf5TmvNnw+1AHCmfYBdNd28dKKddJuZJLMhaoEZ4OnDLTx9uCXocdsqs7CajdywvohVRWmkWE043F7sVhPZdgtJZmPUyiSEiJ5wg/MtwP8GHudrrZsDj1uA/KiVKgENOj3c+/gBnjrQPGFfr8NNryMGhQLeOtsFwMsn2ifsMyi4eFkum8oyyUw2c7Sln8ZuB829DhSKJXkp3Lq1jAuX5sx1sYVY8EJu1lBKWYAmYLXWulUp1aO1zhizv1trnTnJ6+4C7gIoKyvbXFs7ZYa8hNU37ObmH73BsZb+WBdlVizJS+H8xdncXFVKaWYy6ckymkSIaJiuWSOccc7XAHu01q2B561KqcLABxQCbZO9SGv9oNa6SmtdlZs7aU7phPd/+5vmbWAGONU2wMNv1HLd917lqYNNsS6OEAtCOMH5Vt5u0gB4Ergj8PgO4IloFSpRaK156kAT//LU0VgXRQgxz4TU5qyUsgNXAX8zZvPXgF8rpe4EaoGbo1+8+FDfNUTHgBOTwUC/001L7zCtfU7+cqSFPXU9sS6eEGIeCik4a60HgexztnXiH70x7337ryf43Z7GWBdDCLGAyAzBaWitefNMF88cCj5kTQghokkSH01DKcX2xdk88ckLeX9VKQVpSbEukhBigZCacwiW5KXw9RvX4fX5OwC/9/wpTrUNxLpYQoh5TGrOYTAaFDdsKOaZey7me7duJFPG+wohZokE5wgYDYp3rS/iX9+zNtZFEULMU9KsMQPXrCng6+9by8snOugadJFsMaKB4y39NPbEaL62EGJekJrzDCileP+WMn7wwU38713nkW4z85ELKmJdLCHEPCA15zBorekcdPHEviaONPWRmmTii9euxGLyf8d96/0b2FvXzW3byznW3MeHL6ikqcfBd/56kuOt83d6txAi+iQ4h8Dh8lBd083nfrOftn7n6PZPX7F0NDCPWF2UTt+wh45+J3c9XE2azUxNx+BcF1kIkeAkOE/jSFMf9z91mMNNfRRn2GgfcI7b/5NXz3KkuQ+jUhgNitQkEyaj4sXj7TR0+9ucxwZzIYQIlQTnc5xpH6C6tpsfv3Sa2s4hPIElpCbLOjfg9Iyu/SeEENEkHYLnsJgMnGkfRClF6At4CSFEdEnN+Rwlmcncd80K7rtmBV2DLp493MJ//uUE7dI8IYSYQ1JznkaK1cTZzsGIAnNFdjKpVvnuE0JERoLzNCwmAx/YWkZOimXCPpNBkWwxohQUpfsTIqXbzHzq8iU8c8/FPPOZi7nv2hVzXWQhxDwhVbsgyrPt7PrSlbQPODndNsjJtn42lGawsjANs9FA16CLE6397K7t5j0biynKsKG15hdv1vLvfzoW6+ILIRKUBOcQKKXIS00iLzWJ7YvHrTlAlt3CeYuyOW9R9rjjb99ewZ7abv6wT9bcE0KET5o1ZtENG4tjXQQhRIJaMDXnF461sbu2mzXFaRxs7KWtz8mXr1tFui16aT+9Po3b6yPJbMTp8fL0QVlBRQgRmQUTnLNTLDT1OFhXkk5lTgqvnurkmgdeZseaQpblp7A4L4UtFVkhv5/Pp9H404eOPP/i7w7yysl20pMtNHQP0T/smaWzEULMdwsmOK8ryeBb798w+vyaNQX89Wgrj+6s5/IVeWHVoJt7Hdz84zfoHnRzz5VLKclM5vsvnORQYx8ATb3D0S6+EGKBWTDB+Vx2q4kbNhRz7dpCzMbwmt7f/+M3qe/y5874lz8enY3iCSEWuAXfIRhuYN5b1032JOOehRAimhZszTkS//XiKb7x9PFYF0MIsQAs+JpzqPbUdUtgFkLMGQnOIRhyeXj49ZpYF0MIsYBIcA7BidYB6rsTZ8HWTWUZo0P8hBCJSdqcQ7ChNIPPXb2Mex8/QOeAiyGXN9ZFGic1ycRHLqjEbjHS3DvMY7vq8frGZ6NOsZoYcPrHXSsFWpJVCxHXJDiH6PzFOfz50xfzzKEWfvDCKRp6HOSlWhl0eugecsekTFaTgbsvW8J7NhbT0jfM88faWFuczsHGXvocbk62DWAzG/nWzev58ctnKM9OZll+KsNuLz9++Qwujy8m5RZCBBdScFZKZQD/A6wBNPBR4DjwGFAB1AA3a627Z6OQkdJao1T0bu/tFiM1nYM09ji4+9IlmIwKh8vL9184NXpMSaZtdP3A2WQyKO65chm3by/nIz/bxc6arkmPW1aQyobSDP5w9wWj25p6HDhcXnbVdLG/oRcAm9mIwx1fdwRCLGSh1py/Azyttb5RKWUBkoEvAs9prb+mlLoPuA+4d5bKGZG/Hm3DaIAtFVmkJkWWQ6Otf5g+h5uyLDsen48hlxenx8e3/3piwrFXrMjjlZMdMy12SO7dsYJ3byxGKaYMzAAd/U4efrOWd6wuYH1JOsNuH7tqurhmbQE3VpXw3edOUpRh48Xj7ZxqGwi7HG6vD62ZsAq5EGJmlA7S+KiUSgf2AYv0mIOVUseBS7XWzUqpQuBFrfXy6d6rqqpKV1dXz7zUYdBa4/HpsCeb/HZ3A6+cbOfJ/U1oDZvLM3n8E+cDcKChhzsfqh63QorRoPjPm9bz+d/ux+2dvQbddJuZT1y6mLsuWoTBoPifV85MOkvRaFB4fRqL0cC33r+ekgwbZzsHKUy3sTQvhSy7ZfSuwuP1saumm+ePtfLwG7U4PT6SLUbSksz0OtyjNWqryUBGsplVhWnYLEaGXF5ePN7O1967llu2ls3aOQsxXymldmutqybbF0rNuRJoB36mlFoP7AY+DeRrrZsDx7QA+VN8+F3AXQBlZXP/H1gphdkYftPGdesK8WlNU4+D+i4HFdl23F4fZqOBdSUZ/PHvLuT6773GoNPD0vwU3rOphCtX5fOu9UX8bk/jLJyJ37qSdLZVZmEwKA409PCvf5oYmK9cmc+X3rmSnWc7Kcuys64knUd31bOqMG1c3ukRJqOBqopMCtKTeM/GEvLSrGQHgrfPp2nscXCitZ+zHYP8+5+P8cLxdgDWFKfx7g1FPH24hcIMG5csy5218xZioQml5lwFvAlcoLV+Syn1HaAP+JTWOmPMcd1a68zp3isWNedoGHZ7STIbQzq2rW+Y87/2PB5fdGvPBWlJfPrKpWypyGJJXgoANR2D/G5vI9U1Xbx5ppOcFCufunwJ799SNmvNDB0DTg409JBiNbMsP4W
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"usa = df[df['adm0_a3'] == 'USA']\n",
"usa.plot()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def reposition(df, idx, xoff=None, yoff=None, xscale=None, yscale=None, simplify=None):\n",
" \n",
" def move_and_scale(series):\n",
" if xoff or yoff:\n",
" series = shapely.affinity.translate(series, xoff or 0, yoff or 0)\n",
" if xscale or yscale:\n",
" series = shapely.affinity.scale(series, xscale or 1, yscale or 1)\n",
" if simplify:\n",
" series = series.simplify(simplify, preserve_topology=False)\n",
" return series\n",
" \n",
" df.loc[idx, 'geometry'] = df.loc[idx, 'geometry'].apply(move_and_scale)\n",
"\n",
"\n",
"usa_copy = usa.copy()\n",
"reposition(usa_copy, usa.name == 'Hawaii', 51, 5.5)\n",
"reposition(usa_copy, usa.name == 'Alaska', 35, -34, 0.35, 0.35)\n",
"\n",
"usa_copy.plot(figsize=(8,8))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### China\n",
"\n",
"China claims sovereign over Taiwan. For disputed territories, we respect each country and give them what they want.\n",
"\n",
"In addition, Hong Kong and Macau should also be included in a China map."
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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]"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Chinese Special Administrative Regions\n",
"china_sars = df_admin0_10m.loc[\n",
" df_admin0_10m.name_en.isin(['Taiwan', 'Hong Kong', 'Macau']),\n",
" [x for x in df_admin0_10m.columns if x in df.columns]\n",
"]\n",
"china_sars = china_sars.merge(pd.DataFrame(\n",
" data={ \n",
" \"name_en\": [\"Taiwan\", \"Hong Kong\", \"Macau\"],\n",
" \"name_zh\": [\"中国台湾\", \"香港特别行政区\", \"澳门特别行政区\"],\n",
" \"iso_3166_2\": [\"CN-71\", \"CN-91\", \"CN-92\"],\n",
" },\n",
"), on=\"name_en\", how=\"left\")\n",
"china_sars"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 14,
"metadata": {
"scrolled": false
},
"outputs": [
2022-02-16 18:45:11 -05:00
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/yk/yj8t31wd1sd_9w0f9cfg5jv80000gn/T/ipykernel_82121/3440732423.py:2: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
" china_copy = china.append(china_sars)\n"
]
},
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x864 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"china = df[df.admin == \"China\"]\n",
"china_copy = china.append(china_sars)\n",
"china_copy[\"name_zh\"] = china_copy[\"name_zh\"].combine_first(china_copy[\"name_zh_y\"])\n",
"china_copy = china_copy.drop([\"name_zh_x\", \"name_zh_y\"], axis=1)\n",
"china_copy.plot(figsize=(12, 12))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note [ISO-3166-2:CN](https://en.wikipedia.org/wiki/ISO_3166-2:CN) has updated subdivisions to use letters instead of numbers (e.g. `CN-91` -> `CN-HK`). We kept the numeric code for backward compatibility."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Finland\n",
"\n",
"The Åland Islands (ISO country code AX) is an autonomous region of Finland, and carries the ISO-3166 code FI-01. "
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"finland_aland = df_admin0_10m.loc[\n",
" df_admin0_10m.name_en.isin(['Åland Islands']),\n",
" [x for x in df_admin0_10m.columns if x in df.columns]\n",
"]\n",
"finland_aland = finland_aland.merge(pd.DataFrame(\n",
" data={ \n",
" \"name_en\": [\"Åland Islands\"],\n",
" \"name_fi\": [\"Ahvenanmaan maakunta\"],\n",
" \"iso_3166_2\": [\"FI-01\"],\n",
" },\n",
"), on=\"name_en\", how=\"left\")\n"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 16,
"metadata": {},
"outputs": [
2022-02-16 18:45:11 -05:00
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/yk/yj8t31wd1sd_9w0f9cfg5jv80000gn/T/ipykernel_82121/642512976.py:2: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
" finland_copy = finland.append(finland_aland)\n"
]
},
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x864 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"finland = df[df.admin == \"Finland\"]\n",
"finland_copy = finland.append(finland_aland)\n",
"finland_copy[\"name_fi\"] = finland_copy[\"name_fi\"].combine_first(finland_copy[\"name_fi\"])\n",
"finland_copy = finland_copy.drop([\"name_fi\"], axis=1)\n",
"finland_copy.plot(figsize=(12, 12))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Norway\n",
"\n",
"Remove NO-X01~ (The uninhabited Bouvet Island) and move Svalbard closer to mainland"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"norway = df[df['adm0_a3'] == 'NOR']\n",
"norway.plot()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"norway_copy = norway.copy()\n",
"norway_copy = norway_copy[norway_copy[\"iso_3166_2\"] != \"NO-X01~\"]\n",
"reposition(norway_copy, norway.name == 'Svalbard', -12, -8, 0.5, 0.5)\n",
"#reposition(norway_copy, norway.name == 'Nordland', 10, 0, 2, 2)\n",
"\n",
"norway_copy.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Portugal"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"portugal = df[df.admin == 'Portugal']\n",
"portugal.plot()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"portugal_copy = portugal.copy()\n",
"reposition(portugal_copy, portugal.name == 'Azores', 11, 0)\n",
"reposition(portugal_copy, portugal.name == 'Madeira', 6, 2, simplify=0.015)\n",
"portugal_copy.plot(figsize=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Spain"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spain = df[df.admin == 'Spain']\n",
"spain.plot()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spain_copy = spain.copy()\n",
"reposition(spain_copy, spain.name.isin(['Las Palmas', 'Santa Cruz de Tenerife']), 3, 7, 1, 1)\n",
"spain_copy.plot(figsize=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Russia"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"russia = df[df.admin == 'Russia']\n",
"russia.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Russia looks off because of Chukchi runs across E180. We need to move the parts on the other side of the map to the right."
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2022-02-16 18:45:11 -05:00
"/var/folders/yk/yj8t31wd1sd_9w0f9cfg5jv80000gn/T/ipykernel_82121/127064943.py:6: ShapelyDeprecationWarning: Iteration over multi-part geometries is deprecated and will be removed in Shapely 2.0. Use the `geoms` property to access the constituent parts of a multi-part geometry.\n",
" for item in splitted_geom:\n"
]
},
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1440x1440 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def shift_geom(geom, cutoff=0):\n",
" border = shapely.geometry.LineString([(cutoff,-90),(cutoff, 90)])\n",
" splitted_geom = shapely.ops.split(geom, border)\n",
" moved_geom = []\n",
"\n",
" for item in splitted_geom:\n",
" minx, miny, maxx, maxy = item.bounds\n",
" if minx < cutoff:\n",
" moved_geom.append(shapely.affinity.translate(item, xoff=cutoff + 360))\n",
" else:\n",
" moved_geom.append(item)\n",
"\n",
" # got `moved_geom` as the moved geometry \n",
" return shapely.ops.unary_union(moved_geom)\n",
"\n",
"russia_copy = russia.copy()\n",
"russia_copy.loc[\n",
" russia.name == 'Chukchi Autonomous Okrug', 'geometry'\n",
"] = russia_copy.loc[\n",
" russia.name == 'Chukchi Autonomous Okrug', 'geometry'\n",
"].apply(shift_geom)\n",
"\n",
"russia_copy = russia_copy\n",
"\n",
"russia_copy.plot(figsize=(20, 20))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### France"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"france = df[df.admin == 'France']\n",
"france.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ignore all the oversea islands"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def apply_bounds(df, northwest, southeast):\n",
" x1, y1 = northwest\n",
" x2, y2 = southeast\n",
" boundry = shapely.geometry.Polygon([(x1, y1),(x1, y2), (x2, y2), (x2, y1)])\n",
" df = df.copy()\n",
" return df[df.geometry.apply(lambda x: boundry.contains(x))]\n",
"\n",
"france_copy = apply_bounds(france, (-20, 60), (20, 20))\n",
"france_copy.plot(figsize=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Netherlands"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD0CAYAAACLpN0/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAASsElEQVR4nO3dfZBd9X3f8fcHPYJ4kGQtqozAwgTHpfEgmEVxhtStce04xAM4k3rcug4dM6MkE7fO1LUNptM647oTp7FJOnWdyg+xmpBgYpviMHkwwdCMPQ32goUQBoyMYSxZ1i5YAoFgQdpv/7hH9UbZ1b272rt7dXi/Zu7sOb9zzt6PpKvPnvu75+5NVSFJOvGdtNABJElzw0KXpJaw0CWpJSx0SWoJC12SWsJCl6SW6KnQkzyW5P4k25KMNGMfSrK7GduW5PL+RpUkHcviGez7+qp64qixG6rqd+YykCRpdmZS6MdtzZo1tWHDhvm8S0k64d1zzz1PVNVQt/16LfQCvpKkgP9ZVVua8Xcn+WVgBHhvVe071jfZsGEDIyMjPd6lJAkgyeO97Nfri6I/W1UXAz8P/HqS1wGfBM4DNgJ7gI9NE2RzkpEkI2NjYz3enSRppnoq9Kra3XwdBW4BNlXV3qo6XFUTwKeATdMcu6WqhqtqeGio6zMGSdIsdS30JCuSnHZkGXgTsCPJukm7vRXY0Z+IkqRe9DKHvha4JcmR/f+4qv4yyR8m2Uhnfv0x4Ff6FVKS1F3XQq+qR4ELpxh/Z18SSZJmxXeKSlJLWOiS1BIWuiTNoariqede5NDhiXm/73l9p6gktc2B519k79PPc8rSRXx955N8Z+8Bli0+iW/vOcDogef5L299Da856wyaC0v6ykKXpFm6f9dTnL/2VFaespSrPvF1du17DoB/tO40Fi8+iR27n+aK//51Pv62C/nFi9f3PY+FLkmzsGvfQXbvP8iz44f4D7fu+P9lDjD2zAs898IhXrZiKUOnLeUH+587xneaOxa6JM3CQ3sO8L4/3c6B8UP8zHmrOX35SpYuPomJiWLv0+OMHhiH8cMsWXwS7/jpV8xLJgtdkmbhbx4Z48D4Ic5edTKjT4/z3bFnWXPqUk5KWL/qZNaesZxzVp/CuWtWsGrF0nnJZKFL0gxVFXc/+iMAzjx9Gfc8vp8li8L5Z57GoYkJvvlY5xfPrj19Oa9ae9q85bLQJWmGbvnWbk5ZuohNG1az/+A4/+RVQ+x56jn+76NP8vIzlnPh+jPY89Tz/Nl9P2D/wRd44wVr5yWXhS5JPZqYKO58eJRrv3g/Lxye4ML1Z/C9Jw/yndFnuejsMwD4wVPP84OnngfgXZdu4H0/9+p5y2ehS1KPvrbzCa7Z+uMP6dn/3IsMn7OKh0cP8NRzhwAYfsUqVp6yhNOWL+Gic1Zx8tJF85bPQpekHuzYvZ/tu/azacMqCqiCkcf3cXiiWLFsMY8+8SyvHFrBv/zpc+blmvOp+NZ/SeriS/fu4l2fG+GRvc9w6XlrGDswzq59zzF02jIOvnCY7/+oc515VfE/7vwuu/YdXJCcnqFL0jE8O36IPx3ZxRUbX8727z/FP/3JIT599SWcN7SCfQdf5K6HR/nEnTtJwqpTlrBz9BmWLFqYc+VU1bzd2fDwcPkh0ZJORM+/eJiDLxxm9TTXlO/ad5Abbn+EZUtO4iNX/dSc/u6WJPdU1XC3/ZxykaQeLF+yaNoyB1hz6jKefHac150/NC+/iGsqFrokzYHxFye4YN3pvHzl8gXL0NMcepLHgAPAYeBQVQ0nWQ18HthA5zNF31ZV+/oTU5IG2xmnLOH9b56/a86nMpMz9NdX1cZJ8zjXAndU1fnAHc26JGmBHM+Uy5XA1mZ5K3DVcaeRJM1ar4VewFeS3JNkczO2tqr2NMs/BObnlxVIkqbU63XoP1tVu5OcCdye5KHJG6uqkkx5/WPzA2AzwDnnnHNcYSVJ0+vpDL2qdjdfR4FbgE3A3iTrAJqvo9Mcu6WqhqtqeGhoaG5SS5L+nq6FnmRFktOOLANvAnYAXwaubna7Gri1XyElSd31MuWyFriluVB+MfDHVfWXSb4J3JzkGuBx4G39iylJ6qZroVfVo8CFU4w/CbyhH6EkSTPnO0UlqSUsdElqCQtdklrCQpeklrDQJaklLHRJagkLXZJawkKXpJaw0CWpJSx0SWoJC12SWsJCl6SWsNAlqSUsdElqCQtdklrCQpeklrDQJaklei70JIuSfCvJbc3655J8L8m25raxbyklSV318pmiR7wHeBA4fdLY+6rqC3MbSZI0Gz2doSdZD/wC8On+xpEkzVavUy6/C7wfmDhq/CNJtie5IcmyOU0mSZqRroWe5C3AaFXdc9Sm64BXA5cAq4EPTHP85iQjSUbGxsaON68kaRq9nKFfClyR5DHgJuCyJH9UVXuqYxz4A2DTVAdX1ZaqGq6q4aGhoTkLLkn6u7oWelVdV1Xrq2oD8Hbgq1X1r5KsA0gS4CpgRz+DSpKObSZXuRztxiRDQIBtwK/OSSJJ0qzMqNCr6i7grmb5sj7kkSTNku8UlaSWsNAlqSUsdElqCQtdklrCQpeklrDQJaklLHRJagkLXZJawkKXpJaw0CWpJSx0SWoJC12SWsJCl6SWsNAlqSUsdElqCQtdklrCQpeklrDQJaklei70JIuSfCvJbc36uUnuTrIzyeeTLO1fTElSNzM5Q38P8OCk9Y8CN1TVTwD7gGvmMpgkaWZ6KvQk64FfAD7drAe4DPhCs8tW4Ko+5JMk9ajXM/TfBd4PTDTrLwP2V9WhZn0XcNbcRpMkzUTXQk/yFmC0qu6ZzR0k2ZxkJMnI2NjYbL6FJKkHvZyhXwpckeQx4CY6Uy2/B6xMsrjZZz2we6qDq2pLVQ1X1fDQ0NAcRJYkTaVroVfVdVW1vqo2AG8HvlpV7wDuBH6p2e1q4Na+pZQkdXU816F/APh3SXbSmVP/zNxEkiTNxuLuu/xYVd0F3NUsPwpsmvtIkqTZ8J2iktQSFroktYSFLkktYaFLUktY6JLUEha6JLWEhS5JLWGhS1JLWOiS1BIWuiS1hIUuSS1hoUtSS1joktQSFroktYSFLkktYaFLUktY6JLUEl0LPcnyJN9Icl+SB5L8ZjP+uSTfS7KtuW3se1pJ0rR6+Qi6ceCyqnomyRLga0n+otn2vqr6Qv/iSZJ61bXQq6qAZ5rVJc2t+hlKkjRzPc2hJ1mUZBswCtxeVXc3mz6SZHuSG5Is61dISVJ3PRV6VR2uqo3AemBTkp8CrgNeDVwCrAY+MNWxSTYnGUkyMjY2NjepJUl/z4yucqmq/cCdwJurak91jAN/AGya5pgtVTVcVcNDQ0PHHViSNLVernIZSrKyWT4ZeCPwUJJ1zViAq4Ad/YspSeqml6tc1gFbkyyi8wPg5qq6LclXkwwBAbYBv9q/mJKkbnq5ymU7cNEU45f1JZEkaVZ8p6gktYSFLkktYaFLUktY6JLUEha6JLWEhS5JLWGhS1JLWOiS1BIWuiS1hIUuSS1hoUtSS1joktQSFroktYSFLkktYaFLUktY6JLUEha6JLWEhS5JLdHLh0QvT/KNJPcleSDJbzbj5ya5O8nOJJ9PsrT/cSVJ0+nlDH0cuKyqLgQ2Am9O8lrgo8ANVfUTwD7gmr6llCR11bXQq+OZZnVJcyvgMuALzfhW4Kp+BJQk9aanOfQki5JsA0aB24HvAvur6lCzyy7grL4klCT1pKdCr6rDVbURWA9sAl7d6x0k2ZxkJMnI2NjY7FJKkrqa0VUuVbUfuBP4GWBlksXNpvXA7mmO2VJVw1U1PDQ0dDxZJUnH0MtVLkNJVjbLJwNvBB6kU+y/1Ox2NXBrnzJKknqwuPsurAO2JllE5wfAzVV1W5JvAzcl+c/At4DP9DGnJKmLroVeVduBi6YYf5TOfLokaQD4TlFJagkLXZJawkKXpJaw0CWpJSx0SWoJC12SWsJCl6SWsNAlqSUsdElqCQtdklrCQpeklrDQJaklLHRJagkLXZJawkKXpJaw0CWpJSx0SWqJXj5T9Owkdyb5dpIHkry
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"netherlands = df[df.admin == 'Netherlands']\n",
"netherlands.plot()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"netherlands_copy = apply_bounds(netherlands, (-20, 60), (20, 20))\n",
"netherlands_copy.plot(figsize=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### UK"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"uk = df[df.admin == 'United Kingdom']\n",
"uk.plot()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
2022-02-16 18:45:11 -05:00
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"uk_copy = apply_bounds(uk, (-10, 60), (20, 20))\n",
"uk_copy.plot(figsize=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Output GeoJSON"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"alt_maps = {\n",
" \"finland\": finland_copy,\n",
" \"china\": china_copy,\n",
" \"usa\": usa_copy,\n",
" \"france\": france_copy,\n",
" \"netherlands\": netherlands_copy,\n",
" \"norway\": norway_copy,\n",
" \"uk\": uk_copy,\n",
" \"russia\": russia_copy,\n",
" \"spain\": spain_copy,\n",
" \"portugal\": portugal_copy,\n",
"}"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
2022-02-16 18:45:11 -05:00
"image/png": "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
"text/plain": [
2022-02-16 18:45:11 -05:00
"<Figure size 1440x1440 with 50 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_all_countries()"
]
},
{
"cell_type": "code",
2022-02-16 18:45:11 -05:00
"execution_count": 33,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"aland\tSize 0.913\tSaving geojson for aland...\n",
"australia\tSaving geojson for australia...\n",
"belgium\tSize 7.709\tSaving geojson for belgium...\n",
"brazil\tSaving geojson for brazil...\n",
2022-02-16 18:45:11 -05:00
"bulgaria\tSize 18.715\tSaving geojson for bulgaria...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"burundi\tSize 3.99\tSaving geojson for burundi...\n",
"canada\tSaving geojson for canada...\n",
"china\tSaving geojson for china...\n",
2022-02-16 18:45:11 -05:00
"denmark\t"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Size 22.461\tSaving geojson for denmark...\n",
"egypt\tSize 117.982\tSaving geojson for egypt...\n",
"estonia\tSize 13.694\tSaving geojson for estonia...\n",
2022-02-16 18:45:11 -05:00
"ethiopia\tSize 172.021\tSaving geojson for ethiopia...\n",
"france\t"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Size 142.834\tSaving geojson for france...\n",
"finland\tSize 112.354\tSaving geojson for finland...\n",
2022-02-16 18:45:11 -05:00
"germany\t"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Size 71.47\tSaving geojson for germany...\n",
"iceland\tSize 34.959\tSaving geojson for iceland...\n",
"india\tSaving geojson for india...\n",
2022-02-16 18:45:11 -05:00
"indonesia\tSaving geojson for indonesia...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"iran\tSize 284.014\tSaving geojson for iran...\n",
2022-02-16 18:45:11 -05:00
"italy\t"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Size 138.162\tSaving geojson for italy...\n",
"japan\t"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Size 661.569\tSaving geojson for japan...\n",
"kenya\tSize 77.61\tSaving geojson for kenya...\n",
"korea\tSize 34.227\tSaving geojson for korea...\n",
2022-02-16 18:45:11 -05:00
"liechtenstein\tSize 0.029\tSaving geojson for liechtenstein...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"malaysia\tSize 127.7\tSaving geojson for malaysia...\n",
2022-02-16 18:45:11 -05:00
"mexico\tSize 575.302\tSaving geojson for mexico...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"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",
2022-02-16 18:45:11 -05:00
"nigeria\tSize 115.287\tSaving geojson for nigeria...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"norway\tSize 530.052\tSaving geojson for norway...\n",
"portugal\tSize 105.727\tSaving geojson for portugal...\n",
"poland\tSize 58.556\tSaving geojson for poland...\n",
"russia\tSaving geojson for russia...\n",
2022-02-16 18:45:11 -05:00
"rwanda\tSize 3.59\tSaving geojson for rwanda...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"singapore\tSize 0.067\tSaving geojson for singapore...\n",
"slovenia\tSize 4.537\tSaving geojson for slovenia...\n",
2022-02-16 18:45:11 -05:00
"spain\tSize 178.488\t"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving geojson for spain...\n",
"sweden\tSize 178.774\tSaving geojson for sweden...\n",
"switzerland\tSize 8.935\tSaving geojson for switzerland...\n",
2022-02-16 18:45:11 -05:00
"syria\tSize 33.348\tSaving geojson for syria...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"tanzania\tSize 119.579\tSaving geojson for tanzania...\n",
"thailand\tSize 122.959\t"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving geojson for thailand...\n",
"timorleste\tSize 4.486\tSaving geojson for timorleste...\n",
2022-02-16 18:45:11 -05:00
"uganda\tSize 31.083\tSaving geojson for uganda...\n",
"uk\tSaving geojson for uk...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"ukraine\tSize 128.988\tSaving geojson for ukraine...\n",
"uruguay\tSize 25.985\tSaving geojson for uruguay...\n",
2022-02-16 18:45:11 -05:00
"usa\tSaving geojson for usa...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n",
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"zambia\tSize 115.483\tSaving geojson for zambia...\n",
"Done. \n"
]
2022-02-16 18:45:11 -05:00
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/yann/Library/Python/3.8/lib/python/site-packages/geopandas/io/file.py:362: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
" pd.Int64Index,\n"
]
}
],
"source": [
"simplify_factors = {\n",
" \"uk\": 0.005,\n",
"}\n",
"useful_columns = [\"ISO\", \"NAME_1\", \"geometry\"]\n",
"\n",
"def get_simplify_factor_by_size(gdf):\n",
" xmin, ymin, xmax, ymax = shapely.ops.unary_union(gdf[\"geometry\"]).bounds\n",
" size = (xmax - xmin) * (ymax - ymin)\n",
" print(\"Size\", round(size, 3), end=\"\\t\")\n",
" if size > 1000: return 0.03\n",
" if size > 300: return 0.02\n",
" if size > 100: return 0.01\n",
" return 0\n",
" \n",
"def simplify_if_needed(country, gdf):\n",
" \"\"\"Simplify the maps based on country size\"\"\"\n",
" country_alias = country_name_aliases.get(country, country)\n",
" if country_alias in df_50m[\"admin\"].str.lower().unique():\n",
" return\n",
" \n",
" factor = simplify_factors.get(country) or get_simplify_factor_by_size(gdf)\n",
" \n",
" if factor:\n",
" gdf[\"geometry\"] = gdf.simplify(factor)\n",
"\n",
"def save_geojson(country):\n",
" gdf = get_gdf(country)\n",
" print(country, end=\"\\t\")\n",
" \n",
" # For backward compatibility\n",
" gdf[\"ISO\"] = gdf[\"iso_3166_2\"]\n",
" gdf[\"NAME_1\"] = gdf[\"name\"]\n",
" \n",
" simplify_if_needed(country, gdf)\n",
" \n",
" print(f'Saving geojson for {country}...')\n",
" gdf[useful_columns].to_file(f\"../src/countries/{country}.geojson\", driver=\"GeoJSON\")\n",
"\n",
"for country in countries:\n",
" save_geojson(country)\n",
" \n",
"print(\"Done. \")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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",
2022-02-16 18:45:11 -05:00
"version": "3.8.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}