osm-pl / osm-addr-tools

Address conflation tools, expanded version of https://gist.github.com/balrog-kun/4241509 and friends
3 stars 3 forks source link

Skrypt nie scala identycznych adresów o tych samych koordynatach #33

Closed zibik closed 8 years ago

zibik commented 8 years ago

Skrypt nie zauważa, że adresy leżą w tym samym miejscu i zamiast je scalić, oznacza je tagiem fixme=Duplicate[...] Gmina, w której to wyszło: ./merger.py --gugik --terc 3010022 (Grodziec)

wiktorn commented 8 years ago

Hmm... Chyba tego nigdy nie było.

Jakby to miało działać? Po imporcie brać punkty z addr:housenumber w małej odległości od siebie (nie wiem <5m?) i o ile tagi się zgadzają - to zostawiać tylko jeden (losowo wybrany)?

Bądź co bądź, w przypadku tej gminy mamy do czynienia z sytuacją, w której to w danych źródłowych występują duplikaty.

zibik commented 8 years ago

Chodzi o deduplikację w danych źródłowych, jeszcze przed jakimkolwiek merdżowaniem z danymi OSM. W tej gminie mamy sytuację, że dużo adresów leży jeden na drugim (nawet JOSM zgłasza duplikaty, więc ich koordy są identyczne).

wiktorn commented 8 years ago

Zrobiłem deduplikację w danych źródłowych. Usuwa wszystkie zduplikowane adresy, które są w mniejszej odległości niż 2m. W sytuacji, gdy dla danego adresu mamy duplikaty w większych odleglościach, dla każdej pary, dla której odległość jest mniejsza niż 2m, jeden z adresów jest usuwany.

W ekstremalnym przypadku, gdyby ktoś zrobił linię z duplikowanym adresem a odległość pomiędzy kolejnymi punktami była mniejsza niż 2m, to nawet gydby linia miała 1 km, zostanie tylko jeden adres (przy szczęśliwej kolejności przetwarzania, równie dobrze - może pozostać połowa punktów).

Alternatywne podejście jakie miałem do tego, to usuwać duplikaty tylko wtedy, gdy wszystkie duplikaty znajdują się w promieniu 2m, ale w przypadku tej gminy to by akurat nie zadziałało do końca...