Kody pocztowe w OSM

Wybaczcie, że odkopuję stary temat, ale zaczynam aktualnie pracować z OSM i Nominatim.
Weryfikowałem kilka adresów i zauważyłem, że kody pocztowe mają spore rozbieżności.
Dla przykładu:
ul Hoża w Szczecinie wg poczty polskiej ma kody pocztowe 71-699 lub 71-222 (https://kody.poczta-polska.pl/index.php), natomiast Nominatim zwraca 71-714 (który przypisany jest tylko do dwóch ulic - https://mapa.targeo.pl/71-714/kod-pocztowy))

Dodatkowo zauważyłem, że część kodów uzupełniona jest bez myślnika. W woli przypomnienia format powinien wyglądać następująco 00-000.

Chciałbym na bieżąco korygować tego typu błędy, jednak jako początkujący użytkownik nie wiem (jeszcze) jak. Za pomocą edytora online nie znalazłem miejsca w którym widoczne byłyby te dane do edycji.

Czy za pomocą overpass turbo mogę wybrać takie kody które nie mają myślnika (ew jakimś innym narzędziem)?

Uprzejmie proszę o wskazanie sposobu edycji kodów.
Z góry wielkie dzięki.

Większe edycje najlepiej robić edytorem JOSM, bo on pozwala łatwo dokonać wyszukiwania i masowej zmiany.

Tak, możesz uzyć regexa. O tak: http://overpass-turbo.eu/s/sCj

RicoElectrico dzięki za odpowiedz. Muszę doczytać o JOSM.

Mam jeszcze pytanie: czy za pomocą overpass mogę wyciągnąć takie kody dla całej Polski? Kiedy oddale widok dostaję timeouty.
W podesłanym przez Ciebie linku jest {{bbox}}, być może da się to zmienić na obszar całej Polski?
Chciałbym kompleksowo posprzątać tego typu błędy, a później zająć się korektami samych kodów.

Temat kodów umilkł? Ostatni wpis w tym wątku jest z 2015. Nie wiem co dalej działo się w temacie.
Mógłby ktoś lekko odświeżyć temat? Czy coś się działo z kodami przez ostatnie dwa lata? Były jakieś większe aktualizacje?

Pewnie
http://overpass-turbo.eu/s/sCD
Wystarczy w kreatorze do regexa dopisać “in Poland” (lub np “in Warsaw” jeśli chce się tylko miasto, lub jakikolwiek inny obszar którego granice są zdefiniowane w osm)

Gdy tak się dzieje to można zwiększyć wartość zmiennej timeout.

dodatkowo http://overpass-api.de/api/status jest też przydatne (czasem trzeba chwilę poczekać po dużych zapytaniach)

A jeszcze dwie rzeczy

  • iD ma dostęp do wszystkich tagów (ukryte menu po lewej stronie, na dole) - ale JOSM jest dużo lepszy
  • przed robieniem automatycznego importu (edycja bez weryfikacji każdego zmiany) trzeba się skonsultować na forum (na wypadek gdybyś coś takiego planował)

Tak też zrobię, na razie chcę zobaczyć skalę i obrobić to co będę w stanie z automatu - zamienić kody pięciocyfrowe na poprawny format.
Wszystkie inne błędy do ręcznej weryfikacji.

Zastanawiam się co z wpisami które w tym atrybucie mają więcej niż jeden kod, np:

{
	"type": "node",
	"id": 253549223,
	"lat": 50.3425064,
	"lon": 18.2036593,
	"tags": {
		"addr:postcode": "47-200;47-205;47-206;47-220;47-223;47-224;47-225;47-230;47-232",
		"name": "Kędzierzyn-Koźle",
		"name:de": "Kandrzin-Cosel",
		"name:lt": "Kendzežynas-Kozlė",
		"name:pl": "Kędzierzyn-Koźle",
		"name:ru": "Кендзежин-Козле",
		"name:szl": "Kandrzin-Koźle",
		"name:uk": "Кендзежин-Козьле",
		"place": "town",
		"population": "63194",
		"source:population": "http://stat.gov.pl/obszary-tematyczne/ludnosc/ludnosc/powierzchnia-i-ludnosc-w-przekroju-terytorialnym-w-2014-r-,7,11.html",
		"teryt:rm": "96",
		"teryt:simc": "0965424",
		"teryt:stan_na": "2009-01-01",
		"teryt:terc": "1603011",
		"teryt:updated_by": "teryt2osm combine.py v. 49",
		"wikidata": "Q605483",
		"wikipedia": "pl:Kędzierzyn-Koźle"
	}
}

@Imperator Lrrr dzięki za fix’a, jednak zauważyłem że zapytanie zwraca też node’y bez tagu addr:postcode, np:

{
	"type": "node",
	"id": 2503579833,
	"lat": 49.7216929,
	"lon": 19.0215346
}

W dokumentacji znalazłem informację na temat zliczania tagów:

node({{bbox}})(if:count_tags() > 0);
out geom;

niestety nie wiem jak to dodać do aktualnego zapytania. Generalnie chciałbym żeby zapytanie wyszukało wszystkie elementy które mają taki tag i ma on niepoprawny format.

Wywalić. Kody pocztowe w takiej sytuacji powinny być indywidualnie przypisane do każdego adresu, a nie zbiorczo do węzła miejscowości. Na węźle takiej miejscowości powinno być tylko: multi_postcode_place=yes

EDIT: Zresztą, już to zrobiłem; było tego tylko 9 sztuk.

@Zbigniew_Czernik dzięki za fix’a :slight_smile:

zostaje reszta. Posiedzę wieczorem i postaram się poprawić brakujące myślniki.

Czy nie są to czasem node będące częścią obszaru który ma kod pocztowy?

Znalazłem jeszcze taki wpis: http://www.openstreetmap.org/way/398037510

Czy oprócz overpass jest jeszcze inne narzędzie do wyszukiwania danych? Chciałbym wyciągnąć wszystkie kody pocztowe które mają inny format niż 00-000. To co się da poprawić z ręki (sam format) i w batch’u zaimportować.
Na razie kilka baboli poprawiłem ręcznie, ale to męczarnia.

Idealnie gdybym mógł wyrzucić dane do pliku, skorygować je i po konsultacjach zaciągnąć zmiany. JOSM ma taką możliwość? Jeśli nie to proszę o wskazanie narzędzi.

Ja próbowałem znaleźć takie kody przez bazę Postgresa. Udało mi się, lecz z racji tego że zaimportowany plik z mapą Polski ma margines na zewnątrz, to wypluwał mi głównie niemieckie i czeskie kody, które nie pasują. Ale na to jest rada - ogarnę dokładniejszą granicę Polski i nią wykroję fałszywe alarmy.

@RicoElectrico a mógłbyś od razu zrobić trim’a na polach?
Zauważyłem, że w kodach pocztowych są zbędne spacje na końcu. Kilka już poprawiłem.
Generalnie chyba wszystkie pola nie powinny mieć spacji na końcu i na początku.

Edytor level0 wygląda na to co chcesz https://wiki.openstreetmap.org/wiki/Level0 - a dokładniej to funkcja eksportu do level0 w overpass

JOSM też ma podobne możliwości ale przetwarzanie pliku xml jest dużo bardziej irytujące.

I tak, warto się skonsultować przed edycją automatyczną, zwłaszcza przed taką na większą skalę

Zgadza się, ale poprawienie tego automatycznie na masową skalę ma pewne wady

Jako że dopiero zaczynam z OSM każdą tego typu zmianę będę konsultował.
Drobiazgi w iD koryguję, ale batchowo na razie nic.

mógłbyś trochę doprecyzować?
Błędem są spacje na początku i\lub na końcu wyrazu\zdania, więc (jeśli to możliwe) powinniśmy je usuwać.
Może na początek w miejscowościach i kodach, później w pozostałych polach.
Z poziomu postgresql’a można szybko takie fix’y robić: https://stackoverflow.com/a/22701212/965722
Ciekawe jaka jest skala tego typu błędów i czy można by się przed tym ustrzec, ale to już temat na osobny wątek.

https://wiki.openstreetmap.org/wiki/What%27s_the_problem_with_mechanical_edits%3F opisuje złą stronę automatycznych edycji

Jest w tym trochę racji. Dodam że jestem osobą która ostatnio edytowała botem tysiące obiektów. Nie każda automatyczna edycja jest zła, poprawa formatu kodów pocztowych wygląda mi na coś z kategorii dobrych edycji.

Czy było by coś złego jakby kody pocztowe w celach wizualizacji danych były na granicach tak jak tutaj http://www.flosm.de/en/adminmap.html?lat=52.3654173&lon=14.5333963&r=33584.931&st=0&sw=admina,adminc,admine,adminz? Podejrzewam, ze prościej w celu wizualizacji danych dodać kod pocztowy do granic, niż do milionów punktów.

Wiem jest pewien problem bo brakuje granic, albo granice administracyjne nie pokrywają się z występowaniem określonego kodu pocztowego. Nie wiem jak w przypadku braku niektórych granic postępować chyba byłoby trzeba je dorysowywać.
Mapa z podziałem administracyjnym widać duże dziury w granicach “wsi” http://osmapa.pl/w/admin/?lat=52.22106&lon=19.22607&zoom=7&ol=r a tutaj wątek na wiki http://wiki.openstreetmap.org/wiki/WikiProject_Poland/Granice i forum https://forum.openstreetmap.org/viewtopic.php?id=17682

Nie było by prościej? Może powstała by pierwsza pełna mapa polski z kodami pocztowymi?

To nie wszystko, a co z większymi miastami gdzie jest więcej niż jeden kod, a podział administracyjny na osiedla nie pokrywa się ani z podziałem na poszczególne kody pocztowe ani z podziałem na dzielnice (np. Bielsko-Biała)

Też zauważyłem ten problem nie tylko w miastach w tym przypadku powinna być dorysowana granica dla kodu tak, żeby pasował. Nie jest łatwo, bo jak się spojrzy na mapę kodów pocztowych i polski to dwie różne mapy, kształt ten sam tak jak np: tutaj http://mapa-kodow-pocztowych.pl/ straszna mozakia.

Ja bym jednak proponował tagować na drogach/adresach jeśli podział administracyjny nie wystarcza.

Po pierwsze, z tego co widzę na http://kody.poczta-polska.pl/index.php to kody pocztowe przyporządkowane są do dróg/adresów, nie do obszarów. Co jeśli pojawia się nowa droga lub istniejąca jest wydłużana? Czy tagowanie jako obszary nie spowoduje przypisanie w niektórych przyapdkach błędnych danych?

Po drugie - takie obszary okropnie utrudniają edytowanie (w Krakowie są już parafie, podział adminstracyjny, strefy parkowania…).