Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Open source fejlesztő eszközök, elméleti rész / LOD algoritmusok

Tanulási útmutató

Összefoglalás

A LOD algoritmusok nagyméretű digitális képek, raszteres adatmodellt követő adatállományok (pl. magassági modellek) gyors megjelenítését lehetővé tévő eljárások. Többféle ilyen eljárás létezik, de ebben a leckében csak a legegyszerűbbet, a Gauss-piramist tárgyaljuk.

LOD algoritmusok

Űrfelvételek, légifotók vagy digitális magassági modellek kezelése, megjelenítése jelentős nehézséget jelenthet a térinformatikai szoftverek fejlesztőinek. Gondoljuk csak el, hogy amikor nagy felületet kívánunk megjeleníteni, amit sok nagyfelbontású kép fed le, elképesztő adatmennyiséget kell kezelnünk, kirajzolnunk, miközben a monitorok felbontóképessége (pl. 1024 x 768, vagy 1400 x 1050) lényegesen kisebb adatmennyiséget képes megmutatni. Ekkora területre értelmetlen eredeti felbontásban rajzolni a pixelek értékeit (még TIN modellt használva is), vagyis a kirajzolásra szánt területre vonatkozó adatokat ajánlatos ritkítani.

A képek, domborzat modellek leegyszerűsítését végző algoritmusokat gyűjtőnéven LOD (level-of-detail) algoritmusoknak hívják. Alapvetően két fajtája létezik: a statikus, és a folytonos. A statikus változat lényege, hogy előre elkészítjük egy modell különböző részletességű változatait, és ezeket cserélgetjük attól függően, hogy milyen részletességre van szükségünk az adott felhasználás szempontjából (pl. változó nagyítás miatt). Űrfotókra vagy magassági színezett raszteres állományok megjelenítésére ez a módszer megfelelő.

A terepmodellek esetén nem túlzottan jók a statikus algoritmusok. A terepmodellek ugyanis általában nagyok, és ezért könnyen előfordulhat, hogy egy részét jelentősen közelebbről szemléljük. Így aztán nem lehet egyszerre megváltoztatni a teljes modell részletezettségét. A folytonos LOD (CLOD) algoritmusok éppen erre a problémára nyújtanak megoldást. Lényegük, hogy darabokra bontják a kérdéses modellt, és a nézőponttól (vagy egyéb más, előre meghatározott mértéktől) függően minden alkalommal elemzik, hogy mit lehet egyszerűsíteni.

A LOD algoritmusok folyamatosan váltogatják az egyes részek felbontását. A kérdés az, hogy mi alapján lehet megmondani, hogy egy adott részt milyen minőségben kell megjeleníteni, milyen részletezettségi szintre van szükség. A hiba fajtájára és mértékére sok megoldást lehet találni, csak a felhasználási módtól függ, hogy mikor melyik lesz a célravezető.

A Gauss-piramis

Az egyik legismertebb, és talán leggyakrabban alkalmazott statikus LOD algoritmus a Gauss-piramis. Segítségével igen nagyméretű képek is gyorsan jeleníthetők meg. Ezt a sebességnövekedést azzal éri el, hogy előzetesen több, különböző felbontású képet állít elő, és mindig azt jeleníti meg, amire agy adott nagyításban szükség van. Alapelve eléggé egyszerű.

A kép (nagyobb változata) külön ablakban is megtekinthető.78. ábra. A Gauss-piramis különböző felbontású szintjei. A képméretek csökkenése kettő hatványai szerint történik, vagyis például az eredeti kép 512 * 512 méretű, amelyből az első ritkítás után 256 * 256 méretű kép lesz. Ebből 128 * 128-as lesz a, majd 64 * 64-es kép lesz, és így tovább78_lod_full.png78. ábra. A Gauss-piramis különböző felbontású szintjei. A képméretek csökkenése kettő hatványai szerint történik, vagyis például az eredeti kép 512 * 512 méretű, amelyből az első ritkítás után 256 * 256 méretű kép lesz. Ebből 128 * 128-as lesz a, majd 64 * 64-es kép lesz, és így tovább

Elméletileg a következőképpen működik az algoritmus: vegyünk egy nagy felbontású képet. Hajtsunk végre rajta simítószűrést az eredeti kép felső határfrekvenciájának felére, majd ritkítsuk meg ennek megfelelően a képet, vagyis újra mintavételezzük az eredeti mintavételi távolság kétszeresével. Az eredmény képre folytassuk az eljárást, és ismét hajtsunk végre simító szűrést a már egyszer ritkított kép felső határfrekvenciájának felével, majd ennek megfelelően ritkítsuk meg a képet, és így tovább (78. ábra).

A gyakorlatban a Gauss-piramis kiszámítása a következő módon történik. Jelölje az l-1-edik szintnek megfelelő képet gl-1. Az l-edik szint pixel értékeit a

formulával számoljuk ki, amely egy konvolúció. A 79. ábrán láthatjuk, hogy (egy dimenzióra egyszerűsítve az esetet) hogyan számoljuk ki a ritkított kép pixelértékeit a sorban alatta lévő, nagyobb felbontáshoz tartozó értékekből.

A kép (nagyobb változata) külön ablakban is megtekinthető.79. ábra. A Gauss-piramis kiszámítása (egydimenziós illusztráció)79_lod_full.png79. ábra. A Gauss-piramis kiszámítása (egydimenziós illusztráció)

A GIS szoftverek többsége alkalmazza az eljárást, és az első alkalommal, amikor megnyitjuk a képet, rákérdez, hogy készítsen-e Gauss piramist. Ha ezt az opciót választjuk, akkor az első alkalommal ugyan kicsit több időt vesz igénybe a kép megnyitása, de a későbbiekben megtérül a kezdeti várakozás. Bármikor újra megnyitjuk a képet, akkor nemcsak a betöltés, de a nagyítások is sokkal gyorsabban fognak megtörténni.

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A Társadalominformatika: moduláris tananyagok, interdiszciplináris tartalom- és tudásmenedzsment rendszerek fejlesztése az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával, az ELTE TÁMOP 4.1.2.A/1-11/1-2011-0056 projekt keretében valósult meg.
A tananyag elkészítéséhez az ELTESCORM keretrendszert használtuk.