Pastatai 2018

Kiek pastatų turime suvedę į atvirąjį žemėlapį? Palyginkime su GDR10LT.
Jei GDR’e yra 1,8 milijono pastatų, tai OpenStreetMap jų kol kas yra tik 0,8 milijono.
O čia galite pažiūrėti, kaip pastatų braižymas pasiskirstęs geografiškai:

Pastatų skaičiaus palyginimas su GDR

Kaip matome, pastatų dar labai daug trūksta. Labiausiai trūksta rečiau apgyvendintose vietovėse, soduose. Tikriausiai todėl, kad pastatai ten labai monotoniški – greitai pabosta braižyti. Taigi jei kada rasite laisvas kelias minutes – pridėkite naujų namukų – juos braižyti galima minutę, galima pusvalandį – kaip jau jums patinka. Ir žemėlapius pastatai tikrai labai praturtina, ir adresus suvesti žmonėms paprasčiau, ir įvairias lankytinas vietas žymėti aiškiau.

Share

Kelių koncentracija

Prieš mėnesį buvo rašyta apie kelių klasifikacijos reikšmę kartografijoje ir apie automatinius tikrinimus. Buvo identifikuotos trys problemos:

  • Pasimetę (neprijungti) keliai
  • Per aukšta klasifikacija
  • Per žema klasifikacija

Tada buvo pateiktas pirmos problemos (pasimetusių kelių) sprendimas. Dabar kilo mintis, kaip spręsti antrąją problemą (per aukšta klasifikacija). Gan paprastas (nors ir neidealus) pasirodė toks sprendimas:

  • Daliname Lietuvą į tokio paties dydžio segmentus
  • Kiekviename segmente skaičiuojame kelių ilgius
  • Tikriname didžiausius ilgius turinčius segmentus

Gaunasi visai neblogas rezultatas, kuo raudonesnis segmentas, tuo didesnė jo kelių koncentracija:

Lietuvos kelių koncentracija

Ir priartinta viena iš koncentracijų:

Priartinta kelių koncentracija

Kaip matome, aptinkamos kelių koncentracijos. Sutvarkius didžiausias koncentracijas iškyla neteisingai aptiktos problemos (angl. false positive), t.y. didžiųjų miestų keliai. Bandžiau žaisti su skirtingais segmentų dydžiais, skirtingų klasifikacijų kelių svoriais, skaičiuojant koncentraciją segmente, bet, matyt, teisingesnis sprendimas būtų panaudoti Statistikos departamento turimas gyventojų koncentracijas ir pagal tai koreguoti kelių ilgį. T.y. kuo didesnė gyventojų koncentracija, tuo didesnė gali būti ir kelių koncentracija. Na bet šitą paliksime ateičiai. Kol kas naudinga tiek, kiek identifikuoja paprastas algoritmas 🙂

Kai kurios koncentracijos gali būti neaptinkamos, jei segmentai dengia tik jų dalį. Šitą problemą galima būtų spręsti kuriant persidengiančius segmentus.

Paskutinę problemą – per žemą klasifikaciją – gal būtų galima spręsti darant maršrutizavimo testus, bet yra daug variantų, kur tiesiog kelių grafo analizė negali duoti teisingo sprendimo. Tarkim būna, kad yra kokia nors įmonės/gyvenvietės teritorija ir greta jos tolimesniu keliu eina apvažiavimas, kuris ir turi turėti aukštesnę klasifikaciją, nes būtent apvažiavimu turėtų važiuoti transportas. Panašu, kad tokių dalykų neįmanoma spręsti be ortofotografijos ir vietos žinių…

Share

Topologijos taisyklės

Plotai su „skylėmis“

OpenStreetMap žymėtojai dažnai klausia, ką daryti, kai turime parkelį, sudarytą iš miško ir jo viduryje esančios pievos. Kaip juos teisingai pažymėti?

Tokiu atveju OpenStreetMap tikėtina turėsime du kelius: A – išorinis perimetras, B – vidinės pievos perimetras:

Jei išorinį kelią A pažymėsime tiesiog landuse=forest, o vidinį – landuse=meadow, gausime tokius geografinius objektus:

Kaip matome, miškas neturi iškirpimo. Taigi jei skaičiuosime miško plotą – gausime neteisingą rezultatą. Kuriant žemėlapį reikės pievos plotą (apskritimą) paišyti vėliau (aukščiau) už miško plotą (stačiakampį), jei norėsime, kad pieva matytųsi. Kadangi realiame žemėlapyje bus daug panašių objektų, tai vienoje vietoje „iškirpimas“ bus pieva, kitoje – miškas, trečioje vanduo, ketvirtoje ežero sala. Taigi net teoriškai neegzistuos tokia braižymo tvarka, kuri užtikrintų teisingą objektų vaizdavimą. Vienu atveju nesimatys miškai, kitu – pievos, vienu atveju nesimatys ežero salos, kitu atveju – maži ežeriukai miškuose.

