From 0f6c28e33b9b47a46297898dfe0eca5656ad305d Mon Sep 17 00:00:00 2001 From: pess <147063686+marianamirandapessoa@users.noreply.github.com> Date: Tue, 4 Aug 2026 09:41:28 +0200 Subject: [PATCH] Update .csv and .xlsx files with the Danish cities --- cities/development/european_100000pop.csv | 6 +- .../european_100000pop_comments.xlsx | Bin 33494 -> 33509 bytes cities/european_capitalsand100000pop.csv | 6 +- scripts/check_polygons.ipynb | 104 +++++++++++------- scripts/merge_europeans_csv.ipynb | 92 ++++++++-------- 5 files changed, 119 insertions(+), 89 deletions(-) diff --git a/cities/development/european_100000pop.csv b/cities/development/european_100000pop.csv index 1677b50..851f90d 100644 --- a/cities/development/european_100000pop.csv +++ b/cities/development/european_100000pop.csv @@ -1,5 +1,7 @@ name_en;country_en;nominatim_query;alpha-2;population Aachen;Germany;Aachen;DE;247380 +Aalborg;Denmark;;DK;219476 +Aarhus;Denmark;;DK;352315 Aix-En-Provence;France;Aix-En-Provence;FR;142668 Alcalá De Henares;Spain;Alcalá De Henares;ES;195570 Alchevsk;Ukraine;Alchevsk;UA;105580 @@ -49,8 +51,8 @@ Breda;Netherlands;Breda;NL;180937 Bremen;Germany;Bremen;DE;569352 Bremerhaven;Germany;Bremerhaven;DE;113634 Brescia;Italy;Brescia, Brescia;IT;196605 -Brest;France;Brest;FR;139163 Brest;Belarus;Brest, Belarus;BY;339519 +Brest;France;Brest;FR;139163 Brighton And Hove;United Kingdom;Brighton And Hove;GB;229700 Bristol;United Kingdom;Bristol;GB;535907 Brno;Czech Republic;Brno;CZ;398510 @@ -94,6 +96,7 @@ Emmen;Netherlands;Emmen 16;NL;107775 Enschede;Netherlands;Enschede;NL;158553 Erfurt;Germany;Erfurt;DE;213699 Erlangen;Germany;Erlangen;DE;111962 +Esbjerg;Denmark;;DK;115529 Espoo;Finland;Espoo;FI;292796 Essen;Germany;Essen;DE;583109 Florence;Italy;Florence;IT;365019 @@ -334,6 +337,7 @@ Valencia;Spain;Valencia;ES;788842 Valladolid;Spain;Valladolid;ES;297370 Vantaa;Finland;Vantaa;FI;237231 Varna;Bulgaria;Varna;BG;332394 +Vejle;Denmark;;DK;118028 Venice;Italy;Venice;IT;254014 Venlo;Netherlands;Venlo;NL;100536 Vigo;Spain;Vigo;ES;294650 diff --git a/cities/development/european_100000pop_comments.xlsx b/cities/development/european_100000pop_comments.xlsx index fd9bd37963340581079afc314fab5391dbcb45b9..eb7a29c369520479d78d29aa8e53e484d8004c7a 100644 GIT binary patch delta 20833 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 diff --git a/cities/european_capitalsand100000pop.csv b/cities/european_capitalsand100000pop.csv index 87d02b1..accbd42 100644 --- a/cities/european_capitalsand100000pop.csv +++ b/cities/european_capitalsand100000pop.csv @@ -1,5 +1,7 @@ name_en;country_en;nominatim_query;alpha-2;population Aachen;Germany;Aachen;DE;247380.0 +Aalborg;Denmark;;DK;219476.0 +Aarhus;Denmark;;DK;352315.0 Aix-En-Provence;France;Aix-En-Provence;FR;142668.0 Alcalá De Henares;Spain;Alcalá De Henares;ES;195570.0 Alchevsk;Ukraine;Alchevsk;UA;105580.0 @@ -56,8 +58,8 @@ Breda;Netherlands;Breda;NL;180937.0 Bremen;Germany;Bremen;DE;569352.0 Bremerhaven;Germany;Bremerhaven;DE;113634.0 Brescia;Italy;Brescia, Brescia;IT;196605.0 -Brest;France;Brest;FR;139163.0 Brest;Belarus;Brest, Belarus;BY;339519.0 +Brest;France;Brest;FR;139163.0 Brighton And Hove;United Kingdom;Brighton And Hove;GB;229700.0 Bristol;United Kingdom;Bristol;GB;535907.0 Brno;Czech Republic;Brno;CZ;398510.0 @@ -107,6 +109,7 @@ Emmen;Netherlands;Emmen 16;NL;107775.0 Enschede;Netherlands;Enschede;NL;158553.0 Erfurt;Germany;Erfurt;DE;213699.0 Erlangen;Germany;Erlangen;DE;111962.0 +Esbjerg;Denmark;;DK;115529.0 Espoo;Finland;Espoo;FI;292796.0 Essen;Germany;Essen;DE;583109.0 Florence;Italy;Florence;IT;365019.0 @@ -369,6 +372,7 @@ Valencia;Spain;Valencia;ES;788842.0 Valladolid;Spain;Valladolid;ES;297370.0 Vantaa;Finland;Vantaa;FI;237231.0 Varna;Bulgaria;Varna;BG;332394.0 +Vejle;Denmark;;DK;118028.0 Venice;Italy;Venice;IT;254014.0 Venlo;Netherlands;Venlo;NL;100536.0 Vienna;Austria;Vienna;AT;1897491.0 diff --git a/scripts/check_polygons.ipynb b/scripts/check_polygons.ipynb index a852d77..5ccaa3f 100644 --- a/scripts/check_polygons.ipynb +++ b/scripts/check_polygons.ipynb @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 132, + "execution_count": 2, "id": "0428d630", "metadata": {}, "outputs": [], @@ -2891,7 +2891,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "0dd20ddc", "metadata": {}, "outputs": [ @@ -2934,6 +2934,22 @@ " \n", " \n", " 1\n", + " Aalborg\n", + " Denmark\n", + " Aalborg Municipality\n", + " DK\n", + " 219476\n", + " \n", + " \n", + " 2\n", + " Aarhus\n", + " Denmark\n", + " Aarhus Municipality\n", + " DK\n", + " 352315\n", + " \n", + " \n", + " 3\n", " Aix-En-Provence\n", " France\n", " Aix-En-Provence\n", @@ -2941,7 +2957,7 @@ " 142668\n", " \n", " \n", - " 2\n", + " 4\n", " Alcalá De Henares\n", " Spain\n", " Alcalá De Henares\n", @@ -2949,22 +2965,6 @@ " 195570\n", " \n", " \n", - " 3\n", - " Alchevsk\n", - " Ukraine\n", - " Alchevsk\n", - " UA\n", - " 105580\n", - " \n", - " \n", - " 4\n", - " Alcobendas\n", - " Spain\n", - " Alcobendas\n", - " ES\n", - " 116895\n", - " \n", - " \n", " ...\n", " ...\n", " ...\n", @@ -2973,7 +2973,7 @@ " ...\n", " \n", " \n", - " 355\n", + " 359\n", " Zielona Góra\n", " Poland\n", " Zielona Góra\n", @@ -2981,7 +2981,7 @@ " 141631\n", " \n", " \n", - " 356\n", + " 360\n", " Zoetermeer\n", " Netherlands\n", " Zoetermeer\n", @@ -2989,7 +2989,7 @@ " 124025\n", " \n", " \n", - " 357\n", + " 361\n", " Zurich\n", " Switzerland\n", " Zurich\n", @@ -2997,7 +2997,7 @@ " 423193\n", " \n", " \n", - " 358\n", + " 362\n", " Zwolle\n", " Netherlands\n", " Zwolle\n", @@ -3005,7 +3005,7 @@ " 123861\n", " \n", " \n", - " 359\n", + " 363\n", " Šiauliai\n", " Lithuania\n", " Šiauliai\n", @@ -3014,27 +3014,27 @@ " \n", " \n", "\n", - "

360 rows × 5 columns

\n", + "

364 rows × 5 columns

\n", "" ], "text/plain": [ - " name_en country_en nominatim_query alpha-2 population\n", - "0 Aachen Germany Aachen DE 247380\n", - "1 Aix-En-Provence France Aix-En-Provence FR 142668\n", - "2 Alcalá De Henares Spain Alcalá De Henares ES 195570\n", - "3 Alchevsk Ukraine Alchevsk UA 105580\n", - "4 Alcobendas Spain Alcobendas ES 116895\n", - ".. ... ... ... ... ...\n", - "355 Zielona Góra Poland Zielona Góra PL 141631\n", - "356 Zoetermeer Netherlands Zoetermeer NL 124025\n", - "357 Zurich Switzerland Zurich CH 423193\n", - "358 Zwolle Netherlands Zwolle NL 123861\n", - "359 Šiauliai Lithuania Šiauliai LT 100653\n", + " name_en country_en nominatim_query alpha-2 population\n", + "0 Aachen Germany Aachen DE 247380\n", + "1 Aalborg Denmark Aalborg Municipality DK 219476\n", + "2 Aarhus Denmark Aarhus Municipality DK 352315\n", + "3 Aix-En-Provence France Aix-En-Provence FR 142668\n", + "4 Alcalá De Henares Spain Alcalá De Henares ES 195570\n", + ".. ... ... ... ... ...\n", + "359 Zielona Góra Poland Zielona Góra PL 141631\n", + "360 Zoetermeer Netherlands Zoetermeer NL 124025\n", + "361 Zurich Switzerland Zurich CH 423193\n", + "362 Zwolle Netherlands Zwolle NL 123861\n", + "363 Šiauliai Lithuania Šiauliai LT 100653\n", "\n", - "[360 rows x 5 columns]" + "[364 rows x 5 columns]" ] }, - "execution_count": 134, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -3048,6 +3048,20 @@ "european_100000pop" ] }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4a53c629", + "metadata": {}, + "outputs": [], + "source": [ + "# Remove nominatims for Danish cities\n", + "european_100000pop.loc[european_100000pop['name_en'] == 'Aalborg', 'nominatim_query'] = ''\n", + "european_100000pop.loc[european_100000pop['name_en'] == 'Aarhus', 'nominatim_query'] = ''\n", + "european_100000pop.loc[european_100000pop['name_en'] == 'Esbjerg', 'nominatim_query'] = ''\n", + "european_100000pop.loc[european_100000pop['name_en'] == 'Vejle', 'nominatim_query'] = ''" + ] + }, { "cell_type": "code", "execution_count": 9, @@ -3063,7 +3077,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "57b99fa2", "metadata": {}, "outputs": [], @@ -3075,11 +3089,19 @@ " index = False,\n", ")" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3f18d0e8", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": ".venv (3.14.0.final.0)", "language": "python", "name": "python3" }, diff --git a/scripts/merge_europeans_csv.ipynb b/scripts/merge_europeans_csv.ipynb index 8f42247..a1c1011 100644 --- a/scripts/merge_europeans_csv.ipynb +++ b/scripts/merge_europeans_csv.ipynb @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 1, "id": "63e5404a", "metadata": {}, "outputs": [], @@ -65,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "37a5ca44", "metadata": {}, "outputs": [ @@ -478,7 +478,7 @@ "3898 True 8135667 " ] }, - "execution_count": 11, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -506,7 +506,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "id": "59ffacb7", "metadata": {}, "outputs": [ @@ -524,7 +524,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 5, "id": "fed9bb30", "metadata": {}, "outputs": [ @@ -876,7 +876,7 @@ "38 Zagreb Croatia Zagreb city HR" ] }, - "execution_count": 16, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -888,7 +888,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 6, "id": "4c3d864a", "metadata": {}, "outputs": [ @@ -1321,7 +1321,7 @@ "38 HR 790017.0 " ] }, - "execution_count": 20, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -1338,7 +1338,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 7, "id": "089d6745", "metadata": {}, "outputs": [ @@ -1771,7 +1771,7 @@ "38 HR 790017.0 " ] }, - "execution_count": 21, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -1793,7 +1793,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 8, "id": "5fc014cb", "metadata": {}, "outputs": [ @@ -1836,6 +1836,22 @@ " \n", " \n", " 1\n", + " Aalborg\n", + " Denmark\n", + " NaN\n", + " DK\n", + " 219476.0\n", + " \n", + " \n", + " 2\n", + " Aarhus\n", + " Denmark\n", + " NaN\n", + " DK\n", + " 352315.0\n", + " \n", + " \n", + " 3\n", " Aix-En-Provence\n", " France\n", " Aix-En-Provence\n", @@ -1843,7 +1859,7 @@ " 142668.0\n", " \n", " \n", - " 2\n", + " 4\n", " Alcalá De Henares\n", " Spain\n", " Alcalá De Henares\n", @@ -1851,22 +1867,6 @@ " 195570.0\n", " \n", " \n", - " 3\n", - " Alchevsk\n", - " Ukraine\n", - " Alchevsk\n", - " UA\n", - " 105580.0\n", - " \n", - " \n", - " 4\n", - " Alcobendas\n", - " Spain\n", - " Alcobendas\n", - " ES\n", - " 116895.0\n", - " \n", - " \n", " ...\n", " ...\n", " ...\n", @@ -1875,7 +1875,7 @@ " ...\n", " \n", " \n", - " 355\n", + " 359\n", " Zielona Góra\n", " Poland\n", " Zielona Góra\n", @@ -1883,7 +1883,7 @@ " 141631.0\n", " \n", " \n", - " 356\n", + " 360\n", " Zoetermeer\n", " Netherlands\n", " Zoetermeer\n", @@ -1891,7 +1891,7 @@ " 124025.0\n", " \n", " \n", - " 357\n", + " 361\n", " Zurich\n", " Switzerland\n", " Zurich\n", @@ -1899,7 +1899,7 @@ " 423193.0\n", " \n", " \n", - " 358\n", + " 362\n", " Zwolle\n", " Netherlands\n", " Zwolle\n", @@ -1907,7 +1907,7 @@ " 123861.0\n", " \n", " \n", - " 359\n", + " 363\n", " Šiauliai\n", " Lithuania\n", " Šiauliai\n", @@ -1916,27 +1916,27 @@ " \n", " \n", "\n", - "

399 rows × 5 columns

\n", + "

403 rows × 5 columns

\n", "" ], "text/plain": [ " name_en country_en nominatim_query alpha-2 population\n", "0 Aachen Germany Aachen DE 247380.0\n", - "1 Aix-En-Provence France Aix-En-Provence FR 142668.0\n", - "2 Alcalá De Henares Spain Alcalá De Henares ES 195570.0\n", - "3 Alchevsk Ukraine Alchevsk UA 105580.0\n", - "4 Alcobendas Spain Alcobendas ES 116895.0\n", + "1 Aalborg Denmark NaN DK 219476.0\n", + "2 Aarhus Denmark NaN DK 352315.0\n", + "3 Aix-En-Provence France Aix-En-Provence FR 142668.0\n", + "4 Alcalá De Henares Spain Alcalá De Henares ES 195570.0\n", ".. ... ... ... ... ...\n", - "355 Zielona Góra Poland Zielona Góra PL 141631.0\n", - "356 Zoetermeer Netherlands Zoetermeer NL 124025.0\n", - "357 Zurich Switzerland Zurich CH 423193.0\n", - "358 Zwolle Netherlands Zwolle NL 123861.0\n", - "359 Šiauliai Lithuania Šiauliai LT 100653.0\n", + "359 Zielona Góra Poland Zielona Góra PL 141631.0\n", + "360 Zoetermeer Netherlands Zoetermeer NL 124025.0\n", + "361 Zurich Switzerland Zurich CH 423193.0\n", + "362 Zwolle Netherlands Zwolle NL 123861.0\n", + "363 Šiauliai Lithuania Šiauliai LT 100653.0\n", "\n", - "[399 rows x 5 columns]" + "[403 rows x 5 columns]" ] }, - "execution_count": 23, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -1950,7 +1950,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 9, "id": "05f38c5e", "metadata": {}, "outputs": [],