Vandens telkinių etiketės

Visi ne kartą matėte žemėlapiuose ežerų ir tvenkinių etiketes (pavadinimus). Spausdintuose profesionalių kartografų sukurtuose žemėlapiuose tokios etiketės yra išlenktos pagal vandens telkinio formą, šrifto dydis ir tarpai tarp raidžių parinkti taip, kad etiketė būtų kiek galima didesnė (proto ribose).

Prie ežero formos pritaikytos etiketės labiau siejasi su ežeru, t.y. žemėlapio skaitytojui aiškiau, kad ši etiketė priklauso būtent ežerui, ir būtent šitam ežerui. Kuo mažiau skaitytojui reikia sąmoningai galvoti – tuo žemėlapis yra aiškesnis, tuo geriau jis perduoda norimą informaciją.

O štai internetiniuose žemėlapiuose tokios etiketės paprastai tiesiog numetamos kaip paprastos, horizontalios, vienodo šrifto ir vienodų tarpų tarp raidžių. Tas pats buvo ir su OpenStreetMap žemėlapiu. Tikriausiai labiausiai pažengusiu galima laikyti gūglo žemėlapį, kur vandens etiketės bent jau pakreiptos pagal ežero formą, bet dydis vis tiek vienodas.

Šito priežastis gan paprasta: nėra trivialu parašyti algoritmą, kuris paskaičiuotų teisingus etikečių parametrus, bet dar sunkiau yra iš principo abstrakčiai aprašyti, kaip tos etiketės turėtų atrodyti.

Džiugu pranešti, kad bendradarbiaujant su Lietuvos kartografų draugija baigtas pirmas tokių etikečių skaičiavimo algoritmo kūrimo etapas. Kuriamos paprastesnių vandens telkinių (kurių yra 99%) etiketės ir šiuo metu vaizduojamos Lietuvos topografiniame žemėlapyje:

Prie ežero formos ir dydžio pritaikytos vandens telkinių etiketės

https://topo.openmap.lt/#t/14/55.31276/25.55175/0/0/

Jau greitu metu tokios etiketės bus naudojamos ir kituose openmap.lt žemėlapiuose, etikečių duomenys bus pateikti atviru formatu visiems, kuriantiems savo žemėlapius.

Detalesnę techninę informaciją rasite Spatial Forces tinklaraštyje.

Share

Įdomiosios administracinės ribos

Atvirajame žemėlapyje (OpenStreetMap) adresus suveda vietos žinias turintys žmonės, nes Registrų centre saugoma adresų informacija vis dar uždara. Išimtis tik Vilnius, kuris kol kas vienintelis drąsus Lietuvos miestas, atvėręs savo adresų (ir ne tik) duomenis.
Adresų paieškai reikia dar ir administracinių ribų. Kadangi šie Registrų centre saugomi duomenys irgi uždari, tai juos tenka rankioti iš bendrųjų planų ir tada modifikuoti pagal realiai įvestus adresus.
Šiame įraše ir noriu parodyti vieną vietą Vilniaus rajone, kur administracines ribas suvedus pagal realius adresus, gavosi labai „įdomus“ rezultatas.

Prašome pasigėrėti:

Viena spalva – viena gyvenvietė!

Žinoma oficialios administracinės ribos ne tokios sudėtingos, bet oficialiose ribose oficialūs adresai sukrenta iš kitų gyvenviečių, t.y. gyvenvietės X ribose turime gyvenviečių Y ar Z adresus, o tai dar blogiau 🙂

Share

Lietuvos upių baseinai II

Beveik prieš metus buvo rašyta apie Lietuvos upių baseinų žemėlapio kūrimą. Atsirado žmonių, kurie norėjo detaliau pasinagrinėti tokį žemėlapį, o susikurti savo db, įvykdyti skaičiavimus ir pan. nėra taip labai jau paprasta. Taigi dabar pristatome tą patį žemėlapį, tik jau perdaryta vektorinėmis internetinių žemėlapių technologijomis: https://openmap.lt/baseinai.html.

