OSM duomenų įkėlimas į QGIS

OpenStreetMap duomenys yra atviri, tai reiškia kad bet kas gali juos naudoti nieko neklausdamas ir neprašydamas. Iš pradinių duomenų sugeneruotus internetinius žemėlapius galime pasižiūrėti naršyklėse, galime atsisiųsti GPSR įrenginiams paruoštus žemėlapius ir pan. O kas, jei mes norime pasiimti pradinę vektorinę informaciją ir pabandyti daryti kažką savo? Pavyzdžiui padaryti duomenų analizę arba sukurti spausdinamą žemėlapį, pagal savo skonį ir poreikius sudėliojus objektus ir jų savybes? Vienas iš būdų tą padaryti – įsikelti OSM duomenis į GIS duomenis apdorojančią programa QGIS.

Kas yra QGIS?

QGIS yra atviro kodo, nemokama priemonė darbui su geografiniais duomenimis. Ji veikia visose pagrindinėse operacinėse sistemose. Šią programą galite parsisiųsti iš QGIS svetainės.

OSM duomenys

Į QGIS duomenis galima atsisiųsti tiesiai iš OSM duomenų bazės, galima atidaryti kokiu nors OSM redaktoriumi įrašytą duomenų failą .osm ir pan. Bet vienas patogesnių būdų yra atidaryti „shape“ failus. „Shape“ formatą prieš daug metų sugalvojo kompanija ESRI ir šis formatas yra de facto standartas GIS bendruomenėje. Taigi šiame įraše ir pasirinkome būtent „shape“ failų variantą.

Bet kurios pasaulio šalies/regiono shape failus galite atsisiųsti iš geofabrik.de (atnaujinama kasdien). Pavyzdžiui Lietuvos duomenis rasite čia: http://download.geofabrik.de/europe/lithuania.html

Arba galite siųstis Lietuvos duomenis ir iš čia: http://shapes.openmap.lt/

Duomenų įkėlimas į QGIS

Taigi, jūs jau įsidiegėte QGIS programą ir atsisiuntėte shape failus (įrašėte juos į vieną aplanką). Paleidę QGIS naujame projekte spauskite mygtuką „Pridėti vektorinį sluoksnį“ naujo_vektorinio_sluoksnio_mygtukas

Atsidariusiame dialoge palikite nuostatą „Failas“ ir parinkite vieną iš shape failų, pavyzdžiui vandens plotų informaciją – „vanduo_p.shp“:

shape_failo_parinkimas

Pridėjus naują sluoksnį, QGIS parinks atsitiktinę spalvą visų sluoksnio duomenų rodymui. Mažai tikėtina, kad vandens sluoksniui bus pataikyta parinkti mėlyną spalvą, tai jums reikės padaryti patiems. Spauskite dešinį pelės mygtuką ant naujo sluoksnio įrašo ir kontekstiniame meniu parinkite punktą „Savybės“:

sluoksnio_savybiu_meniu

Atsidariusiame dialoge nueikite į skiltį „Stilius” ir ten parinkite jums tinkančia spalvą šio sluoksnio vaizdavimui:

sluoksnio_savybes

Štai jūsų žemėlapis jau turi šiek tiek informacijos ir jūs išmokote keisti žemėlapyje rodomų objektų savybes.

Bet ne visiems skirtingiems objektų tipams yra kuriami atskiri shape failai. Tarkim žemės naudojimo shape faile yra informaciją apie miškus, pievas, gyvenamąsias, komercines ir industrines zonas. Kad skirtingoms to paties shape failo objektų grupėms galėtumėte nurodyti skirtingus paišymo stilius, jums reikia naudoti stilių apibrėžimo tipą „pagal taisykles“:

stilius_pagal_taisykles

