From f4a6b893be1188b512151868841419d0ce0d82d6 Mon Sep 17 00:00:00 2001 From: "Dr. Jan-Philip Gehrcke" Date: Fri, 8 Jan 2021 14:54:20 +0100 Subject: [PATCH] ags.json: add population data Sources: - DESTATIS AuszugGV4QAktuell.xlsx state: December 31, 2020 - statistik-berlin-brandenburg.de state: June 2020 See gen-population-data.py for precise source information, and for how exactly these numbers were obtained. --- ags.json | 1241 ++++++++++++++++++++++------------ tools/gen-population-data.py | 292 ++++++++ 2 files changed, 1119 insertions(+), 414 deletions(-) create mode 100644 tools/gen-population-data.py diff --git a/ags.json b/ags.json index 39c92752f3c0..2b21e82ccc96 100644 --- a/ags.json +++ b/ags.json @@ -3,121 +3,141 @@ "name": "SK Flensburg", "state": "Schleswig-Holstein", "lat": 54.7805, - "lon": 9.4352 + "lon": 9.4352, + "population": 90164 }, "1002": { "name": "SK Kiel", "state": "Schleswig-Holstein", "lat": 54.3227, - "lon": 10.1359 + "lon": 10.1359, + "population": 246794 }, "1003": { "name": "SK Lübeck", "state": "Schleswig-Holstein", "lat": 53.8696, - "lon": 10.6876 + "lon": 10.6876, + "population": 216530 }, "1004": { "name": "SK Neumünster", "state": "Schleswig-Holstein", "lat": 54.074, - "lon": 9.9845 + "lon": 9.9845, + "population": 80196 }, "1051": { "name": "LK Dithmarschen", "state": "Schleswig-Holstein", "lat": 54.1474, - "lon": 9.1114 + "lon": 9.1114, + "population": 133193 }, "1053": { "name": "LK Herzogtum Lauenburg", "state": "Schleswig-Holstein", "lat": 53.6013, - "lon": 10.5866 + "lon": 10.5866, + "population": 198019 }, "1054": { "name": "LK Nordfriesland", "state": "Schleswig-Holstein", "lat": 54.6354, - "lon": 8.7241 + "lon": 8.7241, + "population": 165951 }, "1055": { "name": "LK Ostholstein", "state": "Schleswig-Holstein", "lat": 54.1767, - "lon": 10.8476 + "lon": 10.8476, + "population": 200539 }, "1056": { "name": "LK Pinneberg", "state": "Schleswig-Holstein", "lat": 53.7279, - "lon": 9.698 + "lon": 9.698, + "population": 316103 }, "1057": { "name": "LK Plön", "state": "Schleswig-Holstein", "lat": 54.1591, - "lon": 10.4113 + "lon": 10.4113, + "population": 128686 }, "1058": { "name": "LK Rendsburg-Eckernförde", "state": "Schleswig-Holstein", "lat": 54.2791, - "lon": 9.7887 + "lon": 9.7887, + "population": 274098 }, "1059": { "name": "LK Schleswig-Flensburg", "state": "Schleswig-Holstein", "lat": 54.6311, - "lon": 9.556 + "lon": 9.556, + "population": 201156 }, "1060": { "name": "LK Segeberg", "state": "Schleswig-Holstein", "lat": 53.9232, - "lon": 10.1612 + "lon": 10.1612, + "population": 277175 }, "1061": { "name": "LK Steinburg", "state": "Schleswig-Holstein", "lat": 53.9409, - "lon": 9.5158 + "lon": 9.5158, + "population": 131013 }, "1062": { "name": "LK Stormarn", "state": "Schleswig-Holstein", "lat": 53.7215, - "lon": 10.3586 + "lon": 10.3586, + "population": 244156 }, "2000": { "name": "SK Hamburg", "state": "Hamburg", "lat": 53.5544, - "lon": 9.9946 + "lon": 9.9946, + "population": 1847253 }, "3101": { "name": "SK Braunschweig", "state": "Niedersachsen", "lat": 52.269, - "lon": 10.526 + "lon": 10.526, + "population": 249406 }, "3102": { "name": "SK Salzgitter", "state": "Niedersachsen", "lat": 52.1497, - "lon": 10.3367 + "lon": 10.3367, + "population": 104291 }, "3103": { "name": "SK Wolfsburg", "state": "Niedersachsen", "lat": 52.4379, - "lon": 10.7664 + "lon": 10.7664, + "population": 124371 }, "3151": { "name": "LK Gifhorn", "state": "Niedersachsen", "lat": 52.5264, - "lon": 10.6081 + "lon": 10.6081, + "population": 176523 }, "3152": { "name": "LK Göttingen (alt)", @@ -129,2359 +149,2752 @@ "name": "LK Goslar", "state": "Niedersachsen", "lat": 51.9084, - "lon": 10.4464 + "lon": 10.4464, + "population": 136292 }, "3154": { "name": "LK Helmstedt", "state": "Niedersachsen", "lat": 52.2391, - "lon": 10.9186 + "lon": 10.9186, + "population": 91297 }, "3155": { "name": "LK Northeim", "state": "Niedersachsen", "lat": 51.7347, - "lon": 9.8778 + "lon": 9.8778, + "population": 132285 }, "3157": { "name": "LK Peine", "state": "Niedersachsen", "lat": 52.3203, - "lon": 10.2434 + "lon": 10.2434, + "population": 134801 }, "3158": { "name": "LK Wolfenbüttel", "state": "Niedersachsen", "lat": 52.1642, - "lon": 10.5403 + "lon": 10.5403, + "population": 119622 }, "3159": { "name": "LK Göttingen", "state": "Niedersachsen", "lat": 51.5316, - "lon": 10.0144 + "lon": 10.0144, + "population": 326041 }, "3241": { "name": "Region Hannover", "state": "Niedersachsen", "lat": 52.3845, - "lon": 9.727 + "lon": 9.727, + "population": 1157115 }, "3251": { "name": "LK Diepholz", "state": "Niedersachsen", "lat": 52.6887, - "lon": 8.6947 + "lon": 8.6947, + "population": 217089 }, "3252": { "name": "LK Hameln-Pyrmont", "state": "Niedersachsen", "lat": 52.0896, - "lon": 9.3875 + "lon": 9.3875, + "population": 148549 }, "3254": { "name": "LK Hildesheim", "state": "Niedersachsen", "lat": 52.0621, - "lon": 9.8937 + "lon": 9.8937, + "population": 275817 }, "3255": { "name": "LK Holzminden", "state": "Niedersachsen", "lat": 51.8901, - "lon": 9.5422 + "lon": 9.5422, + "population": 70458 }, "3256": { "name": "LK Nienburg (Weser)", "state": "Niedersachsen", "lat": 52.6118, - "lon": 9.1553 + "lon": 9.1553, + "population": 121390 }, "3257": { "name": "LK Schaumburg", "state": "Niedersachsen", "lat": 52.294, - "lon": 9.2145 + "lon": 9.2145, + "population": 157820 }, "3351": { "name": "LK Celle", "state": "Niedersachsen", "lat": 52.6169, - "lon": 10.0634 + "lon": 10.0634, + "population": 179011 }, "3352": { "name": "LK Cuxhaven", "state": "Niedersachsen", "lat": 53.6118, - "lon": 8.8279 + "lon": 8.8279, + "population": 198038 }, "3353": { "name": "LK Harburg", "state": "Niedersachsen", "lat": 53.3085, - "lon": 9.9718 + "lon": 9.9718, + "population": 254431 }, "3354": { "name": "LK Lüchow-Dannenberg", "state": "Niedersachsen", "lat": 53.0245, - "lon": 11.0349 + "lon": 11.0349, + "population": 48412 }, "3355": { "name": "LK Lüneburg", "state": "Niedersachsen", "lat": 53.2448, - "lon": 10.4674 + "lon": 10.4674, + "population": 184139 }, "3356": { "name": "LK Osterholz", "state": "Niedersachsen", "lat": 53.2621, - "lon": 8.8303 + "lon": 8.8303, + "population": 113928 }, "3357": { "name": "LK Rotenburg (Wümme)", "state": "Niedersachsen", "lat": 53.2526, - "lon": 9.3126 + "lon": 9.3126, + "population": 163782 }, "3358": { "name": "LK Heidekreis", "state": "Niedersachsen", "lat": 52.8217, - "lon": 9.6601 + "lon": 9.6601, + "population": 140673 }, "3359": { "name": "LK Stade", "state": "Niedersachsen", "lat": 53.5993, - "lon": 9.4728 + "lon": 9.4728, + "population": 204512 }, "3360": { "name": "LK Uelzen", "state": "Niedersachsen", "lat": 52.9983, - "lon": 10.5764 + "lon": 10.5764, + "population": 92389 }, "3361": { "name": "LK Verden", "state": "Niedersachsen", "lat": 52.967, - "lon": 9.1117 + "lon": 9.1117, + "population": 137133 }, "3401": { "name": "SK Delmenhorst", "state": "Niedersachsen", "lat": 53.0525, - "lon": 8.6331 + "lon": 8.6331, + "population": 77559 }, "3402": { "name": "SK Emden", "state": "Niedersachsen", "lat": 53.3603, - "lon": 7.2049 + "lon": 7.2049, + "population": 49913 }, "3403": { "name": "SK Oldenburg", "state": "Niedersachsen", "lat": 53.1501, - "lon": 8.2098 + "lon": 8.2098, + "population": 169077 }, "3404": { "name": "SK Osnabrück", "state": "Niedersachsen", "lat": 52.2818, - "lon": 8.0437 + "lon": 8.0437, + "population": 165251 }, "3405": { "name": "SK Wilhelmshaven", "state": "Niedersachsen", "lat": 53.5312, - "lon": 8.1059 + "lon": 8.1059, + "population": 76089 }, "3451": { "name": "LK Ammerland", "state": "Niedersachsen", "lat": 53.2184, - "lon": 8.0007 + "lon": 8.0007, + "population": 124859 }, "3452": { "name": "LK Aurich", "state": "Niedersachsen", "lat": 53.4764, - "lon": 7.4842 + "lon": 7.4842, + "population": 189694 }, "3453": { "name": "LK Cloppenburg", "state": "Niedersachsen", "lat": 52.8936, - "lon": 7.909 + "lon": 7.909, + "population": 170682 }, "3454": { "name": "LK Emsland", "state": "Niedersachsen", "lat": 52.759, - "lon": 7.4565 + "lon": 7.4565, + "population": 326954 }, "3455": { "name": "LK Friesland", "state": "Niedersachsen", "lat": 53.458, - "lon": 8.0243 + "lon": 8.0243, + "population": 98704 }, "3456": { "name": "LK Grafschaft Bentheim", "state": "Niedersachsen", "lat": 52.4647, - "lon": 7.0103 + "lon": 7.0103, + "population": 137162 }, "3457": { "name": "LK Leer", "state": "Niedersachsen", "lat": 53.2502, - "lon": 7.4563 + "lon": 7.4563, + "population": 170756 }, "3458": { "name": "LK Oldenburg", "state": "Niedersachsen", "lat": 52.9479, - "lon": 8.4922 + "lon": 8.4922, + "population": 130890 }, "3459": { "name": "LK Osnabrück", "state": "Niedersachsen", "lat": 52.3917, - "lon": 7.9956 + "lon": 7.9956, + "population": 358080 }, "3460": { "name": "LK Vechta", "state": "Niedersachsen", "lat": 52.6645, - "lon": 8.228 + "lon": 8.228, + "population": 142814 }, "3461": { "name": "LK Wesermarsch", "state": "Niedersachsen", "lat": 53.3367, - "lon": 8.4317 + "lon": 8.4317, + "population": 88583 }, "3462": { "name": "LK Wittmund", "state": "Niedersachsen", "lat": 53.5776, - "lon": 7.7741 + "lon": 7.7741, + "population": 56926 }, "4011": { "name": "SK Bremen", "state": "Bremen", "lat": 53.0852, - "lon": 8.8199 + "lon": 8.8199, + "population": 567559 }, "4012": { "name": "SK Bremerhaven", "state": "Bremen", "lat": 53.5502, - "lon": 8.5824 + "lon": 8.5824, + "population": 113643 }, "5111": { "name": "SK Düsseldorf", "state": "Nordrhein-Westfalen", "lat": 51.2205, - "lon": 6.8122 + "lon": 6.8122, + "population": 621877 }, "5112": { "name": "SK Duisburg", "state": "Nordrhein-Westfalen", "lat": 51.4351, - "lon": 6.763 + "lon": 6.763, + "population": 498686 }, "5113": { "name": "SK Essen", "state": "Nordrhein-Westfalen", "lat": 51.4624, - "lon": 7.0087 + "lon": 7.0087, + "population": 582760 }, "5114": { "name": "SK Krefeld", "state": "Nordrhein-Westfalen", "lat": 51.3389, - "lon": 6.5853 + "lon": 6.5853, + "population": 227417 }, "5116": { "name": "SK Mönchengladbach", "state": "Nordrhein-Westfalen", "lat": 51.1801, - "lon": 6.4423 + "lon": 6.4423, + "population": 261034 }, "5117": { "name": "SK Mülheim a.d.Ruhr", "state": "Nordrhein-Westfalen", "lat": 51.4312, - "lon": 6.8805 + "lon": 6.8805, + "population": 170632 }, "5119": { "name": "SK Oberhausen", "state": "Nordrhein-Westfalen", "lat": 51.4966, - "lon": 6.8514 + "lon": 6.8514, + "population": 210764 }, "5120": { "name": "SK Remscheid", "state": "Nordrhein-Westfalen", "lat": 51.1833, - "lon": 7.2 + "lon": 7.2, + "population": 111338 }, "5122": { "name": "SK Solingen", "state": "Nordrhein-Westfalen", "lat": 51.1704, - "lon": 7.0545 + "lon": 7.0545, + "population": 159245 }, "5124": { "name": "SK Wuppertal", "state": "Nordrhein-Westfalen", "lat": 51.2613, - "lon": 7.163 + "lon": 7.163, + "population": 355100 }, "5154": { "name": "LK Kleve", "state": "Nordrhein-Westfalen", "lat": 51.6271, - "lon": 6.2734 + "lon": 6.2734, + "population": 312465 }, "5158": { "name": "LK Mettmann", "state": "Nordrhein-Westfalen", "lat": 51.251, - "lon": 6.974 + "lon": 6.974, + "population": 485570 }, "5162": { "name": "LK Rhein-Kreis Neuss", "state": "Nordrhein-Westfalen", "lat": 51.1521, - "lon": 6.6354 + "lon": 6.6354, + "population": 451730 }, "5166": { "name": "LK Viersen", "state": "Nordrhein-Westfalen", "lat": 51.2555, - "lon": 6.3965 + "lon": 6.3965, + "population": 298863 }, "5170": { "name": "LK Wesel", "state": "Nordrhein-Westfalen", "lat": 51.5936, - "lon": 6.6103 + "lon": 6.6103, + "population": 459976 }, "5314": { "name": "SK Bonn", "state": "Nordrhein-Westfalen", "lat": 50.7333, - "lon": 7.1 + "lon": 7.1, + "population": 329673 }, "5315": { "name": "SK Köln", "state": "Nordrhein-Westfalen", "lat": 50.9333, - "lon": 6.95 + "lon": 6.95, + "population": 1087863 }, "5316": { "name": "SK Leverkusen", "state": "Nordrhein-Westfalen", "lat": 51.05, - "lon": 7.0167 + "lon": 7.0167, + "population": 163729 }, "5334": { "name": "StadtRegion Aachen", "state": "Nordrhein-Westfalen", "lat": 50.7667, - "lon": 6.1 + "lon": 6.1, + "population": 557026 }, "5358": { "name": "LK Düren", "state": "Nordrhein-Westfalen", "lat": 50.8233, - "lon": 6.44 + "lon": 6.44, + "population": 264638 }, "5362": { "name": "LK Rhein-Erft-Kreis", "state": "Nordrhein-Westfalen", "lat": 50.9033, - "lon": 6.7633 + "lon": 6.7633, + "population": 470615 }, "5366": { "name": "LK Euskirchen", "state": "Nordrhein-Westfalen", "lat": 50.5606, - "lon": 6.6333 + "lon": 6.6333, + "population": 193656 }, "5370": { "name": "LK Heinsberg", "state": "Nordrhein-Westfalen", "lat": 51.0417, - "lon": 6.1167 + "lon": 6.1167, + "population": 255555 }, "5374": { "name": "LK Oberbergischer Kreis", "state": "Nordrhein-Westfalen", "lat": 51.0128, - "lon": 7.5179 + "lon": 7.5179, + "population": 272057 }, "5378": { "name": "LK Rheinisch-Bergischer Kreis", "state": "Nordrhein-Westfalen", "lat": 51.0354, - "lon": 7.1708 + "lon": 7.1708, + "population": 283271 }, "5382": { "name": "LK Rhein-Sieg-Kreis", "state": "Nordrhein-Westfalen", "lat": 50.7595, - "lon": 7.1965 + "lon": 7.1965, + "population": 600764 }, "5512": { "name": "SK Bottrop", "state": "Nordrhein-Westfalen", "lat": 51.529, - "lon": 6.9434 + "lon": 6.9434, + "population": 117565 }, "5513": { "name": "SK Gelsenkirchen", "state": "Nordrhein-Westfalen", "lat": 51.5175, - "lon": 7.0857 + "lon": 7.0857, + "population": 259645 }, "5515": { "name": "SK Münster", "state": "Nordrhein-Westfalen", "lat": 51.9517, - "lon": 7.6252 + "lon": 7.6252, + "population": 315293 }, "5554": { "name": "LK Borken", "state": "Nordrhein-Westfalen", "lat": 51.9461, - "lon": 6.9147 + "lon": 6.9147, + "population": 371339 }, "5558": { "name": "LK Coesfeld", "state": "Nordrhein-Westfalen", "lat": 51.8636, - "lon": 7.3848 + "lon": 7.3848, + "population": 220586 }, "5562": { "name": "LK Recklinghausen", "state": "Nordrhein-Westfalen", "lat": 51.5932, - "lon": 7.2079 + "lon": 7.2079, + "population": 614137 }, "5566": { "name": "LK Steinfurt", "state": "Nordrhein-Westfalen", "lat": 52.1478, - "lon": 7.3436 + "lon": 7.3436, + "population": 448220 }, "5570": { "name": "LK Warendorf", "state": "Nordrhein-Westfalen", "lat": 51.8756, - "lon": 7.9679 + "lon": 7.9679, + "population": 277840 }, "5711": { "name": "SK Bielefeld", "state": "Nordrhein-Westfalen", "lat": 52.0215, - "lon": 8.5457 + "lon": 8.5457, + "population": 334195 }, "5754": { "name": "LK Gütersloh", "state": "Nordrhein-Westfalen", "lat": 51.9423, - "lon": 8.359 + "lon": 8.359, + "population": 364938 }, "5758": { "name": "LK Herford", "state": "Nordrhein-Westfalen", "lat": 52.1178, - "lon": 8.6796 + "lon": 8.6796, + "population": 250578 }, "5762": { "name": "LK Höxter", "state": "Nordrhein-Westfalen", "lat": 51.7776, - "lon": 9.3771 + "lon": 9.3771, + "population": 140251 }, "5766": { "name": "LK Lippe", "state": "Nordrhein-Westfalen", "lat": 51.9766, - "lon": 8.9865 + "lon": 8.9865, + "population": 347514 }, "5770": { "name": "LK Minden-Lübbecke", "state": "Nordrhein-Westfalen", "lat": 52.3212, - "lon": 8.7121 + "lon": 8.7121, + "population": 310409 }, "5774": { "name": "LK Paderborn", "state": "Nordrhein-Westfalen", "lat": 51.7191, - "lon": 8.7575 + "lon": 8.7575, + "population": 307839 }, "5911": { "name": "SK Bochum", "state": "Nordrhein-Westfalen", "lat": 51.4679, - "lon": 7.1965 + "lon": 7.1965, + "population": 365587 }, "5913": { "name": "SK Dortmund", "state": "Nordrhein-Westfalen", "lat": 51.5043, - "lon": 7.4837 + "lon": 7.4837, + "population": 588250 }, "5914": { "name": "SK Hagen", "state": "Nordrhein-Westfalen", "lat": 51.3672, - "lon": 7.4634 + "lon": 7.4634, + "population": 188686 }, "5915": { "name": "SK Hamm", "state": "Nordrhein-Westfalen", "lat": 51.6735, - "lon": 7.816 + "lon": 7.816, + "population": 179916 }, "5916": { "name": "SK Herne", "state": "Nordrhein-Westfalen", "lat": 51.5372, - "lon": 7.2011 + "lon": 7.2011, + "population": 156449 }, "5954": { "name": "LK Ennepe-Ruhr-Kreis", "state": "Nordrhein-Westfalen", "lat": 51.3481, - "lon": 7.3352 + "lon": 7.3352, + "population": 324106 }, "5958": { "name": "LK Hochsauerlandkreis", "state": "Nordrhein-Westfalen", "lat": 51.2949, - "lon": 8.4227 + "lon": 8.4227, + "population": 259777 }, "5962": { "name": "LK Märkischer Kreis", "state": "Nordrhein-Westfalen", "lat": 51.2687, - "lon": 7.6929 + "lon": 7.6929, + "population": 410222 }, "5966": { "name": "LK Olpe", "state": "Nordrhein-Westfalen", "lat": 51.0738, - "lon": 7.931 + "lon": 7.931, + "population": 133955 }, "5970": { "name": "LK Siegen-Wittgenstein", "state": "Nordrhein-Westfalen", "lat": 50.9938, - "lon": 8.3187 + "lon": 8.3187, + "population": 276944 }, "5974": { "name": "LK Soest", "state": "Nordrhein-Westfalen", "lat": 51.567, - "lon": 8.1106 + "lon": 8.1106, + "population": 301785 }, "5978": { "name": "LK Unna", "state": "Nordrhein-Westfalen", "lat": 51.5426, - "lon": 7.6853 + "lon": 7.6853, + "population": 394891 }, "6411": { "name": "SK Darmstadt", "state": "Hessen", "lat": 49.8706, - "lon": 8.6494 + "lon": 8.6494, + "population": 159878 }, "6412": { "name": "SK Frankfurt am Main", "state": "Hessen", "lat": 50.1167, - "lon": 8.6833 + "lon": 8.6833, + "population": 763380 }, "6413": { "name": "SK Offenbach", "state": "Hessen", "lat": 50.1, - "lon": 8.7667 + "lon": 8.7667, + "population": 130280 }, "6414": { "name": "SK Wiesbaden", "state": "Hessen", "lat": 50.0833, - "lon": 8.25 + "lon": 8.25, + "population": 278474 }, "6431": { "name": "LK Bergstraße", "state": "Hessen", "lat": 49.6161, - "lon": 8.6766 + "lon": 8.6766, + "population": 270340 }, "6432": { "name": "LK Darmstadt-Dieburg", "state": "Hessen", "lat": 49.8534, - "lon": 8.7673 + "lon": 8.7673, + "population": 297844 }, "6433": { "name": "LK Groß-Gerau", "state": "Hessen", "lat": 49.9257, - "lon": 8.4661 + "lon": 8.4661, + "population": 275726 }, "6434": { "name": "LK Hochtaunuskreis", "state": "Hessen", "lat": 50.2431, - "lon": 8.5093 + "lon": 8.5093, + "population": 236914 }, "6435": { "name": "LK Main-Kinzig-Kreis", "state": "Hessen", "lat": 50.212, - "lon": 9.1522 + "lon": 9.1522, + "population": 420552 }, "6436": { "name": "LK Main-Taunus-Kreis", "state": "Hessen", "lat": 50.1, - "lon": 8.4708 + "lon": 8.4708, + "population": 238558 }, "6437": { "name": "LK Odenwaldkreis", "state": "Hessen", "lat": 49.6841, - "lon": 8.9732 + "lon": 8.9732, + "population": 96703 }, "6438": { "name": "LK Offenbach", "state": "Hessen", "lat": 50.0352, - "lon": 8.8174 + "lon": 8.8174, + "population": 355813 }, "6439": { "name": "LK Rheingau-Taunus-Kreis", "state": "Hessen", "lat": 50.1175, - "lon": 8.0914 + "lon": 8.0914, + "population": 187160 }, "6440": { "name": "LK Wetteraukreis", "state": "Hessen", "lat": 50.3447, - "lon": 8.892 + "lon": 8.892, + "population": 308339 }, "6531": { "name": "LK Gießen", "state": "Hessen", "lat": 50.5824, - "lon": 8.7611 + "lon": 8.7611, + "population": 270688 }, "6532": { "name": "LK Lahn-Dill-Kreis", "state": "Hessen", "lat": 50.6581, - "lon": 8.3798 + "lon": 8.3798, + "population": 253319 }, "6533": { "name": "LK Limburg-Weilburg", "state": "Hessen", "lat": 50.4373, - "lon": 8.1695 + "lon": 8.1695, + "population": 171912 }, "6534": { "name": "LK Marburg-Biedenkopf", "state": "Hessen", "lat": 50.8297, - "lon": 8.7261 + "lon": 8.7261, + "population": 247084 }, "6535": { "name": "LK Vogelsbergkreis", "state": "Hessen", "lat": 50.6412, - "lon": 9.2588 + "lon": 9.2588, + "population": 105643 }, "6611": { "name": "SK Kassel", "state": "Hessen", "lat": 51.3169, - "lon": 9.4925 + "lon": 9.4925, + "population": 202137 }, "6631": { "name": "LK Fulda", "state": "Hessen", "lat": 50.5587, - "lon": 9.7587 + "lon": 9.7587, + "population": 223145 }, "6632": { "name": "LK Hersfeld-Rotenburg", "state": "Hessen", "lat": 50.8933, - "lon": 9.7767 + "lon": 9.7767, + "population": 120719 }, "6633": { "name": "LK Kassel", "state": "Hessen", "lat": 51.4142, - "lon": 9.1471 + "lon": 9.1471, + "population": 236764 }, "6634": { "name": "LK Schwalm-Eder-Kreis", "state": "Hessen", "lat": 51.0311, - "lon": 9.3688 + "lon": 9.3688, + "population": 179673 }, "6635": { "name": "LK Waldeck-Frankenberg", "state": "Hessen", "lat": 51.1438, - "lon": 8.8416 + "lon": 8.8416, + "population": 156406 }, "6636": { "name": "LK Werra-Meißner-Kreis", "state": "Hessen", "lat": 51.1917, - "lon": 9.9719 + "lon": 9.9719, + "population": 100629 }, "7111": { "name": "SK Koblenz", "state": "Rheinland-Pfalz", "lat": 50.35, - "lon": 7.6 + "lon": 7.6, + "population": 114052 }, "7131": { "name": "LK Ahrweiler", "state": "Rheinland-Pfalz", "lat": 50.4365, - "lon": 7.005 + "lon": 7.005, + "population": 130086 }, "7132": { "name": "LK Altenkirchen", "state": "Rheinland-Pfalz", "lat": 50.7127, - "lon": 7.6828 + "lon": 7.6828, + "population": 128805 }, "7133": { "name": "LK Bad Kreuznach", "state": "Rheinland-Pfalz", "lat": 49.8211, - "lon": 7.6909 + "lon": 7.6909, + "population": 158345 }, "7134": { "name": "LK Birkenfeld", "state": "Rheinland-Pfalz", "lat": 49.7212, - "lon": 7.272 + "lon": 7.272, + "population": 80951 }, "7135": { "name": "LK Cochem-Zell", "state": "Rheinland-Pfalz", "lat": 50.141, - "lon": 7.1895 + "lon": 7.1895, + "population": 61375 }, "7137": { "name": "LK Mayen-Koblenz", "state": "Rheinland-Pfalz", "lat": 50.3264, - "lon": 7.3222 + "lon": 7.3222, + "population": 214434 }, "7138": { "name": "LK Neuwied", "state": "Rheinland-Pfalz", "lat": 50.5612, - "lon": 7.4817 + "lon": 7.4817, + "population": 182811 }, "7140": { "name": "LK Rhein-Hunsrück-Kreis", "state": "Rheinland-Pfalz", "lat": 50.0215, - "lon": 7.4891 + "lon": 7.4891, + "population": 103163 }, "7141": { "name": "LK Rhein-Lahn-Kreis", "state": "Rheinland-Pfalz", "lat": 50.2651, - "lon": 7.8558 + "lon": 7.8558, + "population": 122297 }, "7143": { "name": "LK Westerwaldkreis", "state": "Rheinland-Pfalz", "lat": 50.5569, - "lon": 7.8657 + "lon": 7.8657, + "population": 201904 }, "7211": { "name": "SK Trier", "state": "Rheinland-Pfalz", "lat": 49.75, - "lon": 6.6333 + "lon": 6.6333, + "population": 111528 }, "7231": { "name": "LK Bernkastel-Wittlich", "state": "Rheinland-Pfalz", "lat": 49.9295, - "lon": 6.9384 + "lon": 6.9384, + "population": 112483 }, "7232": { "name": "LK Bitburg-Prüm", "state": "Rheinland-Pfalz", "lat": 50.0375, - "lon": 6.3977 + "lon": 6.3977, + "population": 99058 }, "7233": { "name": "LK Vulkaneifel", "state": "Rheinland-Pfalz", "lat": 50.2439, - "lon": 6.8031 + "lon": 6.8031, + "population": 60646 }, "7235": { "name": "LK Trier-Saarburg", "state": "Rheinland-Pfalz", "lat": 49.7007, - "lon": 6.7045 + "lon": 6.7045, + "population": 149398 }, "7311": { "name": "SK Frankenthal", "state": "Rheinland-Pfalz", "lat": 49.5372, - "lon": 8.355 + "lon": 8.355, + "population": 48762 }, "7312": { "name": "SK Kaiserslautern", "state": "Rheinland-Pfalz", "lat": 49.45, - "lon": 7.75 + "lon": 7.75, + "population": 100030 }, "7313": { "name": "SK Landau i.d.Pfalz", "state": "Rheinland-Pfalz", "lat": 49.2075, - "lon": 8.1133 + "lon": 8.1133, + "population": 46881 }, "7314": { "name": "SK Ludwigshafen", "state": "Rheinland-Pfalz", "lat": 49.4811, - "lon": 8.4353 + "lon": 8.4353, + "population": 172253 }, "7315": { "name": "SK Mainz", "state": "Rheinland-Pfalz", "lat": 50, - "lon": 8.2711 + "lon": 8.2711, + "population": 218578 }, "7316": { "name": "SK Neustadt a.d.Weinstraße", "state": "Rheinland-Pfalz", "lat": 49.3567, - "lon": 8.1378 + "lon": 8.1378, + "population": 53264 }, "7317": { "name": "SK Pirmasens", "state": "Rheinland-Pfalz", "lat": 49.2, - "lon": 7.6 + "lon": 7.6, + "population": 40231 }, "7318": { "name": "SK Speyer", "state": "Rheinland-Pfalz", "lat": 49.3297, - "lon": 8.4278 + "lon": 8.4278, + "population": 50561 }, "7319": { "name": "SK Worms", "state": "Rheinland-Pfalz", "lat": 49.6356, - "lon": 8.3597 + "lon": 8.3597, + "population": 83542 }, "7320": { "name": "SK Zweibrücken", "state": "Rheinland-Pfalz", "lat": 49.25, - "lon": 7.3667 + "lon": 7.3667, + "population": 34193 }, "7331": { "name": "LK Alzey-Worms", "state": "Rheinland-Pfalz", "lat": 49.7543, - "lon": 8.1422 + "lon": 8.1422, + "population": 129687 }, "7332": { "name": "LK Bad Dürkheim", "state": "Rheinland-Pfalz", "lat": 49.491, - "lon": 8.156 + "lon": 8.156, + "population": 132671 }, "7333": { "name": "LK Donnersbergkreis", "state": "Rheinland-Pfalz", "lat": 49.6393, - "lon": 7.9104 + "lon": 7.9104, + "population": 75325 }, "7334": { "name": "LK Germersheim", "state": "Rheinland-Pfalz", "lat": 49.1387, - "lon": 8.2459 + "lon": 8.2459, + "population": 129013 }, "7335": { "name": "LK Kaiserslautern", "state": "Rheinland-Pfalz", "lat": 49.4533, - "lon": 7.6607 + "lon": 7.6607, + "population": 105979 }, "7336": { "name": "LK Kusel", "state": "Rheinland-Pfalz", "lat": 49.5567, - "lon": 7.4778 + "lon": 7.4778, + "population": 70219 }, "7337": { "name": "LK Südliche Weinstraße", "state": "Rheinland-Pfalz", "lat": 49.1851, - "lon": 8.0631 + "lon": 8.0631, + "population": 110521 }, "7338": { "name": "LK Rhein-Pfalz-Kreis", "state": "Rheinland-Pfalz", "lat": 49.4456, - "lon": 8.3441 + "lon": 8.3441, + "population": 154609 }, "7339": { "name": "LK Mainz-Bingen", "state": "Rheinland-Pfalz", "lat": 49.9033, - "lon": 8.1086 + "lon": 8.1086, + "population": 211417 }, "7340": { "name": "LK Südwestpfalz", "state": "Rheinland-Pfalz", "lat": 49.2226, - "lon": 7.6197 + "lon": 7.6197, + "population": 94831 }, "8111": { "name": "SK Stuttgart", "state": "Baden-Württemberg", "lat": 48.7717, - "lon": 9.184 + "lon": 9.184, + "population": 635911 }, "8115": { "name": "LK Böblingen", "state": "Baden-Württemberg", "lat": 48.6851, - "lon": 9.0095 + "lon": 9.0095, + "population": 392807 }, "8116": { "name": "LK Esslingen", "state": "Baden-Württemberg", "lat": 48.647, - "lon": 9.3712 + "lon": 9.3712, + "population": 535024 }, "8117": { "name": "LK Göppingen", "state": "Baden-Württemberg", "lat": 48.6576, - "lon": 9.6829 + "lon": 9.6829, + "population": 258145 }, "8118": { "name": "LK Ludwigsburg", "state": "Baden-Württemberg", "lat": 48.9426, - "lon": 9.1496 + "lon": 9.1496, + "population": 545423 }, "8119": { "name": "LK Rems-Murr-Kreis", "state": "Baden-Württemberg", "lat": 48.8934, - "lon": 9.4672 + "lon": 9.4672, + "population": 427248 }, "8121": { "name": "SK Heilbronn", "state": "Baden-Württemberg", "lat": 49.1403, - "lon": 9.22 + "lon": 9.22, + "population": 126592 }, "8125": { "name": "LK Heilbronn", "state": "Baden-Württemberg", "lat": 49.1675, - "lon": 9.2031 + "lon": 9.2031, + "population": 344456 }, "8126": { "name": "LK Hohenlohekreis", "state": "Baden-Württemberg", "lat": 49.2725, - "lon": 9.6057 + "lon": 9.6057, + "population": 112655 }, "8127": { "name": "LK Schwäbisch Hall", "state": "Baden-Württemberg", "lat": 49.1253, - "lon": 9.8917 + "lon": 9.8917, + "population": 196761 }, "8128": { "name": "LK Main-Tauber-Kreis", "state": "Baden-Württemberg", "lat": 49.5713, - "lon": 9.7001 + "lon": 9.7001, + "population": 132399 }, "8135": { "name": "LK Heidenheim", "state": "Baden-Württemberg", "lat": 48.6424, - "lon": 10.1985 + "lon": 10.1985, + "population": 132777 }, "8136": { "name": "LK Ostalbkreis", "state": "Baden-Württemberg", "lat": 48.8778, - "lon": 10.0337 + "lon": 10.0337, + "population": 314025 }, "8211": { "name": "SK Baden-Baden", "state": "Baden-Württemberg", "lat": 48.75, - "lon": 8.25 + "lon": 8.25, + "population": 55185 }, "8212": { "name": "SK Karlsruhe", "state": "Baden-Württemberg", "lat": 49.0047, - "lon": 8.3858 + "lon": 8.3858, + "population": 312060 }, "8215": { "name": "LK Karlsruhe", "state": "Baden-Württemberg", "lat": 49.094, - "lon": 8.5635 + "lon": 8.5635, + "population": 445101 }, "8216": { "name": "LK Rastatt", "state": "Baden-Württemberg", "lat": 48.8065, - "lon": 8.2203 + "lon": 8.2203, + "population": 231420 }, "8221": { "name": "SK Heidelberg", "state": "Baden-Württemberg", "lat": 49.4167, - "lon": 8.7 + "lon": 8.7, + "population": 161485 }, "8222": { "name": "SK Mannheim", "state": "Baden-Württemberg", "lat": 49.4883, - "lon": 8.4647 + "lon": 8.4647, + "population": 310658 }, "8225": { "name": "LK Neckar-Odenwald-Kreis", "state": "Baden-Württemberg", "lat": 49.4221, - "lon": 9.2186 + "lon": 9.2186, + "population": 143633 }, "8226": { "name": "LK Rhein-Neckar-Kreis", "state": "Baden-Württemberg", "lat": 49.3736, - "lon": 8.7295 + "lon": 8.7295, + "population": 548355 }, "8231": { "name": "SK Pforzheim", "state": "Baden-Württemberg", "lat": 48.8833, - "lon": 8.7 + "lon": 8.7, + "population": 125957 }, "8235": { "name": "LK Calw", "state": "Baden-Württemberg", "lat": 48.688, - "lon": 8.6627 + "lon": 8.6627, + "population": 159201 }, "8236": { "name": "LK Enzkreis", "state": "Baden-Württemberg", "lat": 48.91, - "lon": 8.7397 + "lon": 8.7397, + "population": 199556 }, "8237": { "name": "LK Freudenstadt", "state": "Baden-Württemberg", "lat": 48.4627, - "lon": 8.5245 + "lon": 8.5245, + "population": 118243 }, "8311": { "name": "SK Freiburg i.Breisgau", "state": "Baden-Württemberg", "lat": 48, - "lon": 7.85 + "lon": 7.85, + "population": 231195 }, "8315": { "name": "LK Breisgau-Hochschwarzwald", "state": "Baden-Württemberg", "lat": 47.9412, - "lon": 7.8472 + "lon": 7.8472, + "population": 263601 }, "8316": { "name": "LK Emmendingen", "state": "Baden-Württemberg", "lat": 48.1451, - "lon": 7.8375 + "lon": 7.8375, + "population": 166408 }, "8317": { "name": "LK Ortenaukreis", "state": "Baden-Württemberg", "lat": 48.4111, - "lon": 8.0062 + "lon": 8.0062, + "population": 430953 }, "8325": { "name": "LK Rottweil", "state": "Baden-Württemberg", "lat": 48.2383, - "lon": 8.5163 + "lon": 8.5163, + "population": 139878 }, "8326": { "name": "LK Schwarzwald-Baar-Kreis", "state": "Baden-Württemberg", "lat": 48.0483, - "lon": 8.3967 + "lon": 8.3967, + "population": 212506 }, "8327": { "name": "LK Tuttlingen", "state": "Baden-Württemberg", "lat": 48.0557, - "lon": 8.799 + "lon": 8.799, + "population": 140766 }, "8335": { "name": "LK Konstanz", "state": "Baden-Württemberg", "lat": 47.7767, - "lon": 8.909 + "lon": 8.909, + "population": 286305 }, "8336": { "name": "LK Lörrach", "state": "Baden-Württemberg", "lat": 47.7036, - "lon": 7.7731 + "lon": 7.7731, + "population": 228736 }, "8337": { "name": "LK Waldshut", "state": "Baden-Württemberg", "lat": 47.6729, - "lon": 8.2204 + "lon": 8.2204, + "population": 171003 }, "8415": { "name": "LK Reutlingen", "state": "Baden-Württemberg", "lat": 48.4493, - "lon": 9.3462 + "lon": 9.3462, + "population": 287034 }, "8416": { "name": "LK Tübingen", "state": "Baden-Württemberg", "lat": 48.4733, - "lon": 9.0133 + "lon": 9.0133, + "population": 228678 }, "8417": { "name": "LK Zollernalbkreis", "state": "Baden-Württemberg", "lat": 48.248, - "lon": 8.8893 + "lon": 8.8893, + "population": 189363 }, "8421": { "name": "SK Ulm", "state": "Baden-Württemberg", "lat": 48.423, - "lon": 9.9945 + "lon": 9.9945, + "population": 126790 }, "8425": { "name": "LK Alb-Donau-Kreis", "state": "Baden-Württemberg", "lat": 48.4011, - "lon": 9.8363 + "lon": 9.8363, + "population": 197076 }, "8426": { "name": "LK Biberach", "state": "Baden-Württemberg", "lat": 48.0981, - "lon": 9.7843 + "lon": 9.7843, + "population": 201282 }, "8435": { "name": "LK Bodenseekreis", "state": "Baden-Württemberg", "lat": 47.7145, - "lon": 9.379 + "lon": 9.379, + "population": 217470 }, "8436": { "name": "LK Ravensburg", "state": "Baden-Württemberg", "lat": 47.8384, - "lon": 9.6745 + "lon": 9.6745, + "population": 285424 }, "8437": { "name": "LK Sigmaringen", "state": "Baden-Württemberg", "lat": 48.0493, - "lon": 9.2253 + "lon": 9.2253, + "population": 130849 }, "9161": { "name": "SK Ingolstadt", "state": "Bayern", "lat": 48.7667, - "lon": 11.4333 + "lon": 11.4333, + "population": 137392 }, "9162": { "name": "SK München", "state": "Bayern", "lat": 48.1374, - "lon": 11.5755 + "lon": 11.5755, + "population": 1484226 }, "9163": { "name": "SK Rosenheim", "state": "Bayern", "lat": 47.85, - "lon": 12.1333 + "lon": 12.1333, + "population": 63551 }, "9171": { "name": "LK Altötting", "state": "Bayern", "lat": 48.2035, - "lon": 12.7069 + "lon": 12.7069, + "population": 111516 }, "9172": { "name": "LK Berchtesgadener Land", "state": "Bayern", "lat": 47.7494, - "lon": 12.9217 + "lon": 12.9217, + "population": 105929 }, "9173": { "name": "LK Bad Tölz-Wolfratshausen", "state": "Bayern", "lat": 47.7826, - "lon": 11.4873 + "lon": 11.4873, + "population": 127917 }, "9174": { "name": "LK Dachau", "state": "Bayern", "lat": 48.3265, - "lon": 11.3755 + "lon": 11.3755, + "population": 154899 }, "9175": { "name": "LK Ebersberg", "state": "Bayern", "lat": 48.0737, - "lon": 11.9066 + "lon": 11.9066, + "population": 143649 }, "9176": { "name": "LK Eichstätt", "state": "Bayern", "lat": 48.9167, - "lon": 11.3667 + "lon": 11.3667, + "population": 132881 }, "9177": { "name": "LK Erding", "state": "Bayern", "lat": 48.2981, - "lon": 11.9857 + "lon": 11.9857, + "population": 138182 }, "9178": { "name": "LK Freising", "state": "Bayern", "lat": 48.4542, - "lon": 11.7472 + "lon": 11.7472, + "population": 180007 }, "9179": { "name": "LK Fürstenfeldbruck", "state": "Bayern", "lat": 48.1812, - "lon": 11.2036 + "lon": 11.2036, + "population": 219311 }, "9180": { "name": "LK Garmisch-Partenkirchen", "state": "Bayern", "lat": 47.6068, - "lon": 11.15 + "lon": 11.15, + "population": 88424 }, "9181": { "name": "LK Landsberg a.Lech", "state": "Bayern", "lat": 48.0366, - "lon": 10.9462 + "lon": 10.9462, + "population": 120302 }, "9182": { "name": "LK Miesbach", "state": "Bayern", "lat": 47.7755, - "lon": 11.7961 + "lon": 11.7961, + "population": 100010 }, "9183": { "name": "LK Mühldorf a.Inn", "state": "Bayern", "lat": 48.2409, - "lon": 12.3823 + "lon": 12.3823, + "population": 115872 }, "9184": { "name": "LK München", "state": "Bayern", "lat": 48.0925, - "lon": 11.6252 + "lon": 11.6252, + "population": 350473 }, "9185": { "name": "LK Neuburg-Schrobenhausen", "state": "Bayern", "lat": 48.6537, - "lon": 11.225 + "lon": 11.225, + "population": 97303 }, "9186": { "name": "LK Pfaffenhofen a.d.Ilm", "state": "Bayern", "lat": 48.6046, - "lon": 11.5185 + "lon": 11.5185, + "population": 128227 }, "9187": { "name": "LK Rosenheim", "state": "Bayern", "lat": 47.8946, - "lon": 12.1953 + "lon": 12.1953, + "population": 261330 }, "9188": { "name": "LK Starnberg", "state": "Bayern", "lat": 48.0238, - "lon": 11.2726 + "lon": 11.2726, + "population": 136667 }, "9189": { "name": "LK Traunstein", "state": "Bayern", "lat": 47.9067, - "lon": 12.5852 + "lon": 12.5852, + "population": 177319 }, "9190": { "name": "LK Weilheim-Schongau", "state": "Bayern", "lat": 47.7907, - "lon": 11.0631 + "lon": 11.0631, + "population": 135478 }, "9261": { "name": "SK Landshut", "state": "Bayern", "lat": 48.5361, - "lon": 12.1518 + "lon": 12.1518, + "population": 73411 }, "9262": { "name": "SK Passau", "state": "Bayern", "lat": 48.5833, - "lon": 13.4833 + "lon": 13.4833, + "population": 52803 }, "9263": { "name": "SK Straubing", "state": "Bayern", "lat": 48.8833, - "lon": 12.5667 + "lon": 12.5667, + "population": 47791 }, "9271": { "name": "LK Deggendorf", "state": "Bayern", "lat": 48.7814, - "lon": 13.0006 + "lon": 13.0006, + "population": 119478 }, "9272": { "name": "LK Freyung-Grafenau", "state": "Bayern", "lat": 48.8167, - "lon": 13.4813 + "lon": 13.4813, + "population": 78362 }, "9273": { "name": "LK Kelheim", "state": "Bayern", "lat": 48.809, - "lon": 11.8813 + "lon": 11.8813, + "population": 123058 }, "9274": { "name": "LK Landshut", "state": "Bayern", "lat": 48.5457, - "lon": 12.2081 + "lon": 12.2081, + "population": 159895 }, "9275": { "name": "LK Passau", "state": "Bayern", "lat": 48.5665, - "lon": 13.3627 + "lon": 13.3627, + "population": 192656 }, "9276": { "name": "LK Regen", "state": "Bayern", "lat": 49.0165, - "lon": 13.066 + "lon": 13.066, + "population": 77410 }, "9277": { "name": "LK Rottal-Inn", "state": "Bayern", "lat": 48.4032, - "lon": 12.8774 + "lon": 12.8774, + "population": 121502 }, "9278": { "name": "LK Straubing-Bogen", "state": "Bayern", "lat": 48.927, - "lon": 12.6266 + "lon": 12.6266, + "population": 101120 }, "9279": { "name": "LK Dingolfing-Landau", "state": "Bayern", "lat": 48.6367, - "lon": 12.5878 + "lon": 12.5878, + "population": 96683 }, "9361": { "name": "SK Amberg", "state": "Bayern", "lat": 49.4414, - "lon": 11.8622 + "lon": 11.8622, + "population": 42207 }, "9362": { "name": "SK Regensburg", "state": "Bayern", "lat": 49.015, - "lon": 12.0956 + "lon": 12.0956, + "population": 153094 }, "9363": { "name": "SK Weiden i.d.OPf.", "state": "Bayern", "lat": 49.6775, - "lon": 12.1567 + "lon": 12.1567, + "population": 42743 }, "9371": { "name": "LK Amberg-Sulzbach", "state": "Bayern", "lat": 49.4833, - "lon": 11.8167 + "lon": 11.8167, + "population": 103049 }, "9372": { "name": "LK Cham", "state": "Bayern", "lat": 49.2286, - "lon": 12.6939 + "lon": 12.6939, + "population": 127998 }, "9373": { "name": "LK Neumarkt i.d.OPf.", "state": "Bayern", "lat": 49.2159, - "lon": 11.533 + "lon": 11.533, + "population": 134573 }, "9374": { "name": "LK Neustadt a.d.Waldnaab", "state": "Bayern", "lat": 49.6952, - "lon": 12.1339 + "lon": 12.1339, + "population": 94450 }, "9375": { "name": "LK Regensburg", "state": "Bayern", "lat": 49.0125, - "lon": 12.141 + "lon": 12.141, + "population": 194070 }, "9376": { "name": "LK Schwandorf", "state": "Bayern", "lat": 49.4055, - "lon": 12.2725 + "lon": 12.2725, + "population": 147872 }, "9377": { "name": "LK Tirschenreuth", "state": "Bayern", "lat": 49.9088, - "lon": 12.1409 + "lon": 12.1409, + "population": 72046 }, "9461": { "name": "SK Bamberg", "state": "Bayern", "lat": 49.8943, - "lon": 10.8856 + "lon": 10.8856, + "population": 77373 }, "9462": { "name": "SK Bayreuth", "state": "Bayern", "lat": 49.9481, - "lon": 11.5783 + "lon": 11.5783, + "population": 74783 }, "9463": { "name": "SK Coburg", "state": "Bayern", "lat": 50.2667, - "lon": 10.9667 + "lon": 10.9667, + "population": 41072 }, "9464": { "name": "SK Hof", "state": "Bayern", "lat": 50.3167, - "lon": 11.9167 + "lon": 11.9167, + "population": 45825 }, "9471": { "name": "LK Bamberg", "state": "Bayern", "lat": 49.8943, - "lon": 10.8856 + "lon": 10.8856, + "population": 147163 }, "9472": { "name": "LK Bayreuth", "state": "Bayern", "lat": 49.9028, - "lon": 11.5772 + "lon": 11.5772, + "population": 103664 }, "9473": { "name": "LK Coburg", "state": "Bayern", "lat": 50.251, - "lon": 10.9863 + "lon": 10.9863, + "population": 86747 }, "9474": { "name": "LK Forchheim", "state": "Bayern", "lat": 49.6985, - "lon": 11.1565 + "lon": 11.1565, + "population": 116203 }, "9475": { "name": "LK Hof", "state": "Bayern", "lat": 50.287, - "lon": 11.8167 + "lon": 11.8167, + "population": 94801 }, "9476": { "name": "LK Kronach", "state": "Bayern", "lat": 50.3232, - "lon": 11.3556 + "lon": 11.3556, + "population": 66743 }, "9477": { "name": "LK Kulmbach", "state": "Bayern", "lat": 50.1076, - "lon": 11.5197 + "lon": 11.5197, + "population": 71566 }, "9478": { "name": "LK Lichtenfels", "state": "Bayern", "lat": 50.1364, - "lon": 11.1455 + "lon": 11.1455, + "population": 66776 }, "9479": { "name": "LK Wunsiedel i.Fichtelgebirge", "state": "Bayern", "lat": 50.0836, - "lon": 12.0587 + "lon": 12.0587, + "population": 72655 }, "9561": { "name": "SK Ansbach", "state": "Bayern", "lat": 49.3, - "lon": 10.5833 + "lon": 10.5833, + "population": 41798 }, "9562": { "name": "SK Erlangen", "state": "Bayern", "lat": 49.5897, - "lon": 11.0039 + "lon": 11.0039, + "population": 112528 }, "9563": { "name": "SK Fürth", "state": "Bayern", "lat": 49.4667, - "lon": 10.9667 + "lon": 10.9667, + "population": 128497 }, "9564": { "name": "SK Nürnberg", "state": "Bayern", "lat": 49.4478, - "lon": 11.0683 + "lon": 11.0683, + "population": 518370 }, "9565": { "name": "SK Schwabach", "state": "Bayern", "lat": 49.3292, - "lon": 11.0256 + "lon": 11.0256, + "population": 40981 }, "9571": { "name": "LK Ansbach", "state": "Bayern", "lat": 49.2402, - "lon": 10.4635 + "lon": 10.4635, + "population": 184591 }, "9572": { "name": "LK Erlangen-Höchstadt", "state": "Bayern", "lat": 49.6404, - "lon": 10.9301 + "lon": 10.9301, + "population": 137262 }, "9573": { "name": "LK Fürth", "state": "Bayern", "lat": 49.4667, - "lon": 10.8726 + "lon": 10.8726, + "population": 117853 }, "9574": { "name": "LK Nürnberger Land", "state": "Bayern", "lat": 49.4924, - "lon": 11.3745 + "lon": 11.3745, + "population": 170792 }, "9575": { "name": "LK Neustadt a.d.Aisch-Bad Windsheim", "state": "Bayern", "lat": 49.5702, - "lon": 10.4715 + "lon": 10.4715, + "population": 101014 }, "9576": { "name": "LK Roth", "state": "Bayern", "lat": 49.2235, - "lon": 11.0885 + "lon": 11.0885, + "population": 126749 }, "9577": { "name": "LK Weißenburg-Gunzenhausen", "state": "Bayern", "lat": 49.0432, - "lon": 10.8988 + "lon": 10.8988, + "population": 94734 }, "9661": { "name": "SK Aschaffenburg", "state": "Bayern", "lat": 49.9739, - "lon": 9.1492 + "lon": 9.1492, + "population": 71002 }, "9662": { "name": "SK Schweinfurt", "state": "Bayern", "lat": 50.05, - "lon": 10.2333 + "lon": 10.2333, + "population": 53426 }, "9663": { "name": "SK Würzburg", "state": "Bayern", "lat": 49.7878, - "lon": 9.9361 + "lon": 9.9361, + "population": 127934 }, "9671": { "name": "LK Aschaffenburg", "state": "Bayern", "lat": 50.0157, - "lon": 9.2189 + "lon": 9.2189, + "population": 174200 }, "9672": { "name": "LK Bad Kissingen", "state": "Bayern", "lat": 50.2194, - "lon": 9.9875 + "lon": 9.9875, + "population": 103235 }, "9673": { "name": "LK Rhön-Grabfeld", "state": "Bayern", "lat": 50.365, - "lon": 10.2766 + "lon": 10.2766, + "population": 79635 }, "9674": { "name": "LK Haßberge", "state": "Bayern", "lat": 50.0592, - "lon": 10.6107 + "lon": 10.6107, + "population": 84384 }, "9675": { "name": "LK Kitzingen", "state": "Bayern", "lat": 49.7417, - "lon": 10.2308 + "lon": 10.2308, + "population": 91155 }, "9676": { "name": "LK Miltenberg", "state": "Bayern", "lat": 49.7784, - "lon": 9.2383 + "lon": 9.2383, + "population": 128743 }, "9677": { "name": "LK Main-Spessart", "state": "Bayern", "lat": 49.9691, - "lon": 9.6404 + "lon": 9.6404, + "population": 126158 }, "9678": { "name": "LK Schweinfurt", "state": "Bayern", "lat": 49.9897, - "lon": 10.2517 + "lon": 10.2517, + "population": 115445 }, "9679": { "name": "LK Würzburg", "state": "Bayern", "lat": 49.747, - "lon": 9.9262 + "lon": 9.9262, + "population": 162302 }, "9761": { "name": "SK Augsburg", "state": "Bayern", "lat": 48.3667, - "lon": 10.8833 + "lon": 10.8833, + "population": 296582 }, "9762": { "name": "SK Kaufbeuren", "state": "Bayern", "lat": 47.8833, - "lon": 10.6167 + "lon": 10.6167, + "population": 44398 }, "9763": { "name": "SK Kempten", "state": "Bayern", "lat": 47.7167, - "lon": 10.3167 + "lon": 10.3167, + "population": 69151 }, "9764": { "name": "SK Memmingen", "state": "Bayern", "lat": 47.9833, - "lon": 10.1667 + "lon": 10.1667, + "population": 44100 }, "9771": { "name": "LK Aichach-Friedberg", "state": "Bayern", "lat": 48.4111, - "lon": 11.0451 + "lon": 11.0451, + "population": 134655 }, "9772": { "name": "LK Augsburg", "state": "Bayern", "lat": 48.3656, - "lon": 10.7547 + "lon": 10.7547, + "population": 253468 }, "9773": { "name": "LK Dillingen a.d.Donau", "state": "Bayern", "lat": 48.592, - "lon": 10.4981 + "lon": 10.4981, + "population": 96562 }, "9774": { "name": "LK Günzburg", "state": "Bayern", "lat": 48.3519, - "lon": 10.381 + "lon": 10.381, + "population": 127027 }, "9775": { "name": "LK Neu-Ulm", "state": "Bayern", "lat": 48.2755, - "lon": 10.1304 + "lon": 10.1304, + "population": 175204 }, "9776": { "name": "LK Lindau", "state": "Bayern", "lat": 47.6009, - "lon": 9.8491 + "lon": 9.8491, + "population": 81981 }, "9777": { "name": "LK Ostallgäu", "state": "Bayern", "lat": 47.8026, - "lon": 10.6259 + "lon": 10.6259, + "population": 141182 }, "9778": { "name": "LK Unterallgäu", "state": "Bayern", "lat": 48.034, - "lon": 10.35 + "lon": 10.35, + "population": 145341 }, "9779": { "name": "LK Donau-Ries", "state": "Bayern", "lat": 48.8149, - "lon": 10.6974 + "lon": 10.6974, + "population": 133783 }, "9780": { "name": "LK Oberallgäu", "state": "Bayern", "lat": 47.6131, - "lon": 10.2708 + "lon": 10.2708, + "population": 156008 }, "10041": { "name": "LK Stadtverband Saarbrücken", "state": "Saarland", "lat": 49.27, - "lon": 6.97 + "lon": 6.97, + "population": 328714 }, "10042": { "name": "LK Merzig-Wadern", "state": "Saarland", "lat": 49.4881, - "lon": 6.681 + "lon": 6.681, + "population": 103243 }, "10043": { "name": "LK Neunkirchen", "state": "Saarland", "lat": 49.3619, - "lon": 7.0976 + "lon": 7.0976, + "population": 131408 }, "10044": { "name": "LK Saarlouis", "state": "Saarland", "lat": 49.3333, - "lon": 6.7795 + "lon": 6.7795, + "population": 194319 }, "10045": { "name": "LK Saar-Pfalz-Kreis", "state": "Saarland", "lat": 49.2547, - "lon": 7.2238 + "lon": 7.2238, + "population": 142196 }, "10046": { "name": "LK Sankt Wendel", "state": "Saarland", "lat": 49.5229, - "lon": 7.1042 + "lon": 7.1042, + "population": 87007 }, "11000": { "name": "Berlin", "state": "Berlin", "note": "represents all of Berlin, includes 110XX", "lat": 52.5246, - "lon": 13.4051 + "lon": 13.4051, + "population": 3669491 }, "11001": { "name": "SK Berlin Mitte", "state": "Berlin", "lat": 52.5222, - "lon": 13.3801 + "lon": 13.3801, + "population": 380917 }, "11002": { "name": "SK Berlin Friedrichshain-Kreuzberg", "state": "Berlin", "lat": 52.4966, - "lon": 13.3933 + "lon": 13.3933, + "population": 290083 }, "11003": { "name": "SK Berlin Pankow", "state": "Berlin", "lat": 52.5977, - "lon": 13.3653 + "lon": 13.3653, + "population": 409454 }, "11004": { "name": "SK Berlin Charlottenburg-Wilmersdorf", "state": "Berlin", "lat": 52.508, - "lon": 13.2289 + "lon": 13.2289, + "population": 342950 }, "11005": { "name": "SK Berlin Spandau", "state": "Berlin", "lat": 52.5192, - "lon": 13.1257 + "lon": 13.1257, + "population": 244458 }, "11006": { "name": "SK Berlin Steglitz-Zehlendorf", "state": "Berlin", "lat": 52.4295, - "lon": 13.16 + "lon": 13.16, + "population": 308582 }, "11007": { "name": "SK Berlin Tempelhof-Schöneberg", "state": "Berlin", "lat": 52.4406, - "lon": 13.3037 + "lon": 13.3037, + "population": 351062 }, "11008": { "name": "SK Berlin Neukölln", "state": "Berlin", "lat": 52.4459, - "lon": 13.3918 + "lon": 13.3918, + "population": 328666 }, "11009": { "name": "SK Berlin Treptow-Köpenick", "state": "Berlin", "lat": 52.4179, - "lon": 13.5303 + "lon": 13.5303, + "population": 273817 }, "11010": { "name": "SK Berlin Marzahn-Hellersdorf", "state": "Berlin", "lat": 52.5225, - "lon": 13.5176 + "lon": 13.5176, + "population": 271311 }, "11011": { "name": "SK Berlin Lichtenberg", "state": "Berlin", "lat": 52.5322, - "lon": 13.4419 + "lon": 13.4419, + "population": 294937 }, "11012": { "name": "SK Berlin Reinickendorf", "state": "Berlin", "lat": 52.6048, - "lon": 13.2252 + "lon": 13.2252, + "population": 266219 }, "12051": { "name": "SK Brandenburg a.d.Havel", "state": "Brandenburg", "lat": 52.4257, - "lon": 12.6051 + "lon": 12.6051, + "population": 72184 }, "12052": { "name": "SK Cottbus", "state": "Brandenburg", "lat": 51.7551, - "lon": 14.3331 + "lon": 14.3331, + "population": 99678 }, "12053": { "name": "SK Frankfurt (Oder)", "state": "Brandenburg", "lat": 52.344, - "lon": 14.5402 + "lon": 14.5402, + "population": 57751 }, "12054": { "name": "SK Potsdam", "state": "Brandenburg", "lat": 52.4459, - "lon": 13.0146 + "lon": 13.0146, + "population": 180334 }, "12060": { "name": "LK Barnim", "state": "Brandenburg", "lat": 52.7725, - "lon": 13.6915 + "lon": 13.6915, + "population": 185244 }, "12061": { "name": "LK Dahme-Spreewald", "state": "Brandenburg", "lat": 52.0742, - "lon": 13.8117 + "lon": 13.8117, + "population": 170791 }, "12062": { "name": "LK Elbe-Elster", "state": "Brandenburg", "lat": 51.6233, - "lon": 13.5472 + "lon": 13.5472, + "population": 101827 }, "12063": { "name": "LK Havelland", "state": "Brandenburg", "lat": 52.6074, - "lon": 12.6673 + "lon": 12.6673, + "population": 162996 }, "12064": { "name": "LK Märkisch-Oderland", "state": "Brandenburg", "lat": 52.6143, - "lon": 14.1829 + "lon": 14.1829, + "population": 195751 }, "12065": { "name": "LK Oberhavel", "state": "Brandenburg", "lat": 52.8988, - "lon": 13.2651 + "lon": 13.2651, + "population": 212914 }, "12066": { "name": "LK Oberspreewald-Lausitz", "state": "Brandenburg", "lat": 51.5701, - "lon": 13.9705 + "lon": 13.9705, + "population": 109371 }, "12067": { "name": "LK Oder-Spree", "state": "Brandenburg", "lat": 52.2289, - "lon": 14.2328 + "lon": 14.2328, + "population": 178803 }, "12068": { "name": "LK Ostprignitz-Ruppin", "state": "Brandenburg", "lat": 53.0079, - "lon": 12.6439 + "lon": 12.6439, + "population": 98861 }, "12069": { "name": "LK Potsdam-Mittelmark", "state": "Brandenburg", "lat": 52.2933, - "lon": 12.7823 + "lon": 12.7823, + "population": 216566 }, "12070": { "name": "LK Prignitz", "state": "Brandenburg", "lat": 53.0847, - "lon": 12.0206 + "lon": 12.0206, + "population": 76158 }, "12071": { "name": "LK Spree-Neiße", "state": "Brandenburg", "lat": 51.7542, - "lon": 14.5587 + "lon": 14.5587, + "population": 113720 }, "12072": { "name": "LK Teltow-Fläming", "state": "Brandenburg", "lat": 52.1429, - "lon": 13.3526 + "lon": 13.3526, + "population": 169997 }, "12073": { "name": "LK Uckermark", "state": "Brandenburg", "lat": 53.1566, - "lon": 13.9348 + "lon": 13.9348, + "population": 118947 }, "13003": { "name": "SK Rostock", "state": "Mecklenburg-Vorpommern", "lat": 54.084, - "lon": 12.0994 + "lon": 12.0994, + "population": 209191 }, "13004": { "name": "SK Schwerin", "state": "Mecklenburg-Vorpommern", "lat": 53.6326, - "lon": 11.4141 + "lon": 11.4141, + "population": 95653 }, "13071": { "name": "LK Mecklenburgische Seenplatte", "state": "Mecklenburg-Vorpommern", "lat": 53.5666, - "lon": 13.2695 + "lon": 13.2695, + "population": 258074 }, "13072": { "name": "LK Rostock", "state": "Mecklenburg-Vorpommern", "lat": 53.8047, - "lon": 12.1869 + "lon": 12.1869, + "population": 215794 }, "13073": { "name": "LK Vorpommern-Rügen", "state": "Mecklenburg-Vorpommern", "lat": 54.3536, - "lon": 13.3646 + "lon": 13.3646, + "population": 224702 }, "13074": { "name": "LK Nordwestmecklenburg", "state": "Mecklenburg-Vorpommern", "lat": 53.8884, - "lon": 11.4622 + "lon": 11.4622, + "population": 157322 }, "13075": { "name": "LK Vorpommern-Greifswald", "state": "Mecklenburg-Vorpommern", "lat": 54.0888, - "lon": 13.3947 + "lon": 13.3947, + "population": 235623 }, "13076": { "name": "LK Ludwigslust-Parchim", "state": "Mecklenburg-Vorpommern", "lat": 53.5364, - "lon": 11.8458 + "lon": 11.8458, + "population": 211779 }, "14511": { "name": "SK Chemnitz", "state": "Sachsen", "lat": 50.8333, - "lon": 12.9167 + "lon": 12.9167, + "population": 246334 }, "14521": { "name": "LK Erzgebirgskreis", "state": "Sachsen", "lat": 50.5735, - "lon": 12.9833 + "lon": 12.9833, + "population": 334948 }, "14522": { "name": "LK Mittelsachsen", "state": "Sachsen", "lat": 50.8569, - "lon": 13.3159 + "lon": 13.3159, + "population": 304099 }, "14523": { "name": "LK Vogtlandkreis", "state": "Sachsen", "lat": 50.4722, - "lon": 12.2695 + "lon": 12.2695, + "population": 225997 }, "14524": { "name": "LK Zwickau", "state": "Sachsen", "lat": 50.7333, - "lon": 12.5 + "lon": 12.5, + "population": 315002 }, "14612": { "name": "SK Dresden", "state": "Sachsen", "lat": 51.0493, - "lon": 13.6987 + "lon": 13.6987, + "population": 556780 }, "14625": { "name": "LK Bautzen", "state": "Sachsen", "lat": 51.1556, - "lon": 14.3739 + "lon": 14.3739, + "population": 299758 }, "14626": { "name": "LK Görlitz", "state": "Sachsen", "lat": 51.1526, - "lon": 14.9699 + "lon": 14.9699, + "population": 252725 }, "14627": { "name": "LK Meißen", "state": "Sachsen", "lat": 51.1374, - "lon": 13.4771 + "lon": 13.4771, + "population": 241717 }, "14628": { "name": "LK Sächsische Schweiz-Osterzgebirge", "state": "Sachsen", "lat": 50.9459, - "lon": 14.05 + "lon": 14.05, + "population": 245586 }, "14713": { "name": "SK Leipzig", "state": "Sachsen", "lat": 51.3493, - "lon": 12.3939 + "lon": 12.3939, + "population": 593145 }, "14729": { "name": "LK Leipzig", "state": "Sachsen", "lat": 51.17, - "lon": 12.65 + "lon": 12.65, + "population": 258139 }, "14730": { "name": "LK Nordsachsen", "state": "Sachsen", "lat": 51.4671, - "lon": 12.7665 + "lon": 12.7665, + "population": 197741 }, "15001": { "name": "SK Dessau-Roßlau", "state": "Sachsen-Anhalt", "lat": 51.8425, - "lon": 12.2305 + "lon": 12.2305, + "population": 80103 }, "15002": { "name": "SK Halle", "state": "Sachsen-Anhalt", "lat": 51.4803, - "lon": 11.9689 + "lon": 11.9689, + "population": 238762 }, "15003": { "name": "SK Magdeburg", "state": "Sachsen-Anhalt", "lat": 52.132, - "lon": 11.6266 + "lon": 11.6266, + "population": 237565 }, "15081": { "name": "LK Altmarkkreis Salzwedel", "state": "Sachsen-Anhalt", "lat": 52.6911, - "lon": 11.2304 + "lon": 11.2304, + "population": 83173 }, "15082": { "name": "LK Anhalt-Bitterfeld", "state": "Sachsen-Anhalt", "lat": 51.6229, - "lon": 12.2677 + "lon": 12.2677, + "population": 158486 }, "15083": { "name": "LK Börde", "state": "Sachsen-Anhalt", "lat": 52.3217, - "lon": 11.5398 + "lon": 11.5398, + "population": 170923 }, "15084": { "name": "LK Burgenlandkreis", "state": "Sachsen-Anhalt", "lat": 51.1259, - "lon": 11.8577 + "lon": 11.8577, + "population": 178846 }, "15085": { "name": "LK Harz", "state": "Sachsen-Anhalt", "lat": 51.8122, - "lon": 10.7044 + "lon": 10.7044, + "population": 213310 }, "15086": { "name": "LK Jerichower Land", "state": "Sachsen-Anhalt", "lat": 52.2598, - "lon": 11.9891 + "lon": 11.9891, + "population": 89589 }, "15087": { "name": "LK Mansfeld-Südharz", "state": "Sachsen-Anhalt", "lat": 51.5779, - "lon": 11.5142 + "lon": 11.5142, + "population": 134942 }, "15088": { "name": "LK Saalekreis", "state": "Sachsen-Anhalt", "lat": 51.5292, - "lon": 11.9383 + "lon": 11.9383, + "population": 183815 }, "15089": { "name": "LK Salzlandkreis", "state": "Sachsen-Anhalt", "lat": 51.9467, - "lon": 11.7732 + "lon": 11.7732, + "population": 189125 }, "15090": { "name": "LK Stendal", "state": "Sachsen-Anhalt", "lat": 52.6781, - "lon": 11.8103 + "lon": 11.8103, + "population": 111190 }, "15091": { "name": "LK Wittenberg", "state": "Sachsen-Anhalt", "lat": 51.8744, - "lon": 12.6277 + "lon": 12.6277, + "population": 124953 }, "16051": { "name": "SK Erfurt", "state": "Thüringen", "lat": 50.9833, - "lon": 11.0333 + "lon": 11.0333, + "population": 213981 }, "16052": { "name": "SK Gera", "state": "Thüringen", "lat": 50.8667, - "lon": 12.0833 + "lon": 12.0833, + "population": 93125 }, "16053": { "name": "SK Jena", "state": "Thüringen", "lat": 50.9333, - "lon": 11.5833 + "lon": 11.5833, + "population": 111343 }, "16054": { "name": "SK Suhl", "state": "Thüringen", "lat": 50.6, - "lon": 10.7 + "lon": 10.7, + "population": 36789 }, "16055": { "name": "SK Weimar", "state": "Thüringen", "lat": 50.9833, - "lon": 11.3167 + "lon": 11.3167, + "population": 65228 }, "16056": { "name": "SK Eisenach", "state": "Thüringen", "lat": 50.9833, - "lon": 10.3167 + "lon": 10.3167, + "population": 42250 }, "16061": { "name": "LK Eichsfeld", "state": "Thüringen", "lat": 51.3752, - "lon": 10.2203 + "lon": 10.2203, + "population": 100006 }, "16062": { "name": "LK Nordhausen", "state": "Thüringen", "lat": 51.4994, - "lon": 10.791 + "lon": 10.791, + "population": 83416 }, "16063": { "name": "LK Wartburgkreis", "state": "Thüringen", "lat": 50.8567, - "lon": 10.184 + "lon": 10.184, + "population": 118974 }, "16064": { "name": "LK Unstrut-Hainich-Kreis", "state": "Thüringen", "lat": 51.1825, - "lon": 10.5855 + "lon": 10.5855, + "population": 102232 }, "16065": { "name": "LK Kyffhäuserkreis", "state": "Thüringen", "lat": 51.3083, - "lon": 11.0654 + "lon": 11.0654, + "population": 74212 }, "16066": { "name": "LK Schmalkalden-Meiningen", "state": "Thüringen", "lat": 50.6061, - "lon": 10.3961 + "lon": 10.3961, + "population": 124916 }, "16067": { "name": "LK Gotha", "state": "Thüringen", "lat": 50.9382, - "lon": 10.703 + "lon": 10.703, + "population": 134908 }, "16068": { "name": "LK Sömmerda", "state": "Thüringen", "lat": 51.1441, - "lon": 11.1453 + "lon": 11.1453, + "population": 69427 }, "16069": { "name": "LK Hildburghausen", "state": "Thüringen", "lat": 50.442, - "lon": 10.6845 + "lon": 10.6845, + "population": 63197 }, "16070": { "name": "LK Ilm-Kreis", "state": "Thüringen", "lat": 50.7294, - "lon": 10.9591 + "lon": 10.9591, + "population": 106249 }, "16071": { "name": "LK Weimarer Land", "state": "Thüringen", "lat": 51.0025, - "lon": 11.3758 + "lon": 11.3758, + "population": 82156 }, "16072": { "name": "LK Sonneberg", "state": "Thüringen", "lat": 50.4274, - "lon": 11.1211 + "lon": 11.1211, + "population": 57717 }, "16073": { "name": "LK Saalfeld-Rudolstadt", "state": "Thüringen", "lat": 50.6187, - "lon": 11.2881 + "lon": 11.2881, + "population": 103199 }, "16074": { "name": "LK Saale-Holzland-Kreis", "state": "Thüringen", "lat": 50.9043, - "lon": 11.7319 + "lon": 11.7319, + "population": 82950 }, "16075": { "name": "LK Saale-Orla-Kreis", "state": "Thüringen", "lat": 50.6237, - "lon": 11.7202 + "lon": 11.7202, + "population": 80312 }, "16076": { "name": "LK Greiz", "state": "Thüringen", "lat": 50.7786, - "lon": 12.0762 + "lon": 12.0762, + "population": 97398 }, "16077": { "name": "LK Altenburger Land", "state": "Thüringen", "lat": 50.9579, - "lon": 12.3802 + "lon": 12.3802, + "population": 89393 } -} +} \ No newline at end of file diff --git a/tools/gen-population-data.py b/tools/gen-population-data.py new file mode 100644 index 000000000000..3eb5b4a19e12 --- /dev/null +++ b/tools/gen-population-data.py @@ -0,0 +1,292 @@ +# MIT License + +# Copyright (c) 2020 - 2021 Dr. Jan-Philip Gehrcke + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +""" +Process Gemeindeverzeichnis information published by DESTATIS at + +https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/_inhalt.html + +Spreadsheet information at the time of writing: + +- Original filename: AuszugGV4QAktuell.xlsx +- State of data: December 31, 2020 (according to DESTATIS) +- Downloaded on: Jan 8, 2021 +- XLSX last modified: "01/07/2021, 12:33:26, Mettner, Claudia (F202)" + +Structure of this sheet: + +In [12]: df = pd.read_excel('AuszugGV4QAktuell.xlsx', sheet_name='Onlineprodukt_Gemeinden', header=[2,3]) +In [14]: df.columns +Out[14]: +MultiIndex([( 'Satz-art', 'Unnamed: 0_level_1'), + ( 'Text-kenn-zeichen', 'Unnamed: 1_level_1'), + ( 'Amtlicher Regionalschlüssel (ARS)', 'Land'), + ( 'Amtlicher Regionalschlüssel (ARS)', 'RB'), + ( 'Amtlicher Regionalschlüssel (ARS)', 'Kreis'), + ( 'Amtlicher Regionalschlüssel (ARS)', 'VB'), + ( 'Amtlicher Regionalschlüssel (ARS)', 'Gem'), + ( 'Gemeindename', 'Unnamed: 7_level_1'), + ( 'Fläche km2 1)', 'Unnamed: 8_level_1'), + ( 'Bevölkerung2)', 'insgesamt'), + ( 'Bevölkerung2)', 'männlich'), + ( 'Bevölkerung2)', 'weiblich'), + ( 'Bevölkerung2)', 'je km2'), + ( 'Post-leit-zahl3)', 'Unnamed: 13_level_1'), + ('Geografische Mittelpunktkoordinaten', 'Längengrad'), + ('Geografische Mittelpunktkoordinaten', 'Breitengrad'), + ( 'Reisegebiete', 'Unnamed: 16_level_1'), + ( 'Reisegebiete', 'Unnamed: 17_level_1'), + ( 'Grad der Verstädterung', 'Unnamed: 18_level_1'), + ( 'Grad der Verstädterung', 'Unnamed: 19_level_1')], + ) + +Goal of this module: parse this sheet, rename and process columns of interest, +drop other columns, process rows. Make this useful. + +The above's data set contains only a single aggregate for Berlin. +Use a separate source for Berlin: + https://www.statistik-berlin-brandenburg.de/ + https://www.statistik-berlin-brandenburg.de/publikationen/stat_berichte/2020/SB_A01-05-00_2020h01_BE.xlsx + State: 30. Juni 2020 + Hard-code this into this program. + +After all, enrich the /ags.json with population data for each of its AGS entries. +""" + +import argparse +import os +import logging +import json +import sys + +import pandas as pd + + +log = logging.getLogger() +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s.%(msecs)03d %(levelname)s: %(message)s", + datefmt="%y%m%d-%H:%M:%S", +) + + +def main(): + + parser = argparse.ArgumentParser() + + parser.add_argument("gv_xlsx_path", metavar="gv-xlsx-path") + + parser.add_argument("--enrich-ags-json", metavar="PATH") + parser.add_argument("--write-ags-pop-csv", metavar="PATH") + args = parser.parse_args() + + if args.enrich_ags_json: + log.info("read %s", args.enrich_ags_json) + with open(args.enrich_ags_json, "rb") as f: + # This retains order. + AGS_PROPERTY_MAP = json.loads(f.read().decode("utf-8")) + + df = read_xlsx_rename_drop(args.gv_xlsx_path) + df_calculate_and_add_ags_column(df) + df = generate_df_pop_by_ags(df) + + log.info("dataframe for AGS <-> population association:\n\n%s", df) + + if args.write_ags_pop_csv: + log.info("write AGS <-> population CSV file to %s", args.write_ags_pop_csv) + df.to_csv(args.write_ags_pop_csv) + + if args.enrich_ags_json: + log.info("add population data to %s", args.enrich_ags_json) + for ags, row in df.iterrows(): + assert str(ags) in AGS_PROPERTY_MAP + AGS_PROPERTY_MAP[str(ags)]["population"] = int(row["population"]) + + log.info("add berlin districts to AGS_PROPERTY_MAP") + add_resolution_to_berlin(AGS_PROPERTY_MAP) + + # Skip those entries that do not have the populuation key set (expected + # for AGS 3152 "LK Göttingen (alt)". Minus the total for Berlin, because + # there's a double count. + checksum = ( + sum( + v["population"] + for k, v in AGS_PROPERTY_MAP.items() + if "population" in v + ) + - AGS_PROPERTY_MAP["11000"]["population"] + ) + + log.info( + "total GER population checksum for to-be-written %s: %s", + args.enrich_ags_json, + checksum, + ) + + log.info("rewrite %s", args.enrich_ags_json) + with open(args.enrich_ags_json, "wb") as f: + # Note that JSON only allows text keys, not numbers. + f.write( + json.dumps(AGS_PROPERTY_MAP, indent=2, ensure_ascii=False).encode( + "utf-8" + ) + ) + + +def add_resolution_to_berlin(ags_property_map): + """ + Data from https://www.statistik-berlin-brandenburg.de/ + SB_A01-05-00_2020h01_BE.xlsx + June 2020 + """ + # AGS 11000 represents all of Berlin, i.e. includes 110XX. The total of + # 3669491 is the sum of the individual SK numbers below, as provided by + # statistik-berlin-brandenburg.de. Note that the Berlin total provided by + # DESTATIS in the data set used for non-Berlin AGS is 3762456, i.e. it + # deviates by about ~100k. The DESTATIS data set seems to be slightly newer + # (by half a year: summer 2020 vs end of 2020), but I think it's better to + # have Berlin-internal consistency here. + ags_property_map["11000"]["population"] = 3669491 + + # SK Berlin Mitte + ags_property_map["11001"]["population"] = 380917 + + # SK Berlin Friedrichshain-Kreuzberg + ags_property_map["11002"]["population"] = 290083 + + # SK Berlin Pankow + ags_property_map["11003"]["population"] = 409454 + + # SK Berlin Charlottenburg-Wilmersdorf + ags_property_map["11004"]["population"] = 342950 + + # SK Berlin Spandau + ags_property_map["11005"]["population"] = 244458 + + # SK Berlin Steglitz-Zehlendorf + ags_property_map["11006"]["population"] = 308582 + + # SK Berlin Tempelhof-Schöneberg + ags_property_map["11007"]["population"] = 351062 + + # SK Berlin Neukölln + ags_property_map["11008"]["population"] = 328666 + + # SK Berlin Treptow-Köpenick + ags_property_map["11009"]["population"] = 273817 + + # SK Berlin Marzahn-Hellersdorf + ags_property_map["11010"]["population"] = 271311 + + # SK Berlin Lichtenberg + ags_property_map["11011"]["population"] = 294937 + + # SK Berlin Reinickendorf + ags_property_map["11012"]["population"] = 266219 + + +def generate_df_pop_by_ags(df): + + log.info("aggregate (sum) population by AGS") + df_pop = df.drop(columns=list(set(df.columns) - set(["ags", "population_total"]))) + df_pop = df_pop.rename(columns={"population_total": "population"}) + + df_pop_by_ags = df_pop.groupby("ags").sum() + df_pop_by_ags.index = df_pop_by_ags.index.astype(int) + df_pop_by_ags.sort_index(inplace=True) + + # Not contained in this dataset: + # + # "3152": { + # "name": "LK Göttingen (alt)", + # "state": "Niedersachsen", + # "lat": 51.5369, + # "lon": 9.8568 + # }, + # + # 110XX -- Berlin districts which are not actually LKs. + + # Now, there may still be a small number of AGSs that are virtual, + # indicated by population count of 0 (also set in the original spreadsheet) + + dropthis = df_pop_by_ags[df_pop_by_ags.population == 0] + log.info("delete these rows: %s", dropthis) + df_pop_by_ags = df_pop_by_ags[df_pop_by_ags.population != 0] + + log.info("total population checksum: %s", df_pop_by_ags["population"].sum()) + + return df_pop_by_ags + + +def df_calculate_and_add_ags_column(df): + # Build Amtlicher Gemeindeschluessel (AGS, string) + # Turn floaty values into integer, and then into string. + # Kreis needs to be zero-padded to width 2: 1 -> 01. + df["ags"] = ( + df["land_id"].astype(int).astype(str) + + df["regbez_id"].astype(int).astype(str) + + df["kreis_id"].astype(int).astype(str).str.zfill(2) + ) + + +def read_xlsx_rename_drop(xlsx_path): + # Parsing this seems to require pandas 1.2.0 and openpyxl, xlrd. + # do: `pip install xlrd openpyxl pandas --upgrade` + # Only read fourth row (idx 3) as column headings. + log.info("parse %s", xlsx_path) + df = pd.read_excel(xlsx_path, sheet_name="Onlineprodukt_Gemeinden", header=[3]) + log.info("parsed columns: %s", df.columns) + + rename_dict = { + "Land": "land_id", + "RB": "regbez_id", + "Kreis": "kreis_id", + "VB": "gem_verb_id", + "Gem": "gem_id", + "Unnamed: 7": "gem_name", + "insgesamt": "population_total", + "Längengrad": "geo_longitude", + "Breitengrad": "geo_latitude", + } + + df = df.rename(columns=rename_dict) + log.info("columns after rename: %s", df.columns) + + keep_cols = [v for k, v in rename_dict.items()] + + log.info("drop all columns except for %s", keep_cols) + df = df.drop(columns=list(set(df.columns) - set(keep_cols))) + log.info("columns after drop: %s", df.columns) + + log.info( + "drop all rows that do not have population or regbez set -- these are mid-sheet headings" + ) + + log.info("rowcount before: %s", len(df)) + df = df.dropna(subset=["population_total", "regbez_id"]) + log.info("rowcount after: %s", len(df)) + + return df + + +if __name__ == "__main__": + main()