Upių baseinų žemėlapis

Kad stambesniuose masteliuose būtų kiek paprasčiau orientuotis – fone pridėti labai blyškūs gyvenviečių pavadinimai (kad nelįstų per daug į akis, nes svarbiausia šiame žemėlapyje – upės). Taip pat pridėtas ir puikusis reljefas, kurio tamsus variantas dera su neoniniu vandens kelių stiliumi ir sukuria atitinkamą „emocinį foną“.

Stambus upių baseinų žemėlapis

Share

Topografinis žemėlapis

Topografinis Lietuvos žemėlapis – naujausias pagal OpenStreetMap duomenis sukurtas Lietuvos žemėlapis. Topografinio žemėlapio viena pagrindinių detalių – aukščio informacija. T.y. topografinis žemėlapis be aukščio informacijos – ne topografinis.

Panaudojant NŽT aukščio informaciją, SpatialForces narys Marius paruošė duomenis, tinkamus aukščio informacijai vaizduoti žemėlapyje. Todėl dabar pristatome https://topo.openmap.lt

Topografinis žemėlapis

Pradiniai NŽT aukščio duomenys yra ~1m2 gardelės. Toks detalumas naudingas nebent labai specifinėse situacijose (pvz. archeologijai, statyboms), todėl aukščio duomenys buvo supaprastinti iki 4m2 gardelės. Tai vis tiek yra gerooookai tikslesni duomenys, nei beveik visų žemėlapių naudojami Shuttle duomenys (SRTM), kur gardelės dydis yra 30m2.

MapBox GL-JS aukščio šešėliavimo varikliukas leidžia šešėlius braižyti kliento naršyklėje, todėl gaunamas interaktyvumas. Tarkim topo žemėlapyje yra nustatyta, kad saulė visada šviečia iš viršaus kairės. Pabandykite pasukti žemėlapį ir pažiūrėkite, kaip atitinkamai perpaišomi šešėliai.

Žemėlapio stilius pastoviai papildomas remiantis Lietuvos topografinio žemėlapio specifikacija, ją šiek tiek pagardinus bene garsiausių kartografų – SwissTopo kūrėjų – spalvomis ir šriftais.

Share

Mašininis mokymasis III: procesas

Orto

Prieš kelias savaites rašiau, kokią naudą gali duoti mašininis mokymasis OpenStreetMap duomenų tvarkymui Lietuvoje, taip pat kokie yra pirmų praktinių bandymų rezultatai.

Kaip ir daugeliu atveju, plikas kodas neduoda žymios naudos, jei jis nėra integruotas į didesnį procesą, tai šį kartą aprašysiu, koks kol kas sugalvotas mašininio mokymosi panaudojimo procesas Lietuvoje (džiugu būtų išgirsti ir jūsų minčių!).

Mašininio mokymosi veikimui mums reikia sukurti kokybišką mokymosi duomenų aibę, o tada ją palaikyti, nes su laiku keičiasi tiek ortofoto, tiek ir OSM duomenys. Todėl reikia periodiškai pažiūrėti, ar mokymosi kaladėlėse OSM duomenys vis dar atitinka ortofoto. Jei to nepadarysime, vykdant naujus modelio mokymus, jis gali mokytis pagal neteisingus duomenis, todėl rezultatų kokybė gali kristi.

Nesinori į mokymosi aibę dėti labai panašių kvadratų, arba tokių, kuriuose atpažinimas jau vyksta gerai. T.y. šiuo metu manau, kad geresnę mokymosi aibės kokybę galima pasiekti rankiniu būdu peržiūrint atpažinimo rezultatus ir tada į mokymosi aibę pridedant tuos kvadratus, kuriuose dar reikėtų papildomai pasimokyti: t.y. tiek atpažinti nepastebėtus pastatus, tiek ir neatpažinti kaip pastatų visai kitų objektų.