Jame galite nurodyti kiek tik norite skirtingų taisyklių, išrenkančių objektus iš shape failo ir tada kiekvienai išrinktai grupei nurodyti skirtingas vaizdavimo taisykles. Kaip matote aukščiau pateiktoje iliustracijoje, atskiros vaizdavimo taisyklės yra sukurtos miškams, pievoms bei skirtingoms miestų zonoms. Naujos taisyklės kuriamos paspaudus mygtuką su pliuso ženklu:

taisykles_savybes

Čia svarbūs laukai yra šie:

  • Etiketė – nurodykite, kaip reikėtų pavadinti šios taisyklės atrinktus objektus. Tai bus naudinga vėliau, kai norėsite įjungti/išjungti šių duomenų vaizdavimą žemėlapyje arba jei kursite sutartinių ženklų sąrašą žemėlapiui.
  • Filtras – nurodoma, kokia SQL sąlyga reikia parinkti savybes iš shape failo. Tarkime „zeme.shp“ faile prie visų plotų yra laukas „landuse“, pagal kurio reikšmes galima nustatyti, kas tai per žemė. Jei landuse=’forest’ – tai bus miškas, jei landuse=’residential’ – gyvenamoji zona.
  • Simbolis – šioje skiltyje nurodykite, kaip reikia vaizduoti šios taisyklės atrinktus geografinius objektus (geoobjektus).

Jei geoobjektai turi pavadinimus (pavyzdžiui keliai), galite nurodyti, kad paišant žemėlapį būtų parodytos ir reikšmės iš lauko „name“:

etikeciu_savybes

Yra dar labai daug skirtingų savybių ir funkcijų, kurias galite naudoti. Tiesiog palandžiokite po savybių dialogus. Galų gale turėtumėte gauti žemėlapį, panašų į šitą:

zemelapis

Taigi, duomenų įkėlimas į QGIS baigtas. Kituose įrašuose parašysiu, ką įdomaus ir naudingo galima padaryti su tokiais geografiniais duomenimis.

Share

Lankytinų vietų informacijos įvedimas

Šiame skyriuje parašysiu apie tai, kaip galima įvesti (arba atnaujinti) informaciją apie lankytinas vietas, t.y. muziejus, kavines, mokyklas ar pan. Kas jau kas, o lankytinų vietų įvedimas yra labai paprastas. Atviram žemėlapiui lankytinų vietų labiausiai trūksta, nes be vietinių žinių labai sunku stebėti kavinių ar parduotuvių atsiradimą, o dar sunkiau – išnykimą. Bet apie viską iš eilės…

Lankytinų vietų žymėjimo būdai

Lankytinas vietas atvirame žemėlapyje galima žymėti dviem būdais: kaip tašką arba kaip plotą.

Žymėjimas tašku

Galima esamame (anksčiau nupaišytame) pastate padėti vieną tašką, pažymintį, tarkime, kavinę dideliame pastate. Tai paprasčiausias žymėjimo būdas, nes nereikia paišyti pastato geometrijos (formos). Paprastai lankytinos vietos taškais žymimos tada, kai žymimas objektas neužima viso pastato. Pavyzdžiui jei yra didelis gyvenamasis daugiabutis ir viename jo krašte yra kirpykla, tai kirpyklą žymėsime ne ant pastato, o kaip tašką tame pastate, nes visas pastatas juk nėra kirpykla.

Žymint lankytiną vietą tašku reikia patikrinti, ar jūsų įvedama informacija dar nėra pažymėta ant pastato (nes tokiu atveju įvedus tą pačią informaciją dar ir kaip tašką, turėtume dubliuotą informaciją, o tai jau žymėjimo klaida).

Žymėjimas plotu

Galima visą pastatą pažymėti kaip lankytiną vietą. Pavyzdžiui, degalinės paprastai būna atskiri pastatai. Tokiu atveju degalinės žymas dėsime ne kaip atskirą tašką, o kaip plotą – pastatą.

Visgi, jei tame pačiame pastate yra daug lankytinų vietų ir negalima išskirti vienos – pagrindinės – reikėtų pagalvoti apie žymėjimą tašku.