Sprendimas yra sukurti multipoligoną (ryšį), kuriame A kelią nurodytume kaip „outer“ kelią, o B – kaip „inner“. Tokiu atveju gautume trečią geografinį objektą:

Gavome objektą su „išpjova“. Būtent toks ir yra miškas. Turint tokį mišką mums ir ploto skaičiavimai gausis teisingi, ir nereikės rūpintis, ką braižyti pirmą – mišką ar pievą – visada gausime teisingą rezultatą, nes figūros viena su kita nepersidengia.

Galutinis objektų sąrašas turėtų būti toks:

  • C – miško multipoligonas (landuse=forest), sudarytas iš A kaip „outer“ ir B kaip „inner“.
  • B – pievos poligonas (landues=meadow) – kelias B
  • A – parko poligonas (leisure=park) – išorinis kelias. Parkas yra viskas: ir miškas, ir pieva. Braižant žemėlapį parkas yra „virš“ visko. T.y. apačioje braižome miško/medžių ir pievos/žolės plotus, o tada virš jų, jei to reikia žemėlapiui, paišome permatomą „parko“ plotą arba tiesiog parko pavadinimą, dengiantį tiek miško, tiek pievos dalis.

Puiku. Bet ne visi žino, kad taip reikia žymėti. Ką daryti? Sukurti ir naudoti Topologijos taisykles, kurios šiuo konkrečiu atveju nurodytų, kad miško ir pievos poligonai negali persidengti.

Kas yra topologijos taisyklės?

Topologijos taisyklės apibrėžia santykį tarp skirtingų objektų geografinėje informacinėje sistemoje. Tarkime viena taisyklė gali nurodyti, kad miško poligonai negali persidengti vienas su kitu. Kita taisyklė gali nurodyti, kad miško poligonas negali persidengti su vandens poligonu. Dar kita taisyklė – kad miesto X adreso taškai turi būti miesto X administracinėse ribose.

Daugiau principinių topologijos taisyklių pavyzdžių galite rasti ESRI Topologijos taisyklių brošiūroje.

Kam reikalingos topologijos taisyklės

Apibrėžus topologijos taisykles ir jų laikantis, geografinė duomenų bazė tampa tvarkingesne. Kuriant ar keičiant duomenis aiškiau, kaip reikia teisingai braižyti. Prisiminus aukščiau aprašytą parko pavyzdį, apibrėžus taisyklę, kad miškas ir pieva negali persidengti, pasidaro aišku, kad neužteks nupaišyti pievą vidury miško, reikia tokį patį plotą „iškirpti“ iš miško.

Laikantis tokių taisyklių palengvinamas ir kartografų darbas. Jei pagal aukščiau apibrėžtą pavyzdį pievos plotas bus iškirptas iš miško, kartografui nereikės rūpintis, ką paišyti pirmiau/žemiau – mišką ar pievą. Nors šiuo konkrečiu atveju atrodytų, kad paišykime mišką žemiau, tada virš jo pievą ir viskas bus gerai, bet kas bus, jei turėsime analogišką situaciją, tik dabar jau turėsime mažą miškiuką didelėje pievoje? Jei nedarysime pievos iškirpimo pagal miško plotą, galutiniame žemėlapyje miškas nesimatys.

Nepamirškime ir plotų skaičiavimo. Tarkime norime paskaičiuoti bendrą miškų plotą. Jei pievos ar kiti miško viduje esantys plotai nebus „iškirpti“ – mes gausime neteisingą suminį plotą (bus įskaičiuotas ir pievų plotas). Susumavę visus Lietuvos miškus, pievas, gyvenamuosius plotus, vandenį ir t.t. ir pan. mes gausime didesnį skaičių nei bendras Lietuvos plotas!

OpenStreetMap

Atvirame žemėlapyje duomenims yra suteikiama labai didelė laisvė. Žymėtojai patys gali susigalvoti norimas žymas, jų reikšmes. Taip pat nėra apibrėžtos (bent jau kol kas) ir topologijos taisyklės. Taigi kas kaip sugalvoja, tas taip ir braižo. Tokia anarchija nors ir padaro braižymą lengvesniu, bet užtat tokių duomenų naudojimas yra sudėtingesnis.

Taigi kol kas yra apibrėžiamos tik regioninės topologijos taisyklės. Pavyzdžiui Lietuvoje yra apibrėžtos kelios topologijos taisyklės. Bendras jų veikimo procesas yra toks:

  1. Topologijos taisyklė yra suformuluojama, pasiūloma ir aptariama.
  2. Topologijos taisyklė patvirtinama, vykdoma taisyklės neatitinkančių objektų paieška, taisomos problemos ir tuo pačiu tikrinama, ar visur taisyklės taikymas yra logiškas. Jei kažkur taikymas nelogiškas – taisyklė arba taisoma, arba jos atsisakoma apskritai.
  3. Jei pavyksta ištaisyti visas topologijos taisyklės klaidas, taisyklė įjungiama į „stebėjimo režimą“. Tai reiškia, kad periodiškai (kasdien) yra patikrinama, ar naujai įvesti ar pakeisti objektai atitinka taisyklės reikalavimus.