Gauname tokį procesą:

Deep learning veikimo schema

Viso ko pradžia yra pradinė mokymosi aibė. Pačioje pradžioje nėra kito kelio kaip tik rankiniu būdu parinkti šiek tiek kaladėlių, kuriose būtų analizuojami objektai (pvz. pastatai). Kol pradinė mokymosi aibė bus nedidelė (keli šimtai įrašų), modelis dar nepateiks gerų atpažinimo rezultatų, bet pradėti nuo kažko reikia.

Apmokę modelį su pradiniu duomenų rinkiniu, galime paprašyti, kad modelis patyrinėtų didesnį plotą (dar nematytą mokymo metu, tarkim 10000 ortofoto kaladėlių). Peržiūrint rezultatus, visų pirma patikriname, ar ortofoto atitinka OSM duomenis (peržiūrimos tik tos kaladėlės, kuriose modelis aptiko mums rūpimų objektų, arba kaladėlės, kuriose modelis objektų neaptiko, bet OSM tokie objektai yra pažymėti). Jei OSM duomenys nėra pakankamai geri, tai kaladėlė perkeliama į „purvinų“ kaladėlių sąrašą. Šį sąrašą gali peržiūrinėti kiti žmonės, kurie užsiima OSM duomenų tvarkymu. Patvarkius duomenis, kaladėlė vėl iš naujo patenka į peržiūrą, kur teoriškai ji gali pakartotinai būti nusiųsta į „purvinų“ kaladėlių aibę.

Jei kaladėlė „švari“, t.y. ortofoto duomenys sutampa su OSM duomenimis, tada daromas sprendimas, ar kaladėlę tiesiog pažymėti kaip sutvarkytą, ar ją įtraukti į mokymosi aibę. Sprendimas daromas remiantis tokiu kriterijumi: „ar mokymosi aibė turės naudos iš šios kaladėlės?“. Naudos gali turėti, kai:

  • Kaladėlėje buvo objektas, kurio modelis neatpažino, arba atpažino labai netiksliai. Reikia atsižvelgti ir į ortofotografijos kokybę: jei modelis objektą atpažino nepilnai, bet likusios dalies nesimato (tarkim už medžių), reikia pagalvoti, ar tikrai galima vienareikšmiškai pasakyti, kokia yra nematoma objekto geometrijos dalis. Mes nenorime modeliui pateikti savo spėjimų ir paprašyti pagal juos mokytis.
  • Kaladėlėje nėra objekto, o modelis jį rado. Paprastai tai būna koks nors kitas objektas, kuris kažkuo panašus į mums rūpimą objektą. Pavyzdžiui tiltas gali pasirodyti panašus į pastatą, kūdrą gali būti sunku atskirti nuo kitų vandens objektų – upių, ežerų ar tvenkinių. Arba pastatai ir šiltnamiai – kol kas negaliu pasakyti, ar geriau šiltnamius atpažinti kartu su pastatais, ar geriau juos atskirti.

Toks procesas leidžia didelį darbo kiekį skaidyti į mažus gabaliukus, kas padeda darbo atlikimui bei progreso sekimui. Taip pat mašininio mokymosi dalis atskirta nuo duomenų redagavimo dalies. Taigi žmonės, kurie moka redaguoti duomenis, nebūtinai turi būti mokomi mašininio mokymosi specifikos. Tuo pačiu mašininio mokymosi užduotį atliekantiems nebūtina mokytis duomenų redagavimo.

Ateities planuose yra du esminiai darbai:

  1. automatizuti modelių rezultatų ir OSM duomenų palyginimo užduotį, t.y. automatiškai nustatyti, ar objektų trūksta, yra per daug, o gal pasikeitė objektų geometrija;
  2. automatizuoti objektų geometrijos nustatymą pagal modelio rezultatus.

Taigi bendras principas toks. Dabar laukia netrivialūs automatizavimo uždaviniai.

Share