RGZ otvorio registar prostornih jedinica - plan za import

Da, rupa postoji. Mom racunaru treba 20tak sekundi da prikaze obe granice :frowning:

Ovo moramo da reklamiramo RGZu :wink:

Границе насеља које остављају простор између њих су званични подаци. Тачније, не припадају ниједном насељу и то је политички тако дефинисано јер га нико није хтео.

Како ове податке третирати? Логички, као што је Дуја урадио, или формално као што је РГЗ?

Ja bih išao formalno (drugim rečima - bez logike :slight_smile: ) Razlog je što ne verujem da će ijednom geokoderu ove parcele biti bitne (ili kome god još?), a ostavlja nam prostor da postignemo veću preciznost sa autoritativnim podacima, i da je merimo. Ne kažem da sad treba da idemo i prepravimo sve ovo, nego da treba tome da težimo.

Izvini na kasnom odgovoru (iz nekog razloga mi ne stižu mailovi iako sam subscribe-ovan na ovaj post). Nisam mislio da kačim ništa dok ne izađemo sa predlogom pred import mailing listu (što se možda neće ni desiti :slight_smile: ), pa evo sklepano na brzinu ovo kako sam ovo sad napravio: https://gitlab.com/osm-serbia/prostorne-jedinice-import

Za sva pitanja, otvarajte issue-e tamo, da ne odlazimo mnogo u offtopic ovde!

edit: promena URL-a do repoa prostornih jedinica

Ovako, ljudi, imam vise novosti da podelim

  1. Uradio sam analizu ovih podataka. Rezultati analize su ovde: https://kokanovic.org/rpj-analysis.csv. Kolone su:
  • district, municipality - iz RGZ-a
  • osm_municipality - kako se zove relation u OSM-u
  • relation_id - ID relacije u OSM-u (uzeo sam ga usput posto ce nam trebati kad budemo lepili maticni_broj)
  • area_diff - metrika 1, intersection(povrsina OSM, povrsina RGZ) / povrsina (RGZ), u procentima
  • points_diff - metrika 2, Pedjina metrika, suma udaljenosti svih tacaka RGZ poligona od OSM poligona. Nema neke jedinice za meru posto biblioteka koju sam koristio (shapely) radi samo sa euklidskim prostorom, tako da su njoj 22.7, 44.2 bili samo obicni brojevi. Verovatno moze da se prebaci u metre, ali sam posle shvatio da ce vrednost da zavisi od toga koliko RGZ poligon ima tacaka (vise tacaka, veci broj)

Ceo kod za ovo je na https://gitlab.com/osm-serbia/prostorne-jedinice-import (measure_quality.py). Tamo i Pedja radi, ako imate sta da dodate - pozvani ste:)