Jei neapsisprendžiate, kuriuo būdu pažymėti lankytiną vietą, nes abu variantai tinka, – rinkitės žymėjimą plotu – tai daugiau informacijos duodantis (t.y. naudingesnis) variantas.

Informacijos OSM keitimas

Taigi, prisiregistravę prie atviro žemėlapio, galite įvesti (ar papildyti) lankytinų vietų informaciją. Norėdami tą padaryti, žemėlapyje susiraskite vietą, kurioje yra įvedamas objektas. Pasistenkite maksimaliai priartinti vaizdą, kad įjungus redagavimo režimą nepasimestumėte tarp daugybės rodomų geoobjektų. Tada iš meniu „Keisti“ parinkite redaktorių „iD“:

keisti_su_id

Redaktoriuje bus įkelti jūsų parinkto ploto objektai. Taškiniai objektai rodomi kaip lašeliai ir prie jų rodoma tik viena funkcija – „naikinti“:

pazymetas_taskas

Šioje iliustracijoje matote taškais pažymėtus Čili kaimą, knygyną ir banko skyrius.

Objektai gali būti pažymėti ir kaip pastatai, pavyzdžiui ši benzino kolonėlė:

pazymetas_pastatas

Šiuo atveju išskirtas ne taškas, o visas pastatas ir galimų funkcijų jau daugiau nei viena.

Lankytinos vietos įvedimas

Visų pirmą jums reikia pasirinkti esamą objektą (tašką ar plotą) arba sukurkti naują (jei žymimo objekto dar nėra). Taigi spauskite mygtuką „taškas“ arba „plotas“ ir pele nurodykite objekto vietą.

Dabar jums reikia nurodyti objekto savybes. T.y. reikia pasakyti, ką čia pažymėjote? Biblioteką, restoraną ar viešąjį tualetą? Šios savybės nurodomos redaktoriaus kairėje pusėje:

geoobjekto_savybes

Kaip matote, išsirinkę lankytino objekto tipą, gausite galimybę įvesti objekto pavadinimą ir papildomas savybes. Kai kurios savybės yra taikomos visiems objektams, pavyzdžiui adresą turės visi objektai miestuose, o štai patiekiamo valgio tipą (vietinis, pica, jūrų ir pan.) turės tik restoranai. Kokią papildomą informaciją galima įvesti apie parinktą objekto tipą jums parodys redaktorius.

Norint įvesti kai kurią papildomą informaciją, tokią kaip svetainę ar wikipedijos straipsnio nuorodą, galite pasinaudoti vienu iš po savybės esamų mygtukų, kurių pagalba pridėsite papildomus laukus. Štai pavyzdys, kaip pridedamas svetainės laukas:

geoobjekto_savybes_su_svetaine

Įvedę visą turimą informaciją (būtinai įveskite pavadinimą, ir, jei žinote, adresą) spauskite mygtuką „Išsaugoti“:

mygtukas_issaugoti

Pakeitimo komentare įrašykite, ką keičiate ir iš kur gavote informaciją, pavyzdžiui „Nauja Špunka Džiuginėnuose. Vietinės žinios“. Viskas! Informacija jau atvirame žemėlapyje.

Lankytinų vietų naikinimas

Informacijos aktualumo palaikymui nemažiau svarbu yra ir naikinti jau nebeegzistuojančias lankytinas vietas. Taigi jei žinote, kad kažkoks restoranas užsidarė visiems laikams, atverkite žemėlapį, pažymėkite dingusį restoraną (jei jis pažymėtas kaip taškas) ir spauskite šiukšlių dėžės mygtuką (ištrinti). Jei lankytina vieta buvo pažymėta ant pastato, tada pastatą palikite, o tiesiog panaikinkite lankytinos vietos žymas; paprastai tai bus vietos tipas, pavadinimas, svetainės adresas ir pan. Pastato ir/ar adreso žymas palikite, nes tai lieka, net ir dingus kavinei ar aludei:

