• 2022-06-27

4 egyszerű és szakszerű mód a pontfelhő és a DEM alapú térfogatszámításhoz

4 egyszerű és szakszerű mód a pontfelhő és a DEM alapú térfogatszámításhoz

4 egyszerű és szakszerű mód a pontfelhő és a DEM alapú térfogatszámításhoz 1024 576 SurveyTransfer

Sok esetben és különböző gazdasági területen lehet szükség arra, hogy térfogatot 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ó térfogatát szeretnénk meghatározni tisztán geometriai adatok alapján.

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 TÉRFOGATSZÁMÍTÁS

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 térfogatszámító eljárá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 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 TÉRFOGATSZÁMÍTÁS 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 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:

  1. A CloudCompare más raszterizáló algoritmust használ, ezért a DEM magassági adatai eltérhetnek egymástól.
  2. 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.
  3. 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 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 – 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 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)
11781169117110711166

Ez is azt mutatja, hogy egy 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 térfogatszá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 módszereket.

Remélem, hogy hasznos volt számodra ez a cikk! Ha igen, akkor légy olyan kedves és töltsd ki ezt az 5 perces kérdőívet, hogy a SurveyTransfer minél inkább a Te igényeidre szabva lássa meg a napvilágot!

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?

SurveyTransfer uses cookies to enhance the user experience, which you acknowledge when using the website.
Read more