Sto se tice komentarisanja rezultata - i 50.-ti percentil kao i average area_diff za sva naselja je 95.05%. To znaci da se RGZ i OSM poligoni naselja (admin_level=9) slazu u 95% povrsine! Ili smo mnogo precizni ili je radila Resavska skola, a znamo svi sta je od ova dva:) To mi govori o tome da smo vec jako dobri i da mozemo mahom da se fokusiramo na losija naselja (npr. <90%), i da ako nema (velike) potrebe za automatizacijom popravljanja granica (ali ako je neko napravi - dobrodosla je:). Nemojte jos poceti da popravljate losa naselja, pisem u narednim tackama zasto

  1. Pricao sam sa Guillaume-om (OSMF) na OSM Srbija grupi na Telegramu oko sr:maticni_broj i on predlaze da to bude “ref:sr:maticni_broj” sto je i Duja predlozio, cini mi se. Ima li neko nesto protiv da idemo sa ovim?

  2. Poceo sam wiki stranu za import na https://wiki.openstreetmap.org/wiki/Serbia/RGZ_Import koju cemo da prezentujemo na import mailing listi kad budemo poceli sa radom (koji god to rad bio). Ovo je po https://wiki.openstreetmap.org/wiki/Import/Guidelines. Ne kazem da ce nam ovo trebati (ako se odlucimo da ne radimo nista, npr.), ali eto. Ako neko ima nesto da doda tamo sto sam ja zaboravio, slobodno! Takodje - zamolio bih da ne koristite onaj .osm koji sam dao i popravljate granice, prvo zato sto se nismo javili na mailing listu, drugo zato sto pravim uputstvo za rucno ispravljanje, trece zato sto mozda to automatizujemo (mpele mozda radi na JOSM pluginu, ja isto razmisljam o automatizaciji nekoj…)

  3. Posto je Kosovo u decembru od drzave isto dobilo granice kao opendata, uzeo sam da uporedjujem granicu Srbije i Kosova i skoro smo 100% isti! Vise detalja na wikiju za import. Ono sto nije isto je granica u OSM-u koja cik-cak-uje izmedju zvanicnih granica, pa cu da se javim na Kosovo forum da ih pitam da je popravim (neka nasa naselja su jako mala zbog ovih gresaka, npr. Ranatovce, Madjare).

  4. Sledeci korak je da dodam subarea i ref:sr:maticni_broj kad pitamo na import listi.

  5. Uspeo sam konacno da smislim kako i da uz pomoc JOSM-a “popravim” granicu Visnjiceva u ovom changeset-u: https://www.openstreetmap.org/changeset/79291720#map=13/44.9886/19.2986. Sa 98% na 100%:slight_smile: Uskoro planiram da napravim uputstvo za ovo, ali i dalje je pesacki posao sklon greskama i ako ima dobrovoljaca da se podelimo po okruzima, trebalo bi nedelju dana po 8h da jedan covek izgura jedan okrug. Jako je dosadan posao, ali okacicu uputstvo. Ako ima dobrovoljaca - javite se i birajte okrug:) Ako i planirate da nesto popravljate, opet - sacekajte slanje na import mailing listu i da napisem uputstvo, mozda vam bude znacilo.

  6. Jos razmisljam da li da pravim automatizaciju da se poprave granice. Deluje zanimljiv programerski problem, ali deluje da je veca dara nego mera - mnogo ce mi vremena ode da popravimo nesto sa 95% na 100%. Mozda da se podelimo i rucno da izgruvamo ovo sto rekoh u stavki 5… ili jednostavno da zivimo sa 95% preciznosti:)

edit: promena URL-a za repo prostornih jedinica

Ne bih se ja radovao. Pre bi se reklo da je RGZ otvorio podatke manje preciznosti, thj. one koji su već bili dostupni.

Бранко, тераш нас да се понављамо… опет морамо да се дивимо урађеном и да честитамо… :wink:

Згодно би било да се сума растојања подели са бројем тачака у РГЗ полигону, као да се и забележи максимална вредност тог растојања.

Зар није речено да се обавезно иде са импортом података - да буде 1:1 са РГЗ-ом?

Да ли је упаривање података ишло само преко назива? Чини ми се да је преко 160 насеља остало необрађено.

Pa jeste, rekli smo da hocemo 1:1 sa RGZ-om. Rekli smo obavezno. Ali ako se ne javi npr. po jedna osoba po okrugu, onda nemamo “ljudstva” i ako se ne pojavi ili radna snaga ili se ne pojavi dobra vila sa automatizovanim resenjem, moramo da cekamo “bolja vremena”:slight_smile: Ne znam kako drugacije? Ja cu napisati uputstvo i mogu da uzmem jedan okrug, ali stvarno treba jos ljudi. U paraleli, pokusacu da se igram da vidim da li moze da se automatizuje ovo pomeranje puteva i sl.

Da, namerno nisam hteo da se pravim pametan i da komplikujem logiku match-ovanja. Sve sto nije nadjeno => ne poklapa se 1:1 sa OSM-om i treba proveriti rucno, time sam se vodio. Mozda sam pogresio, ali nije ni bitno, 160/4000 je dobar procenat:)

Ако постоји толики проценат поклапања назива, онда за њих може да се направи потпуна аутоматизација.
Само би морала да се уради детаљна визуелна контрола пре самог импорта.

Upravo zato sam u CSV vadio i relation ID;) Ako imamo poklapanje po nazivu naselja i ako je poklapanje po teritoriji preko 80% (što znači da je Rakovica niška, a ne beogradska), možemo biti prilično sigurni da su ta naselja iste stvari u OSM-u i RGZ-u i dodati “ref:sr:maticni_broj”. To mi je plan da tako zalepim taj tag na 3800 naselja, a ostatak pešaka…

Napisao sam uputstvo za ručno pomeranje puteva. Ostavljam vam da sami procenite koliko je teško tako što ćete probati da se poigrate:
https://wiki.openstreetmap.org/wiki/Serbia/RGZ_Import/Uputstvo

Ako vidite greške u uputstvu, popravite.