savybiu_naikinimas

Share

Vilniaus adresai

Kiek anksčiau jau buvo rašyta apie Vilniaus adresų papildymą. Šį kartą parašysiu apie tai, kaip adresų informacija yra atnaujinama ir prižiūrima.

Adresų informacijos pasikeitimai

Gali pasirodyti, kad pastovus adresų palaikymas nėra labai svarbus. Jei Vilniaus savivaldybė pateikiamų adresų sąrašą atnaujins kas metus, užteks kartą per metus adresus iš naujo įkelti ir viskas? Tikriausiai ne, nes neaišku, kas kiek laiko Vilniaus savivaldybė atnaujins dabar pateikiamą adresų sąrašą, o ir Vilniaus adresų informacija pakankamai sparčiai keičiasi. Štai adresų pasikeitimo grafikas:

adr_change

Kaip matome, kiekvieną mėnesį atsiranda 300 naujų adresų. Tai apie 10 adresų per dieną! Taipogi po 50 senų adresų yra panaikinama. Tokiais tempais per metus bus sukurta 3500 naujų adresų, o tai sudaro daugmaž 7% visų Vilniaus adresų.

Taigi norisi adresus atnaujinti daugmaž tuo pačiu metu, kai adresų informaciją keičia Vilniaus savivaldybė. Laimei adresų pokyčių informacija (adresų keitimo įsakymai) yra viešai prieinama Vilniaus savivaldybės svetainėje, o pagal šiuo metu galiojančius įstatymus, ši informacija yra ir vieša, ir atvira (t.y. ją ramiai galime naudoti OSM pildymui).

Adresų pasikeitimų įsakymai publikuojami pdf formatu. Šis formatas nėra toks patogus, kaip tarkime xml, bet visgi tai ne piešinys, reiškia jį galima apdoroti automatiškai. Kiekviename įsakyme yra viena arba daugiau eilučių, kiekvienoje iš kurių yra naikinamo ir/ar sukuriamo adreso informacija (gatvė, numeris, korpusas) bei tikslios adreso koordinatės.

Šią informaciją perskaito sukurti skriptai ir tada gauname daugmaž tokį įsakymo detalizavimą:

adresu_isakymo_detales

Kaip matome, įsakymo informacija sulyginama su esama adresų informacija. Patikrinama ar kuriamas adresas jau yra OSM duomenų bazėje. Jei yra, ar jis nėra per daug nutolęs nuo įsakyme pateikiamos padėties. Jei adreso informacijos nėra, trūkstamą informaciją vienu paspaudimu galima perduoti į JOSM redaktorių.

Kadangi didžioji dalis šio proceso yra automatizuota, vieno adreso informacijos pasikeitimas apdorojamas per kelias sekundes. Tai leidžia negaištant daug laiko greitai atnaujinti adresų informaciją.

Vilniaus savivaldybės adresų informacijos lyginimas su OSM DB

OSM duomenų bazė yra atvira. Informaciją bet kas gali tiek skaityti, tiek ir keisti. O tai reiškia, kad žymėtojai gali netyčia sugadinti adresų informaciją, pavyzdžiui keičiant pastato geometriją panaikinti egzistuojančio adreso žymas ar pridėti seniai jau panaikintą adresą (žinau atvejų, kai gyventojai po adreso pasikeitimo nežinojo savo naujo adreso ir pyko ant taksi vairuotojų, kurie važiavo pagal naują adresų informaciją, tokie gyventojai gali norėti „pataisyti“ adresų informaciją OSM duombazėje). Taigi reikia karts nuo karto palyginti Vilniaus Savivaldybės adresų db (atnaujinamą naudojant įsakymų duomenis) su informacija, esančia OSM duomenų bazėje.

