Geoinformatika a környezetvédelemben
1
5. Poligonok digitalizálása és a topológia Feladatunk az, hogy készítsük el a tokaji Nagy-Kopasz hegy környékének területhasználati a térképét. Ebben a gyakorlatban:
megtanuljuk a poligon témák létrehozását, megtanuljuk mi az a topológia, megtanulunk egymáshoz kapcsolódó poligonokat létrehozni, töréspontokat szerkeszteni.
A gyakorlat első részében olvassuk be az 1a.tif és 1b.tif állományokat. Ezután hozzunk létre egy poligon fedvényt, melynek neve legyen landuse.shp. A View – New Theme menüpontban most Polygon típust válasszunk. A témát nevezzük el és mentsük le. A digitalizálást a szokott helyen található gombokkal tudjuk elkezdeni. Alapbeállításként a (Draw Rectangle) gomb jelenik meg, melyet bal egérgombbal hosszan nyomva egy legördülő gombsort kapunk. Téglalapra potenciálisan szükségünk lehet, de ebben a formában jobbára használhatatlan eszköz: csak vízszintes, vagyis É-D, K-Ny tájolású téglalapokat lehet vele rajzolni, ami viszonylag ritkán fordul elő a természetben (márpedig ez a szoftver elsősorban nem műszaki rajzokhoz használatos). A kör rajzolás bizonyos helyzetekben hasznos lehet, alkalmazása azonban még azzal együtt is ritka, hogy lehetőségünk van a kört ellipszissé alakítani: ha elkészült a kör átváltunk a kiválasztás gombra (ez esetben a Pointer gombot kell választani) és a kör mellett megjelenő kis fekete négyzetek közül megragadni azt, ami a végső formának leginkább megfelel, majd a kívánt méretre, formára kell húzni. A legtöbb feladat megoldásához poligont (szabálytalan sokszöget) kell rajzolni, amihez a (Draw Polygon) gombra lesz szükségünk. A gomb lenyomása után olyan formát lehet rajzolni, amire éppen szükség van. Itt találkozunk először (valójában már a vonalaknál is találkoztunk ezzel, csak nem mentünk bele a részletekbe, itt viszont már megkerülhetetlen) a topológia fogalmával. Vagyis tudnunk kell, hogy a digitalizált/digitalizálandó objektumok helyzeti tulajdonságai alapján meg kell különböztetnünk a geometriai és topológiai jellemzőket. A geometriai jellemzők az objektumok koordinátáival adhatók meg, melyhez szükség van egy koordináta rendszerre. Ebben a vonatkoztatási rendszerben megadjuk az objektumok töréspontjait és ezzel együtt a formát
Geoinformatika a környezetvédelemben
2
(geometriát). Itt csak a metrikus tulajdonságokat rögzítjük, vagyis ez a megközelítés nem veszi figyelembe a létrehozott objektumok szerkezeti kapcsolatait. Ezek leírása tartozik a topológia tárgykörébe: szomszédság, illeszkedés, metsződés. A topológiai tulajdonságok nem változnak a transzformációk hatására, míg a geometria a különböző vetületi rendszerekben sosem ugyanolyan (5-1. ábra).
A
b
5-1. ábra. Az Egyesült Államok térképe Mollweide (a) és Mercator (b) vetületi rendszerben. Az államok mint objektumok geometriája változott, a topológia viszont állandó.
Ez a téma ott kapcsolódik a mi munkánkhoz, hogy 1 poligont minden gond nélkül le tudunk rajzolni, sőt több egymáshoz nem kapcsolódó poligont is, de ha ezek kapcsolódnak, akkor már felvetődik, hogy a vertex pontoknak pontosan egybe kellene esnie a két szomszédos poligonnál (máskülönben hézagok, átfedések keletkeznek, vagyis sérül a topológiai). Ezt a különböző geoinformatikai szoftverek eltérő módon oldják meg, de a végeredmény ugyanaz lesz, a vertexek egy pontba esnek. Az ArcView-ban a kapcsolódó poligonok létrehozásához két lehetőségünk van: -
megrajzolunk egy nagy befoglaló poligont és azt daraboljuk fel (Creates a line to split polygon features), egy poligont rajzolunk meg és hozzáfűzzük a kapcsolódó többit (Appends a new polygon adjacent to other polygons).
Most kezdjük el elkészíteni a területhasználat térképét, de előtte hozzuk létre a táblázatban azokat az oszlopokat, amelyek szükségesek: (1) landusekod/number/2/0; valamint (2) landuse/string/16. Azért kell egy kódolt szám típusú mező is, mert a szöveg mező nem alkalmas minden, a későbbiekben felmerülő feladat megoldására, másrészt szövegben könnyebb hibázni (pl. elírni a nevet). Ezután rajzoljuk meg az első 5-2. ábra. A területhasználat digitalizálása
poligont. Ha létrejött, láthatjuk,
Geoinformatika a környezetvédelemben
3
hogy eltakarja az alatta lévő térképi részletet, ezért tegyük átlátszóvá és vastagítsuk meg a vonalat, hogy látszódjon (5-2. ábra). A szomszédos poligon létrehozásához használjuk a gombot. A szabály az, hogy csak akkor működik megfelelően a hozzáfűzés funkció, ha poligonon belül kezdjük és fejezzük be a műveletet. Ha egyik végpont is kívül esik egy poligonon, eltűnik a létrehozott részlet, nem jön létre poligon. Nagyítással ellenőrizzük, hogy mi történt a közös határon. Elviekben, ha úgy jártunk el, ahogy kellett, akkor nem létezik az a nagyítás, amely mellett 2 vonalat láthatnánk, mert a vertexek koordinátái tökéletesen megegyeznek. A táblázatban közben töltsük ki a 5-3. ábra. A kapcsolódó szőlőterület létrehozása következőknek megfelelően: szántó (kód: 1, fehér szín); szőlő (kód: 2, sárga szín $ jelekkel). Látható, hogy az így létrejött poligonon belül még van több másik is. Ezek megrajzolásához használjuk a gombot. Itt az alapszabály éppen ellentétes az előzővel: poligonon kívül kell megkezdeni és befejezni (5-4. ábra). Ha belül vagyunk, akkor a megrajzolt vonal elveszik. A létrejött poligonok attribútum adatait írjuk be a táblázatba: gyümölcsös (kód: 3, zöld szín „o” jellel).
5-4. ábra. Poligonok kivágása
Sajátos probléma elé állít minket a képeken látható két szőlőfolt. Próbáljuk meg a környező szántóval együtt bedigitalizálni. Ha csak megrajzoljuk a szántót és rá a két szőlőfoltot, rá kell jönnünk, hogy ezek voltaképpen csak poligonok egymás tetején, vagyis a topológiájuk nem jó. Ebből területet számítva a szőlők területe duplán számítana (egyrészt a szántóba ágyazva, másrészt a valós területük), tehát meg kell oldani, hogy a topológia helyes legyen. A megoldás az ún. lyukas
Geoinformatika a környezetvédelemben
4
poligon (vagy fánk) előállítása. Első lépésben hozzuk létre a 3 poligont, de vigyázzunk, a szántót fűzzük hozzá a többi poligonhoz. Ezt követően jelöljük ki a szántót és az EGYIK szőlőfoltot. A most következő művelet nem működik csak KETTŐ poligonnal (vagyis amiből kivágunk és amivel vágunk). Válasszuk az Edit – Subtract Features parancsot. Ellenőrizzük az eredményt. Ha kijelölésnél csak az egyik poligon jelölődik ki, akkor sikerült elvégezni a feladatot. Töltsük ki a táblázatot az attribútumokkal (5-5. ábra). Hasonló eredményre jutunk akkor is, ha előre megrajzoljuk a kis poligonokat (jelen esetben a szőlőket), majd a hozzáfűző funkcióval bekerítjük őket úgy, hogy hozzá is fűzzük őket egy akármilyen kis területű másik poligonhoz. Így nem kell a Subtract Features parancsot használni, a topológia automatikusan helyes lesz. A hozzáfűzés akkor is jó eredményt ad, ha nem a kiindulási poligonba térünk vissza és akkor is, ha közben néhány másikat keresztezünk. Az összes lehetőség feltárásához érdemes önállóan kipróbálni a rajzolást többféleképpen is, felfedező jelleggel. Vigyázni kell, hogy ilyenkor nehogy összetartozó poligonok jöjjenek létre. Alapvetően ez sem baj, de figyeljünk a térbeli adatok helyességére.
5-5. ábra. A szőlőterületek és leíró adataik helyes megjelenése
A végeredménynek hasonlónak kell lennie, mint az 5-5. ábrán, ahol ki lehet jelölni egyetlen gombnyomással a szőlőterületet. A táblázatban szintén csak egy rekord van kijelölve. Mostantól minden fontos ismeretünk megvan a digitalizáláshoz. Ha ezzel a módszerrel befejezzük a munkát, akkor kezünkben van a területhasználati térkép. A kategóriánkénti megjelenítéshez a következőt kell tenni: egy dupla kattintással a területhasználati fedvényen és a megjelenő párbeszédpanelen a Legend Type-ot, vagyis a készítendő térkép típusát. Most anélkül, hogy belemennénk a részletekbe
Geoinformatika a környezetvédelemben
5
és a magyarázatokba, válasszuk ki a „Unique Value” opciót. A „Values Field” legyen a landuse, vagy a landusekod. Most mindegy melyiket választjuk, mindkettő ugyanaz kell, hogy legyen (persze csak akkor, ha nem hibáztunk a szöveg beírásában – 5-6. ábra).
5-6. ábra. A területhasználat kategóriánkénti megjelenítése
Az elmúlt gyakorlaton láttuk, hogyan kell a töréspontokat szerkeszteni vonal objektumok esetében. A poligonok topológiai relációi ettől bonyolultabbak lehetnek. A Vertex Edit gombbal meg tudjuk jeleníteni egy objektum töréspontjait és el tudjuk mozgatni a kívánt pontokat. Ez a művelet azonban csak egy poligonra vonatkozik. Ha van kapcsolódó poligon is, akkor sérülni fog a közös határ. A javítás történhet a már tanult snappeléssel, de van ettől célravezetőbb, egyszerűbb módszer is.
Az 5-7. ábrán látható egy példa a topológia sérülésére.
5-7. ábra. Kapcsolódó poligonok sérült topológiája
Geoinformatika a környezetvédelemben
6 A megoldáshoz a közös határvonalra kell kattintani az egérrel (Vertex Edit gomb). Látható, hogy most csak a 2 poligon közös határán jelennek meg a vertexek (5-8. ábra). Így mozgatva a töréspontokat, mindkét poligon határa módosulni fog.
Nem ritka eset, amikor kettőnél több poligon találkozik, illetve kettőnél többet kell szerkesztenünk. Ilyen esetben az adott csomópontra kell kattintani. Az 5-9. ábrán látható, hogy nemcsak négyzetek, hanem kis körök is megjelennek, de csak a csomópont és onnan következő első vertex jelölése történik meg. A körök ez esetben a töréspontok, a négyzet pedig a többszörös poligon kapcsolatok csomópontjai. Ezeket megragadva a topológia sérülése nélkül tudjuk a poligonokat szerkeszteni. Persze meg kell jegyeznünk, hogy a legjobb rögtön jól csinálni, akkor sok vesződségtől kíméljük meg magunkat. 1-8. ábra. A poligonok közös határának szerkesztése
5-9. ábra. A poligonok csomópontjainak a szerkesztése
Ha egy objektumot el szeretnénk mozdítani elforgatás nélkül valamilyen irányban, akkor a (Pointer) gombbal válaszzuk ki és álljunk az objektum fölé a mutatóval. Amikor kereszt alakra változik a nyíl, a bal egérgomb folyamatos nyomva tartásával húzzuk oda, ahová szükséges. Amennyiben objektumokat szeretnénk másolni, úgy szerkesztési módban ki jelölnünk a kérdéses objektumo(ka)t a (Pointer) gombbal és az Edit – Copy Features (vagy a szokásos CTRL+C billenytűkkel) a vágólapra tenni. Az objektumot beilleszthetjük ugyanarra, vagy egy másik fedvényre az Edit – Paste Features (vagy a CTRL+V billentyűkkel). Mivel az objektumok másolása koordináta-alapon működik (végső soron a töréspontok koordinátáját másoljuk), a beillesztés után az objektum pontosan ugyanarra a helyre kerül, ahol eredetileg is volt. Ha ez ugyanazon a fedvényen van, akkor használjuk továbbra is a Pointer gombot és húzzuk el a kívánt helyre.
Geoinformatika a környezetvédelemben
GYAKORLATOK 1. Fejezzük be a gyakorlaton megkezdett területhasználat digitalizálását!
7
Geoinformatika a környezetvédelemben
8
Feladatmegoldás fGIS szoftverben Olvassuk be az 1a.tif és 1b.tif állományokat, majd hozzunk egy létre egy poligon típusú fedvényt. Hozzunk létre egy landuse_fgis.shp nevű poligon fedvényt, melynek legyen egy landuse (landuse/String/16) és egy landusekod (landusekod/Integer/2) című új oszlopa (ahol az utóbbira az ArcView-nál már ismertetett okok miatt van szükség). Az fGIS-ben kört, ellipszist, négyzetet, téglalapot nem rajzolhatunk, de a korábbiakban leírtak miatt ez nem is igazán gond. A poligon létrehozása ugyanúgy történik, mint a vonal esetén volt: (New Shape Tool). A különbség az, hogy mindenképpen jobb egérkattintással és az ott feltűnő Close Shape paranccsal fejezzük be az objektum létrehozását. Nagy körültekintéssel itt is működik persze a dupla kattintás, de az előző módszer biztosabb eredményt hoz, el lehet kerülni a felesleges vertesek létrehozását. Azt azért el kell mondani, hogy a poligonok digitalizálásának megoldása hagy némi kívánnivalót maga után. Persze erre lehet azt mondani, hogy „ajándék lónak …”, vagyis ingyen ne várjuk azt, hogy minden tökéletesen működik. A konvex poligonok digitalizálása nem jelent problémát, bár elvárás az elkövetkezendő műveletek korrekt működése végett az, hogy az óramutató járásával ellentétes irányban digitalizáljunk. Konkáv (vagy összetett formájú) poligonok digitalizálásánál meglepő, hogy amint a konkáv részhez kezdünk, a program elkezd hibákat kreálni: a vertex a helyére kerül ugyan, de a vonal nem úgy fut, ahogy várnánk. Ilyenkor nyomjuk meg a jobb egérgombot, a feltűnő menüből válasszuk az Undo parancsot, majd próbáljuk meg a SHIFT billentyű lenyomása mellett megismételni a műveletet. Sajnos ez sem hoz mindig jó eredményt, de a jó hír az, hogy élnek azok a lehetőségek, amelyek a vertexek szerkesztésénél használatosak (sőt, feltehetően azok miatt működik ilyen furcsán). A legjobb az, ha – elfelejtve az ArcView-nál alkalmazott „vonalhúzós” módszert – a poligonoknak előbb elnagyolva hozzuk létre a körvonulakat, majd a többit utána finomítjuk. Ehhez kattintsunk a vonalra és a bal egérgombot lenyomva tartva húzzuk az újonnan képződött vertexet a helyére (fontos, hogy nem hozunk létre külön vertexet, hanem a vonalat fogjuk meg és már húzzuk is a helyére a pontot!). Ezt a műveletet annyiszor kell megismételni, míg a pontos formát el nem érjük. A korábbiakban is használt térképrészleten hozzuk létre az első poligont (5-10. ábra). Utána a már ismert módon töltsük ki a táblázatban a leíró adatot (szántó, kód: 1). A kapcsolódó poligonok digitalizálása azonban nem olyan egyszerű, mint az ArcView-ban volt, alapvetően három lehetőség közül választhatunk. (1) A 5-10. ábra. Az első poligon helye
Geoinformatika a környezetvédelemben
9
snappelés segítségével (annak távolságát helyesen megválasztva) a közös pontokat digitalizálás közben összekapcsoljuk. Nem túl elegáns megoldás. (2) Megrajzolunk egy nagy „keretpoligont”, majd a (Split Shape Tool) segítségével felszabdaljuk. (3) Ha a 2. módszer nem járható út, akkor a poligon-hozzáfűzést (Subtract Polygon) kell alkalmazni fGIS környezetben, ami egy kissé bonyolultabb, mint várható lenne. Most próbáljuk ki ezt a gyakorlatban is. (1) Snapping. Mivel a snappelés nem túl szép megoldás, mindenki használja akkor, amikor a helyzet elkerülhetetlenül megkívánja, a jegyzet keretében nem térünk ki külön az alkalmazásra. A lépések megegyeznek a vonal típusú fedvényeknél leírtakkal. (2) Meglévő poligon vágása (splitting). Hozzuk létre az 5-11. ábrán látható poligont. Az ArcView-ban rutinfeladatnak tűnő művelet 1 nem is egyszerű. Az 1. pontban jelzett helyen kezdjük el a digitalizálást. A problémák a 2. 2 ponttal jelzett konkáv részen kezdődnek: a vonal futása nem követi az általunk megkívánt formát. De ezzel most ne törődjünk, haladjunk tovább, mintha semmi sem történt volna. Ekkor az 5-12. ábrán látható formát látjuk. Tegyük átlátszóvá a poligonokat a már korábbiakban tanult módon: bal egérgombbal dupla kattintás a landuse_fgis.shp-n, a szerkesztőlécen, majd az Area/Area fülecskén a Patternt állítsuk Transparentre. A vonalvastagságot (Area/Outline/Width) a jobb láthatóság miatt állítsuk 3-ra.
5-11. ábra. A 2. poligon elhelyezkedése
3
5-12. ábra. A helytelen lefutású vonal
Ha készen van a vonal, akkor javítsuk ki: (a) kattintsunk az 5-12. ábrán 3-as ponttal jelzett vertexre, amivel megszüntetjük azt. Ezután kattintsunk egyet oda, ahol megszűnt a vertex, vagyis hozzuk létre újra. Ezzel a lépéssel helyre is tettük a hibás vonal futását és elkezdhetjük a poligon feldarabolását, ami ennek a feladatnak voltaképpen a tárgya. Innentől viszont a következő lépesek teljesen megegyeznek az ArcView-ban tanultakkal,
Geoinformatika a környezetvédelemben
nincs további nehezítés. Használjuk a
10 (Split Shape Tool) gombot és daraboljuk
fel a nagy poligont úgy, hogy a kisebbek önálló poligonok legyenek. Az (Attribute Tool) segítségével töltsük ki helyesen a leíró adatokat. (3) Poligon-hozzáfűzés már meglévő poligonhoz (append). Hozzunk létre egy a már meglévővel tökéletesen átfedő poligont hasonlóan, mint az 5-13. ábrán. A vonalak be kereszteződjenek csak ott, ahol a kapcsolódás kezdődik és véget ér (mint az ArcView-nál az Append Polygon … parancsnál), a többit tekintsük úgy, mintha nem is lenne, de ehhez nme is szabad találkoznia több vonallal. Ha készen van, akkor jelöljük ki a (Pick Tool) gombbal és nyomjunk egy jobb egérgombot és a feltűnő parancsok közül válasszuk a 5-13. ábra. A kapcsolódó poligon Polygon Functions – Subtract létrehozása Polygon parancsot (ugyanezt elérhetjük az Edit legördülő menü Polygon Functions – Subtract Polygon paranccsal is). Az eredménynek most – ha mindent jól csináltunk – kielégítőnek kell lennie. Ugyanezt a módszert alkalmazni akkor is, ha két távolabbi poligon között (mint az 5-14. ábrán is látható helyzetben) akarunk egy új poligont létrehozni.
5-14. ábra. Távol eső poligonok (nem kapcsolódó poligonok)
Geoinformatika a környezetvédelemben
11
Most hozzuk létre a szántót, amelyen majd a két szigetszerű szőlőt is ki kell majd alakítani. A (Edit Points Tool) gombbal jelöljük ki a most létrehozott poligont. Egy objektum akkor van kijelölve, ha a vertexek be vannak számozva. Amint rákattintunk a poligonra, azonnal módosít is a vertexek helyzetén, amit vonjunk vissza (jobb egérgomb és Undo parancs). Ezután újra jobb egérgomb következik és a Polygon Functions – Add Part (or make hole) parancsot válasszuk (5-15. ábra). Fontos, hogy a jobb egérgomb lenyomásakor már álljunk rá a digitalizálandó forma kezdőpontjára. Ez esetben az Edit menüből nem érhető el a parancs! Ezeket a poligonokat az óramutató 5-15. ábra. A „lyukas” poligonok járásával megegyezően létrehozásának módja digitalizáljuk be, ellenkező esetben használjuk az Edit – Polygon Functions – Fix Polygon Windings parancsot (mely csak kijelölt poligonokon működik). Ha lyuk nem jön létre, akkor győződjünk meg arról, hogy a poligon még ki van jelölve és válasszuk a … Fix Polygon Windings parancsot. Remélhetőleg ez orvosolja a problémát. Az fGIS-ben így csak a lyukat tudjuk létrehozni, a benne lévő poligont nem, ezt javasolt snappeléssel elkészíteni. Ha az Edit – Polygon Functions – Delete Part parancsát választjuk ki, a külső poligon eltűnik, a belső lyukak pedig poligonná válnak. A programnak azért további bosszantó problémái is: időnként nem működik, illetve rosszul működik valamely funkciója és a rossz eredmény nem vonható vissza. Pl. időnként nem sikerül a kapcsolódó poligonok léterhozása, vagy éppen rossz töredékek képződnek, ami nem visszavonható. Ha létrehoztuk az átfedő poligont és megszüntettük a réteg szerkeszthetőségét (Stop Editing) és visszatérünk szerkesztési módba (Start Editing), nem tudjuk a Subtract Polygon parancsot végrehajtani, hibaüzenetet kapunk (ilyenkor újra el kell készíteni az átfedő poligont). (+1) Beékelődő poligonok (drill). A kapcsolódó poligonok létrehozásának sajátos módja, ha a poligonok tetejére rajzolunk egy újat és azt beékeljük a többi közé.
Geoinformatika a környezetvédelemben
12
Ekkor alapszabály, hogy legalább 2 poligont érintenie kell ennek a poligonnak, tehát nem lehet sziget egy nagy poligonon belül. Viszonylag ritkán lehet rá szükség, de előfordulhat, hogy a meglévő poligonjaink tetejére rá kell rajzolni egy teljesen újat. Ilyen esetekben járjunk el a következőképpen: rajzoljuk meg az új poligont a többi tetejére (5-16. ábra), majd válasszuk ki a (Pick Tool) gombbal, majd nyomjuk le a jobb egérgombot. A feltűnő menüből válasszuk ki a Polygon Functions – Drill Polygon parancsot. Ezzel készen is vagyunk (5-17. ábra). A leghasznosabb alkalmazási területe talán a változások felvezetése lehet a digitális állományunkba.
5-16. ábra. A poligon a többi tetején, mely metsz legalább 2 másikat
5-17. ábra. A poligon beékelve a többi poligon közé
Az ArcView-ban, mint láttuk, igen kifinomult eszközök állnak rendelkezésre a hibák kijavítására, a poligonok közös vertexeinek együttes mozgatására, itt – az fGIS-ben – viszont jól gondoljunk meg mindent, mert ilyen nem létezik. Csak a vertexek egyedi átmozgatására (az Edit Points Tool-lal) és persze kötelező snappelésére van lehetőség, ami emellett nem is egyszerű, figyelembe véve a pontok átmozgatásának körülményességét (lásd a digitalizálásnál leírtak). Az eredmény tematikus térképként való megtekintéséhez kattintsunk a szerkesztőlécen a fedvényre. A már ismerős párbeszédpanelen (5-18. ábra) válasszuk a Wizard gombot, majd az új ablakban (5-19. ábra) a legördülő menüből a Kod oszlopot.
Geoinformatika a környezetvédelemben
5-18. ábra. A Legend Editor ablak
13
5-19. ábra. A tematikus készítésének alaplépése: az kiválasztása
térkép oszlop
Ezek után már csak a térkép típusát kell kiválasztani, ami nem is annyira választási lehetőség, inkább az adatok jellegéből következő tulajdonság, ez esetben ajánlatos a Unique values használata (5-20. ábra). 5-20. ábra. A térkép típusának a kiválasztása A következő beállításnál most hagyjunk mindent az alapbeállításokon és nyomjuk meg az Apply-t (5-21. ábra).
5-21. ábra. A tematikus térkép megjelénésnek megválasztása
Geoinformatika a környezetvédelemben
14
Az eredmény egy tematikus térkép, ahol jól elkülöníthető minden területhasználati kategória (5-22. ábra).
5-22. ábra. A területhasználati térkép fGIS-ben elkészítve Gyakorlásként fejezzük be a területhasználat digitalizálását!