Ja stvarno cenim da jedna ispraksirana osoba može da obradi jedan okrug za 1-2 nedelje x 8h dnevno (ali naravno, ne mislim da bi iko mogao mentalno da izdrži da ovo radi 8h u kontinuitetu :smiley: )

Бранко,

Ако имам два назива насеља, могу ли са упитом да добијем way који је део релација обе границе (заједнички сегмент)? Ако је то изводљиво, онда је лако аутоматизовати замену тачака. Од неизвесних ствари, остало би само да се технички реши питање заједничих тачака на почетку/крајеву сегмената.

Obratite pažnju da ima i područja koja imaju “eksklave”. U Vojvodini su to Jazak i Jazovo, za koje mi se čini da Brankov metod daje loše rezultate za area_diff (uzima samo jednu oblast) te Nadalj, čiju eksklavu nisam ni uneo u OSM (jer mi je i dan-danas čudno da se nalazi toliko daleko od sela).

Takođe, ima naselja čija imena na OSM nisu ista kao u RGZ. Što se Vojvodine tiče, to su Grgeteg (u RGZ je stariji i danas ređe korišteni oblik Grgetek) i Vojvoda Zimonjić (u RGZ je oblik Zimonić koji je verovatno nekom greškom ušao u opticaj, naselje je nazvano po vojvodi Bogdanu Zimonjiću). Opština Sremski Karlovci ima samo to naseljeno mesto pa i nema relaciju admin_level=9. Zaselak Obornjača u opštini Bačka Topola je napušten, pa taj atar nisam ni uneo; verovatno po Srbiji ima još napuštenih sela pa ne vidim mnogo smisla unositi ih.

Usput sam popravio par imena na OSM koja su bila materijalne greške (Buđevo, ne Budevo, kod Sjenice, Tićevac kod Trstenika). Za neke atare i dalje daje podatke -1 (Donje Međurovo, Bubanj kod Niša, ), mada sve izgleda u redu. Verovatno je problem što su u opštini ПАЛИЛУЛА (НИШ), čije ime se ne parsira dobro – treba odstraniti zagrade iz imena sa RGZ.

Update:
Okačio sam na import mailing listu objavu da planiramo import: https://lists.openstreetmap.org/pipermail/imports/2020-January/006149.html
Pitao sam na Kosovu da popravim granicu i za Kopaonik: https://forum.openstreetmap.org/viewtopic.php?id=68476. Na Telegram grupi su mi rekli da je granica koju oni imaju stara granice sa autonomne pokrajine, a da je naš RGZ pre 4 godine “gurnuo” granicu u Kosovo i da je to bila vest na Kosovu:

Neću da diram tu granicu, neka je takva-kakva je.

Planiram da uskoro unesem sve “ref:sr:maticni_broj” tamo gde može i da unesem ručno ovo gde ne može i da popravim ime tamo gde može (tj. tamo gde Duja nije:)

Da, iskreno, nisam mnogo trošio vremena na ovo, bitno mi je bilo da izguram ove “normalnije” geometrije:) Pogledaću detaljnije kad unesem “ref:sr:maticni_broj” da li mogu da popravim proračun za area_diff.

Ne znam kako konzistentno da se “borimo” protiv ovoga. Ne bih baš sve da verujemo RGZ-u (npr. Gregeteg i Zimonic bih ostavio, možda dodao RGZ nazive u “official_name” ili “alt_name”, a ne bih dodavao ni “(Niš)” na Palilulu u Nišu ili na druga takva mesta, pošto su ionako to dodali samo da bi ime bilo jedinstveno). Sa druge strane, ja bih da ta zapuštena sela unesemo, jer ne verujem da možemo da obilazimo celu Srbiju i da mi odlučujemo da li je nešto napušteno ili ne. Šta misliš?

Hvala što si javio, pogledaću sad kad budem unosio “ref:sr:maticni_broj”, ko zna kakve sve bugove imam:)

Први тест (полу)аутоматског кориговања граница по РГЗ подацима је успешно изведен https://www.openstreetmap.org/changeset/79841564#map=15/44.9426/19.8971 .

Рекао бих да је овај начин употребљив у великом обухвату, али да је сада потребно да се реше још пар ситних детаља.

U međuvremenu sam prošao gotovo sve one koji su imali -1 pa ispopravljao. Bilo je tu svega, razlikovala su se imena naselja i relacija, ili su se oba razlikovala od RGZ, jedno selo je nedostajalo… ako ništa drugo, sad imamo čistiju situaciju. Nisam prolazio kroz ona koja imaju zagradu u imenu jer znamo ta nisu dobro uparena. Verovatno sam još pokoje propustio, ili postoji još poneki bag u algoritmu.

