Sok esetben és különböző gazdasági területen lehet szükség arra, hogy földtömeget (térfogat, köbméter, kubatúra) számoljunk pontfelhőkből vagy digitális magassági modellekből (DEM). Ennek a számításnak az egyik leggyakoribb esete, amikor egy anyagdepó földtömegét (térfogatát) szeretnénk meghatározni tisztán geometriai adatok alapján.
A térfogatszámításhoz elengedhetetlen egy megfelelő pontfelhő és egy digitális magasságmodell (DEM). Ezeket és a számítás eredményeit nehéz lehet megosztani az ügyféllel és a kollégákkal. Erősen ajánlott a SurveyTransfer adatmegosztó szoftver használata! További információkért keresd fel a szoftver gyártójának weboldalát IDE kattintva.
A számolás során kulcsfontosságú kérdés, hogy milyen felbontással rendelkeznek a modelljeink, hiszen minél pontosabbak, annál jobb eredményt kaphatunk. Továbbá, az is lényegi kérdés, hogy milyen módon végezzük el a számolást. Lehetőség van arra, hogy egyszeri felvételezés alapján lemérjük egy pontfelhőn vagy egy DEM-en az anyagdepók térfogatát egy fiktív síkra (a feltételezett talajszintre) vonatkoztatva. Mindezek mellett, különböző időpontokban felvételezett modellek különbsége is számolható pontfelhők és DEM-ek alapján is. Mind a négy esetre hoztam egy-egy példát, amiket útmutató jelleggel írok le, így ezeket akár Te is ki tudod próbálni.
A számítás bemutatására ingyenes, nyílt-forráskódú szoftvereket választottam, amiket Te is letölthetsz és telepíthetsz. A pontfelhők elemzéséhez a CloudCompare programot, míg a DEM állományok vizsgálatához a QGIS 3.22.1 verziót használtam fel.
A cikk célja, hogy a földtömegszámítás alapjait elmagyarázza olyan részletesen, hogy az itt leírtak egy egyszerűbb projekt keretében alkalmazhatók legyenek. Ezzel együtt előre felhívnám a figyelmedet, hogy számos, komplex eset is létezik, ezért ne csak vakon kattintgasd végig azt a munkamenetet, amit eléd tárok, hanem mindig fontold meg, hogy valósághű adatokat kaptál vissza vagy sem. Érdemes, tesztként mérést végezni egy szabályos geometriával – aminek pontosan ismered a térfogatát – és ezen kipróbálni a módszereket.
A cikkben bemutatott metódusokhoz a Mark Hamilton által készített modellt használtuk fel, ami elérhető a Sketchfab oldalán. Az említett 3D modell Creative Commons licensz alá tartozik, így szabadon felhasználható. Az elemzés érdekében a modellt pontfelhővé és raszterré is átalakítottuk.
1. PONTFELHŐ VIZSGÁLATA EGYSZERŰ SÍKKAL
Ebben a fejezetben CloudCompare segítségével egy anyagdepó térfogatát határozzuk meg egy egyszerű síkkal és a sík felett elhelyezkedő pontfelhő adatai alapján. A pontfelhőn először körbevágjuk az anyagdepót a környezetével együtt, majd azt további részekre bontjuk. Az anyagdepó környezetéből származtatunk egy síkot, ami alapján kiszámoljuk a depó térfogatát.
Megjegyzés: CloudCompare-ben lehetőség van a CSF Filter nevű plugin-nel automatikusan leválogatni a talajszintet, épületeket vagy a növényzetet. Ez az eljárás igen hasznos, ha városok épületmodelljeit szeretnéd elkészíteni vagy csak terepmodellt akarsz készíteni. Ha érdekel, akkor mindenképpen próbáld ki a CSF Filter plugin-t, hiszen remekül automatizálhatsz vele munkafolyamatokat.
Természetesen depók leválogatására is kiválóan alkalmas, viszont a továbbiakban egy manuális műveltsort mutatok be. A manuális beállítások bizonyos esetekben megkerülhetetlenek, valamint így legalább nem csak kettő kattintásból áll majd a bemutató. 🙂
Nyissuk meg a CloudCompare-t és importáljuk a vizsgálni kívánt pontfelhőt („Open”).
Néhány beállítást végezzünk el a számítás előtt. Először is növeljük meg a pontok méretét, hogy nagyobb zoom szinten is jól látszódjanak. Jelöld ki a pontfelhő réteget, majd a rétegfa („DB Tree”) alatt megjelenik egy „Properties” ablak, amiben megtalálod a „Point size” legördülő listát. Tetszőlegesen állíts be egy pontméretet, ami Neked kényelmesen jól látható. 🙂
Ezután a baloldali, függőleges menüszalagból válaszd ki a „Set current view mode” menüt. Ezen belül kattints az „Ortographic projection” lehetőségre. Ha rákattintottál, akkor a modelltér bal alsó sarkában megjelenik a „Perspective OFF” felirat. Erre azért van szükség, mert így nem keletkezik perspektív torzulás a modellen és pontosabban lehet körülhatárolni az anyagdepót. A könnyebb navigálás érdekében a modelltéren belül nyomd le a „8”-as billentyűt, így felülről, térképi nézetben vizsgálhatod a modellt. Annak érdekében, hogy véletlenül se forgasd el a kamerát a navigálás során, azt tanácsolom, hogy a jobb egérgomb lenyomásával mozgasd a kamerát. Az egérgörgővel tudsz nagyítani és kicsinyíteni a modell egyes részeire.
Végezetül még néhány megjelenítési beállítás, ami segíthet az anyagdepó lehatárolásában, az árnyékhatások. A felső menüsorban a „Plugins” menü alatt válaszd ki a „PCV/ ShadeVis”-t.
Alapbeállításokon futtasd le, kivéve, ha a déli félgömbön készült a felvétel, akkor vedd ki a pipát az „Only northern hemisphere (+Z)” elől. A végeredmény egy szürkeárnyalatos modell lesz, ami sokkal jobban visszaadja a depók kontúrját.
Szintén a „Plugins” menüből válaszd ki a „Hough Normals Computation” add-ont.
Ezt alapbeállításokon lefuttatva még inkább szembetűnő a depók körvonala, ugyanis a pontok normálját, azaz irányítottságát fogja kiszámolni.
Ezután megkezdhetjük az anyagdepó manuális körberajzolását. Jelöld ki a pontfelhő réteget, majd a menüsorban kattints az olló alakú ikonra („Segment”).
Bal egérgombbal kattintgatva rajzold körbe a depót úgy, hogy a talajszintből is jelölj ki pontokat. Fontos kiemelni, hogy ennél a résznél ne forgasd el a kamerát, mert ez a rajz csak 2D-ben értelmezhető! Itt egy zöld körvonalú terület jelenik meg. Ha végeztél, akkor nyomd le a jobb egérgombot, hogy lezárd a szerkesztést.
Válaszd a rajz eszköztárból a „Segment In (I)” lehetőséget.
Ezután kattints a zöld pipa ikonnal ellátott „Confirm segmentation (Enter)” gombra.
Kettő új réteg jelent meg, az egyik „.remaining”, a másik „.segmented” végződésű elnevezéssel. A „.segmented”-del fogunk foglalkozni a továbbiakban, ezért a másik réteg láthatóságát kapcsold ki.
Szegmentáljuk ezt a réteget is. Ebben a vágásban, már ténylegesen a depó körvonalát rajzold meg.
Most a kicsit zavarba ejtő „.segmented.remaining” névvel rendelkező rétegre egy síkot fogunk illeszteni. Jelöld ki a réteget, majd a „Tools” menüből válaszd ki a „Fit” opciót, azon belül is a „2.5D quadric” pontot.
Egyből megjelenik a ráillesztett sík, de ez nem pontfelhő és CloudCompare alatt csak kettő pontfelhő között mérhetünk térfogatot. Alakítsuk át a síkot pontfelhővé! Jelöld ki a „Quadric” réteget, majd kattints a felső menüszalagban a „Sample points on a mesh” lehetőségre. Akár alapbeállításokon hagyva futtasd le a függvényt.
Jelöld ki az újonnan létrehozott pontfelhőt és a szegmentált anyagdepót a „Ctrl + bal egérgomb” lenyomásával. A „Tools” menü alatt válaszd ki a „Volume” opciót, majd a „Compute 2.5D volume”-ot.
A „Ground/ Before” alatt add meg a „Quadric” pontfelhő réteget, míg a „Ceil/ After” résznél a depó réteget. A „Grid” ablakban a „step” értéke lesz az egyik legfontosabb változó! Ezt kísérletezd ki, hogy melyik érték lesz megfelelő. Ezt hogyan tudod megállapítani? Jó a kérdés! Miután egy beállítás után rákattintasz a nagy piros „Update” gombra, a „Results” ablakban megjelenik a kiszámolt felszín, a hozzáadott és kivont térfogat is és még egy fontos adat az úgynevezett „Matching cells”. Addig próbálgasd növelni vagy csökkenteni a „step” értékét, amíg a legmagasabb „Matching cells” arányszámot nem kapod. Minél több a térben passzoló raszter, annál pontosabb lesz a számítás. Elszóltam magam… igen, ez a függvény egy raszteres számítást eredményez.
2. PONTFELHŐK KÖZÖTTI földtömegszámítás (TÉRFOGAT)
A második számolási módszert két pontfelhő között mutatom be, szintén CloudCompare szoftverben. Az eljárás sokkal egyszerűbben megoldható, mint az előző esetben, mindjárt bemutatom, hogy miért.
Megjegyzés: Noha a földtömegszámítás (térfogatszámítás) valóban gyorsabb és egyszerűbb, de az adatgyűjtés során különösen figyelni kell, hogy a két pontfelhő Ground Sample Distance (GSD) értéke közel azonos legyen. Mindezek mellett, a térbeli pozícióra is figyelni kell, ezért nagy hangsúlyt kell fektetni a pontos georeferálásra!
Nyissuk meg a két pontfelhőt CloudCompare-ben, majd jelöljük ki azokat és az előző fejezetben bemutatott „Compute 2.5D volume” funkciót indítsuk el. Értelemszerűen, a „Ground/ Before”-nál állítsd be azt a pontfelhőt, ahol még nincs anyagdepó, míg a „Ceil/ After” résznél a depóval rendelkező réteget válaszd ki! Látható, hogy sokkal magasabb „Matching cells” értéket érhetünk el – feltéve, ha jó volt az adatgyűjtés és a georeferálás.
Ha jól megvizsgáltad az előző fejezet végének eredményét, akkor láthatod, hogy van 115.112 m3 eltérés a hozzáadott térfogatok között. Ez azért lehetséges, mert a teljes pontfelhőre végeztük el a földtömegszámítást (térfogatszámítást). Ebben az esetben is lehetőség van arra, hogy szegmentáljuk a pontfelhőket, azaz körbevágjuk csak a vizsgálandó anyagdepót. Így látható, hogy 8.897 m3 lett az eltérés, tehát jelentősen lecsökkent a két számítás közötti különbség. A számítások eredménye ugyan közel esik egymáshoz, mégis pontosabbnak ítélhető a pontfelhők közötti kalkuláció, mivel a „Matching cells” értéke jóval magasabb. A kétfázisú adatgyűjtésnek köszönhetően több adat áll rendelkezésünkre a talajszintről, azaz a depó nélküli állapotról.
Megjegyzés: A „Compute 2.5D volume” függvényben mindkét állománynál („Ground/ Before” és „Ceil/ After”) be lehet állítani az „Empty cells” értéket is. Ez azokra az üres cellákra vonatkozik, amit nem képes a pontfelhőből kiolvasni. Itt érdemes kipróbálni az „interpolate” opciót, ami egy közelítő, geostatisztikai számítást alkalmazva meghatározza a köztes, adathiányos térrészek várható értékeit. Ez azt jelenti, hogy az adathiányos területekre is megbecsüli a szoftver a várható értékeket. Ezzel a beállítással látható, hogy akár magasabb „Matching cells” arányszámot is kaphatunk és így az előző fejezetben elvégzett számításhoz még közelebbi értéket kaptam.
3. DEM Földtömegszámítás (TÉRFOGAT) SÍK MENTÉN
Most elhagyjuk a CloudCompare csodás világát és átevezünk QGIS környezetbe. Itt fogjuk elemezni az előbb bemutatott modellt, annyi különbséggel, hogy most raszteres állományként vizsgáljuk meg.
Amennyiben csupán egy DEM áll a rendelkezésedre és ebből szeretnél térfogatot számolni, akkor egy sík magasságát kell megadnod, amihez viszonyítva az alatta vagy fölötte található térrészekre számolható ki az objektum térfogata.
Nyissuk meg a QGIS-t, majd a baloldalon található „Browser” ablakban keresd ki a DEM fájlodat és add hozzá a térképhez drag-and-drop módszerrel.
A számítás kezdő lépéseként meg kell határoznunk annak a síknak a magasságát, ami kijelöli a számítás kezdő szintjét. Ez a szint fölött elhelyezkedő térrész térfogatát számoljuk majd ki. A legegyszerűbb, ha ebben a példában is körbevágjuk a vizsgálandó anyagdepót. Hozzunk létre egy új poligon réteget, ami alapján kivághatjuk a depót! Válasszuk ki a felső menüsávból a „New Temporary Scratch Layer” opciót.
Add meg az új réteg nevét, majd válaszd ki a „Polygon” geometria típust, állítsd be a koordináta-rendszert, amiben készült a DEM és végül nyomj rá az „OK” gombra.
Az új rétegen automatikusan elindul a szerkesztő mód, ezért elkezdhetjük megrajzolni a területet a felső menüsávban található „Add Polygon Feature” gombra kattintva.
Bal egérgombbal kattintgatva lehelyezheted a sokszög töréspontjait, majd a jobb egérgombbal lezárhatod a területet. Ezután mentsd el a réteget a „Save Layer Edits” gombbal.
Végül, zárd le a szerkesztési folyamatot a „Toggle Editing” ceruza alakú ikonra kattintva.
A menüsávba kattints bele jobb egérgombbal és aktiváld a „Processing Toolbox Panel” ablakot.
A keresőbe írd be, hogy „Clip raster by mask layer”, ezután válaszd ki az első GDAL függvényt. A megjelenő ablakban add meg a raszteres állományodat, majd a területet, ami alapján vágni szeretnéd a DEM-et. Ha végeztél nyomj a „Run” gombra. A funkció működése röviden az, hogy a vektoros területet raszter cellákká alakítja, majd az átfedésben lévő raszterek közös pontjait menti ki egy új rétegbe.
A megjelenő raszteres állomány legalacsonyabb pontja leolvasható a rétegfából. Ez ebben az esetben 398.163986 méter lett, de azt tanácsolom, hogy ne ezt az értéket használd fel a sík meghatározása során, mert ez félrevezető lehet! Kattints duplán a kivágott raszter rétegre, majd megjelenik a „Layer Properties” ablak. Ezen belül baloldalt válaszd ki a „Symbology” lapfület, majd a „Contrast enhancement” legördülő menüből válaszd ki a „Clip to MinMax” opciót. Mindezek után, a felette lévő „Min” értéket kezdd el növelni, majd nyomj az „Apply” gombra. Figyeld meg a térképen, hogy melyik „Min” értéknél fedi le a legjobban a fekete térrész a vizsgálandó objektumot. Ha teljesen elfedte és nincsenek feleslegesen kilógó területek, akkor meghatároztad a sík magasságát. Nálam ez az érték 398.52 méterre jött ki.
Írjuk be a függvény keresőbe, hogy „Raster surface volume”, majd kattintsunk duplán az első találatra. Az „Input layer” mezőnél a kivágott raszteres állományt kell megadni, majd a „Base level”-nél a meghatározott sík magasságát. A „Method” alatt több lehetőség közül választhatsz, most a példa kedvéért válasszuk a „Count Only Above Base Level” beállítást.
A végeredmény egy riport lesz, ami tartalmazza a földtömegszámítást (térfogatszámítást). Elgondolkodtató, hogy miért is lett 106.765 m3-rel kevesebb az eredmény, mint a CloudCompare-es példában, amikor ugyanúgy egy sík felett határoztuk meg a földtömeget. Nos, ennek több oka is lehet:
- A CloudCompare más raszterizáló algoritmust használ, ezért a DEM magassági adatai eltérhetnek egymástól.
- CloudCompare környezetben nem teljesen síkkal dolgoztunk, hanem „Quadric” 2.5D-s geometriával, tehát annak nem csak egy komponensű magassági adata volt.
- A raszteres állomány felbontása eltérhet a pontfelhőből származtatott értékektől.
4. DIGITÁLIS DOMBORZATMODELLEK ÖSSZEHASONLÍTÁSA
QGIS-ben lehetőségünk van arra is, hogy két raszteres állomány közötti különbséget megvizsgáljuk.
Nyisd meg a két összehasonlítani kívánt raszteres állományt. A példánál maradva én olyan DEM-eket nyitok meg, amik közül az egyik egy korábbi felvételezés eredménye, azaz még nem látható rajta anyagdepó és egy olyat, amin már igen.
Itt körbe kell rajzolni a vizsgálandó területet, ahogy azt az előző fejezetben már bemutattam. Ezt nem fogom újra részletesen leírni, csupán az eredményt mutatom meg.
A raszteres állományok közötti földtömegszámítás (térfogatszámítás) legegyszerűbb módja, ha telepíted a „Volume Calculation Tool” nevű bővítményt. Ezt úgy tudod telepíteni, ha a legfelső sávban először a „Plugins” menüre kattintasz, majd a „Manage and Install Plugins…”-ra.
A keresőbe írd be, hogy „Volume Calculation Tool”, majd válaszd ki a talált bővítményt és a jobb alsó sarokban kattints az „Install Plugin” gombra. Itt eltelik pár másodperc, mire sikeresen beépül a modul, ezután bezárhatod a „Plugins” ablakot.
Az új funkciót „Volume” elnevezéssel a felső menüsávban, a „Raster” alatt találod, azon belül is a „Volume Calculation Tool” almenüben.
Ebben az eszközben először meg kell adnod a bemeneti rétegeket, azaz a vizsgálandó objektum körvonalának vektoros rétegét („Areas (Polygon Layer”), majd azt a rasztert, amin látható anyagdepó („DEM Height Layer”). A „Define base level height” területen belül válaszd ki a „Choose type of base height” alatt a „Use a SECOND DEM layer as a base” funkciót. Ezután add meg a „DEM Base Layer” menüpontban a korábbi felvételezés eredményének raszterét, ahol még nincs anyagdepó. Végül, a „Type of Volume Calculation” alatt, a „Counting Method” esetében állítsd be a „Count only above (eg. stock pile)” opciót. Nyomj rá a „Run” gombra. Az eredmény jobb oldalon jelenik meg.
Megjegyzés: A „Volume Calculation Tool” alkalmas lett volna arra, hogy a 3. fejezetben meghatározott – DEM és sík menti – földtömegszámítást (térfogatszámítást) elvégezzük, ugyanakkor mindenképp meg akartam mutatni egy alternatív megoldást is. Ez a bővítmény megannyi lehetőséget rejt magában, amik közül csak egyet mutattam be. Ezzel akár több anyagdepó térfogatát mérheted le egyszerre, ezáltal fél-automatikussá válhat a számolás, valamint mérhetsz akár Z koordinátákkal ellátott területtel is. Ha bővebben érdekel a többi beállítási lehetőség és a működési elve, akkor keresd fel a fejlesztők weboldalát vagy nézd meg ezt a rövid YouTube videót.
ÖSSZEFOGLALÁS
Úgy gondoltam, hogy ennek az oktatóanyagszerű cikknek végére érdemes összefoglalni a kapott földtömegszámítások (térfogatszámítások) értékeit, hogy lásd, az egyes metódusok eredményei igen eltérőek lehetnek.
Számításhoz felhasznált geometriák | Pontfelhő & sík | Pontfelhő & pontfelhő | Pontfelhő & pontfelhő (interpolált) | DEM & sík | DEM & DEM |
Számolt térfogat (m3) | 1178 | 1169 | 1171 | 1071 | 1166 |
Ez is azt mutatja, hogy egy földtömegszámítás (térfogatszámítás) eredményességéhez nem elegendő rátalálni egy metódusra, amit vadul végigkattintgatsz! Ismerni kell a lehetőségeket és tesztelni kell több mintaterület alapján, hogy egy adott projekt szempontjából melyik módszer lesz a leghasznosabb és legpontosabb.
Továbbra is azt tanácsolom, hogy válassz ki egy olyan objektumot, aminek ismered a térbeli dimenziót és azon végezd el a földtömegszámításokat. Például készíts el kartondobozból egy 1 m3-es kockát, ezt mérd fel, majd próbáld ki az itt leírt térfogatszámító módszereket.
Ha nagyon-nagyon tetszett, amit olvastál, akkor meg is oszthatod az ismerőseiddel. Ne fogd vissza magad! 🙂
Tetszett, amit olvastál? Akarsz hasonlókat olvasni?