diff --git a/data-import/geo-se.py b/data-import/geo-se.py index eb4f548..537ce96 100644 --- a/data-import/geo-se.py +++ b/data-import/geo-se.py @@ -38,6 +38,10 @@ TIMEZONE = "Europe/Stockholm" ONE_POSITION = {"Stockholm", "Göteborg", "Malmö"} # A tätort's floor: "minst 200 invånare", docs/research/research-geo-se.md, Lantmäteriet → Ortnamn. UNMATCHED_POPULATION = 200 +# Not a street: a road number, a ferry route, a cycle path or road association's label, a placeholder, or two names +# or a description in one. +NOT_A_STREET = re.compile(r"^(Europaväg|Länsväg|Riksväg) \d|^Färjeled |\b(GC|SMF|VSF)\b|^NN$|, ") +PARTICLES = {"af", "de", "von"} def scb_codes(cache): @@ -161,12 +165,18 @@ def localities(codes, tatorter, municipalities, population): return out +def street_name(name): + """Whether name is a street's, opening with a capital or a nobiliary particle and with no word spelled in capitals.""" + opening = name[0].isupper() or name.split()[0] in PARTICLES + return opening and not NOT_A_STREET.search(name) and not any(len(w) >= 5 and w.isupper() for w in name.split()) + + def streets(segments, codes, localities, share, minimum): """The names with most segments per locality, each segment at its nearest code centroid.""" nearest = geo.Nearest((r["lat"], r["lon"], r["locality"]) for r in codes if r["lat"] is not None and r["locality"] in localities) count = collections.Counter() for name, lat, lon in segments: - if name[0].isalpha(): + if street_name(name): count[(nearest.find(lat, lon), name)] += 1 return geo.top_streets(count, share, minimum, "segments") diff --git a/data/geo/SE/locality.tsv b/data/geo/SE/locality.tsv index 0e518dc..23fbaf1 100644 --- a/data/geo/SE/locality.tsv +++ b/data/geo/SE/locality.tsv @@ -866,7 +866,6 @@ Nynäshamn 0192 16447 58.9034 17.9479 Nyvång 1277 200 56.1333 12.9000 Nyåker 2403 200 63.7500 19.3167 Nälden 2309 986 63.3500 14.2500 -Nämdö 0120 200 59.1833 18.6833 Nässjö 0682 18639 57.6531 14.6968 Näsum 1272 1274 56.1667 14.4833 Näsviken 2184 994 61.7667 16.8667 diff --git a/data/geo/SE/postal-code.tsv b/data/geo/SE/postal-code.tsv index 4c17099..45be087 100644 --- a/data/geo/SE/postal-code.tsv +++ b/data/geo/SE/postal-code.tsv @@ -949,7 +949,6 @@ code locality 130 25 Ingmarsö 130 33 Gällnöby 130 34 Skälvik -130 36 Nämdö 130 37 Stavsnäs 130 38 Runmarö 130 39 Sandhamn diff --git a/data/geo/SE/street.tsv b/data/geo/SE/street.tsv index bebbe09..1520c5d 100644 --- a/data/geo/SE/street.tsv +++ b/data/geo/SE/street.tsv @@ -10498,7 +10498,6 @@ Herrgårdsallén Borensberg 1 Hjortstigen Borensberg 1 Huggormsvägen Borensberg 1 Hycklingevägen Borensberg 1 -HÄLLSÄTTERSLEDEN Borensberg 1 Idrottsvägen Borensberg 1 Karlsbyvägen Borensberg 1 Klockrikevägen Borensberg 1 @@ -15971,7 +15970,6 @@ Slipstensvägen Burgsvik 1 Stenhuggarvägen Burgsvik 1 Trädgårdsgränd Burgsvik 1 Våradonisvägen Burgsvik 1 -bobbenarve vägen Burgsvik 1 Storgatan Burseryd 13 Tyngelgatan Burseryd 11 Östra Bruksgatan Burseryd 10 @@ -17044,7 +17042,6 @@ Viaduktsvägen Båstad 2 Örnvägen Båstad 2 Amorosavägen Båstad 1 Annerovägen Båstad 1 -Aromavägen GC Båstad 1 Aspvägen Båstad 1 Astrakanvägen Båstad 1 Backvägen Båstad 1 @@ -19598,7 +19595,6 @@ Sågvägen Duved 6 Strandvägen Duved 5 Karolinervägen Duved 4 Kolåsen Sjövägen Duved 4 -Forsa Fjällby, Vargen Duved 3 Kvarnbacken Duved 3 Kvarnstigen Duved 3 Leråvägen Duved 3 @@ -19637,11 +19633,6 @@ Björkstigen Duved 1 Bäckstigen Duved 1 Fjällporten Duved 1 Fjällstigen Duved 1 -Forsa Fjällby, Björnen Duved 1 -Forsa Fjällby, Renen Duved 1 -Forsa Fjällby, Ripan Duved 1 -Forsa Fjällby, Räven Duved 1 -Forsa Fjällby, Älgen Duved 1 Forsakullen Duved 1 Forslunds väg Duved 1 Golfbyn klubbvägen Duved 1 @@ -23033,7 +23024,6 @@ Rademachergatan Eskilstuna 10 Sedelvägen Eskilstuna 10 Skrinnarvägen Eskilstuna 10 Svengrensgatan Eskilstuna 10 -Trumtorp-Hällberga VSF Eskilstuna 10 Gustafsvägen Eskilstuna 9 Idungatan Eskilstuna 9 Kyrkogatan Eskilstuna 9 @@ -23313,8 +23303,6 @@ Kastanjevägen Eskilstuna 1 Konvaljevägen Eskilstuna 1 Krikonvägen Eskilstuna 1 Krusbärsvägen Eskilstuna 1 -Kumla-Heby-Styvsmossen VSF 2-4 Eskilstuna 1 -Kumla-Heby-Styvsmossen VSF s:1 Eskilstuna 1 Kälkbacksvägen Eskilstuna 1 Körsbärsvägen Eskilstuna 1 Lantmästarvägen Eskilstuna 1 @@ -68021,7 +68009,6 @@ Tallgatan Kungsör 2 Tessingatan Kungsör 2 Tofsvipegatan Kungsör 2 Tornvägen Kungsör 2 -Tovhulta VSF Kungsör 2 Varvsgatan Kungsör 2 Villagatan Kungsör 2 Ågatan Kungsör 2 @@ -68560,7 +68547,6 @@ Söderbyvägen Kvicksund 1 Tommy Janssons väg Kvicksund 1 Torgvägen Kvicksund 1 Trollskogsstigen Kvicksund 1 -Trumtorp-Hällberga VSF Kvicksund 1 Träkolsvägen Kvicksund 1 Tvärvägen Kvicksund 1 Vasavägen Kvicksund 1 @@ -80056,7 +80042,6 @@ Vinlandsgatan Lund 4 Vipeholmsvägen Lund 4 Vittnesgränden Lund 4 Williamsvägen Lund 4 -Öresundsvägen, Bondevägen Lund 4 Östra Mårtensgatan Lund 4 Astrid Lindgrens väg Lund 3 August Strindbergs väg Lund 3 @@ -88354,7 +88339,6 @@ Mariebergsbadet Motala 1 Markebogatan Motala 1 Medevitullen Motala 1 Myntgatan Motala 1 -NN Motala 1 Nickelgatan Motala 1 Norrgatan Motala 1 Notvarpsstigen Motala 1 @@ -89728,9 +89712,6 @@ Metarevägen Mårdaklev 1 Smedjevägen Mårdaklev 1 Vallbrogatan Mårdaklev 1 Vallenvägen Mårdaklev 1 -Länsväg 694 Möja 4 -Länsväg 696 Möja 2 -Länsväg 695 Möja 1 Möja Ström Möja 1 Hammarbyvägen Möklinta 4 Klintvägen Möklinta 4 @@ -91738,9 +91719,6 @@ Fannys väg Nacka Strand 1 Fingerörtsvägen Nacka Strand 1 Formalingatan Nacka Strand 1 Fredrik Jahns gränd Nacka Strand 1 -Färjeled Barnängsbryggan - Lumabryggan Nacka Strand 1 -Färjeled Henriksdalsbryggan - Barnängsbryggan Nacka Strand 1 -Färjeled Henriksdalsbryggan - Lumabryggan Nacka Strand 1 Gaveliusgatan Nacka Strand 1 Gjuterigränd Nacka Strand 1 Glödlampsgränd Nacka Strand 1 @@ -95493,7 +95471,6 @@ Högledsvägen Nykvarn 2 Idrottsvägen Nykvarn 2 Kolarens väg Nykvarn 2 Kämstavägen Nykvarn 2 -Kärrs VSF Nykvarn 2 Linneaborgsvägen Nykvarn 2 Lundavägen Nykvarn 2 Lövskärsvägen Nykvarn 2 @@ -96556,7 +96533,6 @@ Tallstigen Nälden 1 Villavägen Nälden 1 Ängsvägen Nälden 1 Åkervägen Nälden 1 -Länsväg 690 Nämdö 3 Sörängsvägen Nässjö 24 Queckfeldtsgatan Nässjö 22 Brogatan Nässjö 21 @@ -97205,7 +97181,6 @@ Toftvägen Nävekvarn 1 Toppstigen Nävekvarn 1 Torpvägen Nävekvarn 1 Ärtsångarvägen Nävekvarn 1 -Övershyttans VSF Nävekvarn 1 Nockarpsvägen Nävlinge 5 Maglehultsvägen Nävlinge 4 Knutstorpsvägen Nävlinge 3 @@ -104661,7 +104636,6 @@ Kallmossevägen Runmarö 5 Kugganvägen Runmarö 5 Lilla Sjövägen Runmarö 5 Lillholmsvägen Runmarö 5 -Länsväg 697 Runmarö 5 Stamvägen Runmarö 5 Tjärnvägen Runmarö 5 Djuröviksvägen Runmarö 4 @@ -120435,7 +120409,6 @@ Barnviks Byväg Stavsnäs 6 Lärkans väg Stavsnäs 6 Öhlins väg Stavsnäs 6 Elgars väg Stavsnäs 5 -Länsväg 697 Stavsnäs 5 Söderbergs väg Stavsnäs 5 Tennisbanevägen Stavsnäs 5 Kvarnsjövägen Stavsnäs 4 @@ -123335,7 +123308,6 @@ Biskopsgränd Strängnäs 1 Bisp Thomas väg Strängnäs 1 Bivägen Strängnäs 1 Björkvägen Strängnäs 1 -Björndalsvägens SMF Strängnäs 1 Blomstervägen Strängnäs 1 Bofinksvägen Strängnäs 1 Bollvägen Strängnäs 1 @@ -133689,7 +133661,6 @@ Länsvägen Tjällmo 5 Yxhultsvägen Tjällmo 5 Backgårdsvägen Tjällmo 4 Bågvägen Tjällmo 4 -GÄRDHEMSVÄGEN Tjällmo 2 Hembygdsvägen Tjällmo 2 Lindesnäsvägen Tjällmo 2 Råckastigen Tjällmo 2 @@ -139191,7 +139162,6 @@ Springarvägen Trångsund 2 Vallmovägen Trångsund 2 Vidjavägen Trångsund 2 Violvägen Trångsund 2 -tornslingan Trångsund 2 Aniaravägen Trångsund 1 Blåsippsdalen Trångsund 1 Blåsippsstigen Trångsund 1 @@ -143950,7 +143920,6 @@ Magasinsvägen Undenäs 1 Svarmansvägen Undenäs 1 Timmervägen Undenäs 1 Toppstigen Undenäs 1 -Undevi-Ösjö-Kvarnsjöbacken VSF Undenäs 1 Unnebovägen Undenäs 1 Byvägen Undersåker 20 Fjällfararvägen Undersåker 11 @@ -153304,7 +153273,6 @@ Wilhelmina Skoghs gata Visby 1 Ygne Brantvägen Visby 1 Ygne Kungsljusvägen Visby 1 Ygne Rövarbacken Visby 1 -gt, både som värdväg och gästväg. Högklint Doktor Kallenbergs väg Visby 1 Ängestigen Visby 1 Östgötagatan Visby 1 Östra Byrummet Visby 1 @@ -161050,7 +161018,6 @@ Vårfrylevägen Växjö 1 Vårlöksvägen Växjö 1 Vörtvägen Växjö 1 Yxhammarsvägen Växjö 1 -vallviksrondellen Växjö 1 Ärlevägen Växjö 1 Åldermansvägen Växjö 1 Åsvägen Växjö 1 @@ -164848,7 +164815,6 @@ Norra Stationsvägen Ärla 5 Stationsvägen Ärla 5 Brannius väg Ärla 4 Ekornebergsvägen Ärla 4 -Trumtorp-Hällberga VSF Ärla 4 Åsvägen Ärla 4 Apollovägen Ärla 3 Gamla vägen Ärla 3 diff --git a/data/geo/US/locality.tsv b/data/geo/US/locality.tsv index 941b681..3befd90 100644 --- a/data/geo/US/locality.tsv +++ b/data/geo/US/locality.tsv @@ -266,7 +266,7 @@ code name municipality population lat lon 0664000 Sacramento 06067 536449 38.567694 -121.468161 0664224 Salinas 06053 159134 36.690217 -121.633793 0665000 San Bernardino 06071 222044 34.14114 -117.294635 -0665042 San Buenaventura (Ventura) 06111 109914 34.26778 -119.254206 +0665042 Ventura 06111 109914 34.26778 -119.254206 0665070 San Carlos 06081 29261 37.499034 -122.267572 0666000 San Diego 06073 1406106 32.830391 -117.120923 0667000 San Francisco 06075 826079 37.727239 -123.032229 @@ -747,7 +747,7 @@ code name municipality population lat lon 2139142 Independence 21117 30198 38.957442 -84.547372 2140114 Jamestown 21207 1901 36.990587 -85.06443 2144686 Leitchfield 21085 7015 37.48624 -86.284687 -2146027 Lexington-Fayette 21067 329751 38.040638 -84.458238 +2146027 Lexington 21067 329751 38.040638 -84.458238 2148006 Louisville 21111 641962 38.165376 -85.647377 2154228 Mount Washington 21029 18989 38.042622 -85.556024 2154642 Murray 21035 18964 36.614202 -88.322075 @@ -1403,7 +1403,7 @@ code name municipality population lat lon 4741200 La Vergne 47149 42146 36.022237 -86.559384 4741520 Lebanon 47189 53412 36.198303 -86.345523 4743820 Louisville 47009 4562 35.822632 -84.052409 -4744382 Lynchburg, Moore County 47127 6920 35.288888 -86.358684 +4744382 Lynchburg 47127 6920 35.288888 -86.358684 4744940 McKenzie 47017 5632 36.136643 -88.507107 4745100 McMinnville 47177 13943 35.686308 -85.781213 4746380 Maryville 47009 32442 35.74781 -83.980234