Neka od imena sam sredio, i iskoristio old_name ili alt_name da upišem alternativna (uvek napravim celu četvorku, dakle old_name, old_name:sr, old_name:sr-Latn i old_name:en). Nema puno takvih slučajeva, ali ih nisam zapisao. :smiley: Da se izvući programski.

Slažem se da unesemo i ta napuštena, ova Obornjača je ionako bila zaselak pa joj je atar samo obuhvatao granice sela, ne i okolne njive.

Nego, pade mi još na pamet: zna li neko kako da nađemo granične linije koje su deljene sa nekim drugim objektom, kao što je potok ili put, da ne napravimo karambol?

U idealnom svetu administrativne granice bi bile lejer za sebe, i na OSM wiki je preporučeno da se boundary tagovi ne stavljaju na fizičke objekte, osim u izuzetnim slučajevima. Koliko sam ja prošao u ovoj poslednjoj turi, to je kod nas i ispoštovano: našao sam samo jedan deljeni way, a u Vojvodini sam ih ja unosio pa sam siguran da ih nema.

Dakle, trebao bi nam jedan upit za sve boundary=administrative koje na sebi imaju još neki tag pride (mislim da je dovoljno tražiti waterway i highway?)

Edit: napravih ga sam, nije bilo teško, a nije ni strašno.
http://overpass-turbo.eu/s/PX2
24 way-a ukupno, verovatno (ne)delo istog čoveka :wink:

Такав је и план да се уради - додаће се нове тачке које ће дефинисати границе.

Mislim da su ti “ispali” node-ovi od prethodnog way-a. Vidim ih iz iD editora kada otvorim tu lokaciju. Treba ih pobrisati u istom changeset-u. Ako to ne uradimo, ostavljaćemo smeće za sobom.

Da li ima neko uputstvo kako si ovo izveo, bolje bi bilo da svi vidimo kako tačno ovo radiš, što da više očiju vidi, što da potencijalno pomognemo, što da ostane za sledeći put kada RGZ da novi dataset. I ako koristiš https://gitlab.com/stalker314314/prostorne-jedinice-import/blob/master/preklapanja.py, čisto da znaš da ovo neće rešiti boundaryje koji nisu deljeni između dva naselja, ali to verovatno znaš. Ja ću probati u februaru da se igram, da od .osm fajla (što je XML) uradim conflate-ovanje, ali za to mi naravno treba unet “ref:sr:maticni_broj” (i regeneracija .osm-a da to sadrži) pa mi je fokus na tome.

Nije samo way-ovi, može da bude i node-ova sa nekim značenjem zakačenim za boundary way, treba i na to paziti. U svakom slučaju, to treba razdvojiti, što kaže mpele. Ja sam za to da ceo proces promene puteva ništa ne radi čovek i da uradimo skriptom, pošto će automatizacija pomoći i kada RGZ ponovo okači nov update, ali ako hoćete pešaka, ko sam ja da branim:)

Počistio sam sve, tj. razdvojio sve administrativne granice od puteva, potoka i pruga iz gornjeg upita. Da li ima tu još nekih gluposti, tipa da dele granice sa kakvim landuse=, stvarno ne znam.

Ja neću pešaka, već sam jednom ubeleo dok sam ih unosio prvi put… ali sam se uvežbao. :stuck_out_tongue: Jbg, nije mi radila kristalna kugla da će se importovati za manje od godinu dana.

Као што сам више пута до сада помињао то је остављено за други корак. Провера да ли та тачка припада још нечему је превише “скупа”, а све те тачке које не припадају ниједном путу или релацији и немају додатне тагове се могу врло лако и ефикасно обрисати накнадно.

Иначе, овај тест је требао да покаже техничку могућност замене тачака, као и коректност промене пројекција.

Урадио сам commit тренутног стања. Скрипта није готова, али снаћићеш се већ https://gitlab.com/mpele/prostorne-jedinice-import/commit/dd38808b1bb48937821c59dab0e7cd7a72359316 . Улаз је излаз из претходне скрипте.

Једино што нисам сигуран како је најбоље извести је да крај/почетак једног сегмента буде почетак/крај другог сегмента границе. Како елегантно одредити да ли већ постоји тачка са истим координатама? Да ли и то накнадно сређивати са већ постојећим алатима за верификацију (нпр. ЈОСМ)?