Palyginę gauname dvi adresų grupes:

  • Adresai, kurie yra VS db, bet kurių nėra OSM. Tokius adresus pridedame į OSM.
  • Adresai, kurie yra OSM db, bet kurių nėra VS db. Tokius adresus iš OSM db išimame.

Taigi turint šiuos du sąrašus galima pastoviai palaikyti švarią ir šviežią adresų informaciją.

Bendras adresų informacijos kelias

Taigi galutinį informacijos kelią matome šioje schemoje:

adresu_informacijos_eiga

  • Periodiškai (kol kas neaišku, kas kiek laiko VS atnaujins savo skelbiamą adresų sąrašą) adresai gaunami iš Vilniaus Savivaldybės. Gauta informacija naudojama pradiniam tarpinės adresų db užpildymui ir periodiškam jos sinchronizavimui.
  • VS adresų keitimo įsakymai naudojami greitam adresų informacijos pasikeitimų įkėlimui į tarpinę adresų db
  • Duomenys tarpinėje adresų db naudojami atnaujinant ir prižiūrint Vilniaus adresų duuomenis OSM duomenų bazėje.

P.S. Na, realybėje gal nėra viskas taip paprasta, viena-kita klaida gali pasitaikyti ir VS duombazėje, bet tai jau visai kita tema 🙂

Share

Kelių ilgiu aplenkėme „Lietuvos kelius“

Kuriant kokį nors produktą, pildant duomenų bazę, ar šiaip ką nors darant, įdomu žinoti, kaip sekasi. Jei esi vienas, t.y. kai nėra su kuo lyginti, tai tuo pačiu metu sekasi ir geriausiai, ir blogiausiai, arba tiesiog – niekaip. Ir mūsų visų pastangas pildant Lietuvos atvirą žemėlapį norisi kažkaip įvertinti ir palyginti. Kadangi Lietuvos GIS duomenis turi toli gražu ne tik OpenStreetMap, tad galime save su kuo nors iš jų palyginti.

Vienas iš OSM duomenų naudojimų – GPSR įrenginiams skirti žemėlapiai. Lietuvoje vienas populiaresnių komercinių žemėlapių yra Garmin įrenginiams skirtas produktas „Lietuvos keliai“, kurio savybės (kelių ilgiai, taškų/adresų skaičiai ir pan.) yra pateikiamos oficialiuose Garmin/Fedingo puslapiuose. Štai su juo galime save ir palyginti:

Statistika

Žemėlapių palyginimas, šaltinis: http://z.samogitian.com/garmin/

Vakar mes aplenkėme šį žemėlapį kelių ilgiu, t.y. pas mus jau yra daugiau nei 83000km kelių. Atvirame žemėlapyje esantys keliai, kaip ir komerciniame, turi šias savybes:

  • Maršrutizavimas
  • Eismo kryptys
  • Posūkių apribojimai

Taigi turima kelių informacija yra pilna ir puikiai tinka naudojimui GPSR įrenginiuose.

Žinoma tai nereiškia, kad turime visus kelius, kurie yra ir „Lietuvos keliuose“. Juk OSM duomenyse yra daug kelių, kurių nėra komerciniame žemėlapyje, t.y. miško keliukų, pėsčiųjų ar dviračių takų ir panašiai. Taigi kažkurių kelių nėra „pas mus“, kažkurių – „pas juos“. Bet bendras pasiekimas vis tiek malonus.

Kitas žingsnis – įvesti į atvirą žemėlapį visas Lietuvos gyvenvietes, jų, kaip matome, trūksta daugiau nei pusės. Gerai, kad Nacionalinė Žemės Tarnyba neprieštaravo, kad gyvenvietes mes įvestume iš jų georeferencinio erdvinių duomenų rinkinio, prieinamo va čia: http://www.geoportal.lt/zis/, žinoma į pakeitimo komentarą nepamirštant įrašyti ir duomenų šaltinį – „NŽT GDR10LT“.