Tai tiek bendros informacijos apie topologijos taisykles. Žinokite, kad toks dalykas yra, rašykite į sąrašyną (talk-lt) naujų taisyklių kūrimo ar esamų keitimo pasiūlymus!

Share

Kelių ilgiu susilyginome su komerciniu žemėlapiu

Šiomis dienomis Lietuvos atviras žemėlapis pasiekė svarbią ribą – kelių ilgiu susilyginome su komerciniu Garmin žemėlapiu!

Kasdien atnaujinamo Open street map Garmin žemėlapio svetainėje galite rasti pagrindiniu kiekybinių žemėlapių parametrų palyginimą:

osm_garmin_palyginimas

Kaip matome, atvirame žemėlapyje kelių jau yra truputį daugiau (ir kiekvieną dieną kelių vis daugėja), gyvenviečių skaičius irgi jau lygus (atvirame žemėlapyje suvestos visos Lietuvos gyvenvietės: miestai, miesteliai, kaimai ir viensėdžiai). Vis dar stipriai atsiliekame adresų skaičiumi (taip tikriausiai bus tol, kol Lietuva neįgyvendins ES direktyvų ir neatvers adresų registro) ir lankytinų vietų skaičiumi.

Sekdami ankstesniu įrašu apie komercinio ir atviro žemėlapio kelių ilgio palyginimą, ir šį kartą žvilgterėkime į skirtingų kelių tipų kitimą laike:

kelių_ilgiai_pagal_tipus_2016

(Ši palyginimo diagrama paimta iš Lietuvos OSM statistikos puslapio)

Kaip matome, visi pagrindiniai/didieji keliai jau yra suvesti (tokią išvadą galime daryt iš to, kad jų ilgis jau praktiškai nesikeičia paskutinius metus). Taigi dabar daugėja miško/lauko keliukų, įvairių pėsčiųjų/dviračių takų ir pan.

Miško kelius/takus dažniausiai yra neįmanoma braižyti pagal ortofoto, kad ir kokios geros kokybės ji būtų. Taigi šiais laikais, kai dauguma turime išmaniuosius telefonus su GPSR įranga, norėčiau paprašyti visų galinčių rinkti miško kelių pėdsakus, kelti juos į OpenStreetMap ir tada registruoti pastabą, kad žymėtojai galėtų jūsų įkeltą pėdsaką paversti OSM keliu.

Taigi „į begalybę ir dar toliau!“ 🙂

Share

Klaidos Baltijos jūros regione

Yra eilė priemonių, ieškančių žymėjimo klaidų OpenStreetMap žemėlapyje. Kai kurios klaidos yra kritinės – tarkim transporto vektorių susikirtime nėra taško, dėl ko neveikia arba neteisingai veikia maršrutizavimas. Kitos klaidos ne tokios rimtos – tarkim reikalavimas, kad visi kelių vektoriai turėtų įvestą maksimalų greitį (net jei maksimalus greitis toje atkarpoje „standartinis“).

Gerą taisyklių rinkinį turi rimtesnysis OSM redaktorius JOSM. Klaidų ieško ir tokie projektai kaip Osmosis, Keepright ir eilė kitų. Kai kurių Lietuvai specifinių klaidų mes ieškome patys. Žodžiu klaidų aibių yra daug. Kadangi Keepright yra seniausias iš šiuo metu vis dar aktyvių klaidų aptikimo projektų, tai apsistokime ties juo.

Paimkime Keepright klaidų rinkinį ir pažiūrėkime, kaip jis atrodo vizualiai. Keepright klaidas teikia stačiakampiais gabalais. Imkime tiek gabalų, kad būtų pilnai uždengtas Lietuvos plotas. Išimkime klaidas, kurios nėra kritinės, bet kurių prisiskaičiuoja labai daug – maksimalaus greičio reikalavimą ir reikalavimą, kad kiekvienas „track“ tipo keliukas turėtų dar ir kokybės žymą (tracktype). Taigi imame visas klaidas išskyrus minėtų dviejų tipų. Kiekviena klaida vaizduojama tašku. Ką gauname? Štai ką:

klaidos_aplink_baltija

Iš pradžių galvojau ant šio vaizdelio uždėti ir Lietuvos plotą orientacijai, bet… panašu, kad nelabai reikia…? 😉

P.S. Apatiniame kairiame kampe balta, nes tiesiog nebuvo imtas Keepright stačiakampis su Vakarinės Lenkijos ploto klaidomis.

Share