Generalizacija

Kartais gali pasirodyti, kad visos žemėlapių įdomybės yra tik stambiausiame mastelyje, kad smulkesniuose tiesiog rodome mažiau duomenų. Bet ne viskas taip paprasta. Štai kaip atrodo geležinkeliai 11 mastelyje:

Geležinkelio artefaktai 11z

Plika akimi matosi, kad geležinkelis nubraižytas su problemomis. Padidinkime šį piešinį:

Gelžkelio artefaktų 11z fragmentas

Kai kuriose vietose matome netvarkingus geležinkelio „punktyrus“ (apibrėžta raudonai). Kitose vietose matome, kad buvo bandyta braižyti visas esamas geležinkelio linijas, o tokiame mastelyje jos netelpa, todėl gavosi makalynė (apibrėžta mėlynai).

Abi šios problemos atsiranda dėl to, kad kuo smulkesnis mastelis, tuo labiau objektų mastelis neatitinka žemėlapio mastelio: jei mastelis yra 1:50000, tai 3 metrų pločio geležinkelio linija žemėlapyje turėtų būti 0,06mm pločio! Geležinkelį tenka braižyti žymiai platesniu, kad jis apskritai matytųsi žemėlapyje. Realiame gyvenime šalia esančias geležinkelio linijas tenka braižyti vieną ant kitos. Todėl ir gauname košę-makalošę.

Tai taipogi reiškia, kad vektorinėse kaladėlėse yra daugiau informacijos, nei jos realiai reikia: dėl to ilgiau užtrunka kaladėlių kūrimas, daugiau kilobaitų reikia persiųsti internetu ir naršyklės daugiau laiko užtrunka braižydamos informaciją žemėlapyje.

Generalizacija

Tokios problemos sprendžiamos naudojant kartografinę generalizaciją. Generalizacija – tai procesas, kurio metu geoobjektai pašalinami, paryškinami, pastumiami ar pan. tam, kad smulkesnio mastelio žemėlapyje vis tiek būtų įmanoma perduoti norimą informaciją ir žemėlapis neatrodytų kaip košė. Generalizacija daryta nuo senų laikų, bet formaliai ją aprašinėti pradėta XIXa. Šiuo metu, kai išplito GIS naudojimas, automatinė generalizacija yra viena iš įdomiausių sričių, nes reikia matematiškai, algoritmais apibrėžti tai, ką dalis kartografų laiko ne mokslu, o menu. Kas norite daugiau informacijos apie generalizaciją, galite jos rasti internete, kad ir šitoje kiek senstelėjusioje, bet vis dar tinkančioje GITTA medžiagoje.

Sprendimas

Tokios kelių koncentracijos generalizavimo sprendimas yra vienas iš paprastesnių:

Geležinkelio generalizacija

  1. Pradiniai duomenys – geležinkelių keliai (imame tik pagrindinius bėgius, išmetame šalutinius, atsišakojimus ir pan.) – mėlyni vektoriai.
  2. Aplink visus geležinkelius paišome buferį (tarkim 40 metrų) ir visų geležinkelių buferius sujungiame į vieną diiiiiidelį poligoną – žalias poligonas.
  3. Tada randame tokio gauto žalio poligono apytiksles vidurio linijas – juodi vektoriai (piešinyje jie šiek tiek kampuoti, nes matomi duomenys dar ir papildomai supaprastinti tiek, kiek užtenka smulkesniame mastelyje).

Visa ši operacija su visais Lietuvos geležinkeliais neužtrunka nei minutės.

Rezultatas toks:

Generalizuotas geležinkleis

Kiti elementai

Tokios pačios problemos yra su automobilių keliais (tarkime A1, A2 ir kai kurių kitų kelių atkarpos yra dvigubos). Taip pat generalizuoti reikėtų ir plotus. Tikriausiai sudėtingiausias darbas – generalizuoti namus (pradžioje supaprastinti jų geometriją, tada juos praretinti ar sujungti, galiausiai apjungti į didesnius pastatų plotus). Tokiems dalykams vien standartinių PostGIS funkcijų jau neužteks. Bet čia jau užsiėmimas ateičiai.

Share

Žymėtojai 2018-03

Tai kas ir kur žymi Lietuvoje? Ogi pasirodo pakankamai daug skirtingų žmonių! Vieni žymi aplink savo gyvenimo vietą, kiti pagal kažkokias kitas žymėjimo schemas.

Lietuvos žymėtojai 2018-03

Žemėlapis pagamintas padalinus Lietuvą į šešiakampius, tada paskaičiavus, kiek kiekvienas žymėtojas tame šešiakampyje yra paskutinis keitęs tašku, linijų ir poligonų. Kiekviename šešiakampyje vaizduojamas didžiausią skaičių gavęs žymėtojas.

P.S. Tai grubus laisvalaikiui pagamintas vaizdavimas. Jei kas nepateko į žemėlapį, tai nereiškia, kad jūsų indėlis nesvarbus. Juk nupaišome didelį mišką ir gauname tūkstančius objektų, o nupaišome 50 stovyklaviečių – gauname 50. Ir sunku pasakyti, kas realiai vertingiau 🙂

Share