Ką gi, džiaugiamės kelių ilgiu ir judame link kito stulpelio (angl. milestone) – gyvenviečių duomenų užpildymo!

Share

Ortofoto

Ortofoto yra vienas iš OpenStreetMap informacijos šaltinių. Juk kai kuriose vietose su GPSR aparatu nelabai pabėgiosi (tarkim pelkėse), o prie pastatų GPSR rodmenys labai netikslūs. Na ir pagaliau kaip galima nenupaišyti tokiame ortofoto matomų objektų, juk čia tiek informacijos!

Ortofoto

Bing

Ilgą laiką Lietuvoje buvo galima naudoti tik Yahoo (Vilniuje) ir vėliau atsiradusias Bingo ortofoto. Jos stipriai padėjo pildyti Lietuvos duomenis, bet visgi buvo ne be problemų. Kai kuriose vietose žemę dengė rūkas ar debesys. Kitose vietose ortofoto stipriai pasislinkusi nuo realių pozicijų, štai pavyzdžiui  čia matote Bingo ortofoto netoli Klaipėdos ir teisingose pozicijose esančius OSM duomenis:

Pasislinkęs bingas

Kaip matote, ortofoto pasislinkęs 5-10 metrų į Šiaurės-Rytus. Tokiu atveju, prieš paišant objektus, turėdavome surinkti kažkiek GPS pėdsakų, kad pagal juos galėtume pakoreguoti ortofoto poziciją. Situaciją blogino ir tai, kad ta pati nuotrauka skirtingose vietose buvo pasislinkusi nevienodai.

Naujokai dažnai nežinodavo apie šį poslinkį ir pradėdavo „taisyti“ esamus objektus arba paišyti naujus nepaslinkę ortofoto. Kaip suprantate, tokiu atveju gauti objektai buvo nekorektiški (neteisingose pozicijose).

ORT10LT

Laimei nuo 2013 metų kovo mėnesio Nacionalinė Žemės Tarnyba prie Ūkio ministerijos davė leidimą pildant OpenStreetMap žemėlapį per geoportal.lt naudoti Lietuvos Respublikos M1:10 000 skaitmeninį rastrinį ortofotografinį žemėlapį ORT10LT. Šios ortofoto atnaujinamos kas 3 metus. Tai puikus dalykas ne tik todėl, kad ORT10LT dengia beveik visą Lietuvos teritoriją (Bingas 2013 metų pradžioje dengė apie pusę Lietuvos teritorijos). ORT10LT taipogi yra itin tiksliai pozicionuota. Tai reiškia, kad prieš paišant jau nebereikia turėti GPS pėdsakų, paslinkinėti nuotraukos, nebereikia įspėti naujokų apie poslinkio pavojus ir pan.
Taigi belieka tik naudoti ORT10LT ir nebenaudoti Bing. Darant pakeitimus ORT10LT reikia nepamiršti komentare nurodyti, koks naudotas duomenų šaltinis:

JOSM komentaras

OSM Redaktorių konfigūravimas

JOSM

JOSM redaktoriuje nieko papildomai konfigūruoti nereikia. Jei esate atsisiuntę duomenis tose vietose, kurias dengia ORT10LT, tai jūsų „Imagery“ meniu automatiškai atsiras ORT10LT punktas:

ORT10LT meniu JOSM

Potlatch

Šiame redaktoriuje reikia pridėti ORT10LT į naudojamų ortofoto sąrašą. Tą galite padaryti taip: parinkite meniu Fonas/Edit:

Potlatch meniu

ir pridėkite šį url:

http://mapproxy.openmap.lt/ort10lt/g/$z/$x/$y.jpeg

Potlatch ORT10LT įrašas

iD

iD redaktoriuje irgi nieko papildomai konfigūruoti nereikia. Jei esate atsisiuntę duomenis tose vietose, kurias dengia ORT10LT, tai ORT10LT galite pasirinkti iš meniu:

iD ORT10LT įrašas

Share