Egy fotogrammetriai vagy LiDAR feldolgozást követően előálló pontfelhőt tisztítani kell, ez CloudCompare-ben is lehetséges: a feleslegesen leképződött határok levágása, zavaró, rossz helyen létrejött pontok szűrése és törlése, stb. A tisztítás során felmerülhet az igény a pontfelhő maszkolására, azaz a vizsgált térrészen belül a zavaró geometriák kivágására. A maszkolás után adathiány keletkezik, ez pótolható valamilyen szempontrendszer alapján. A pontfelhők maszkolására kimondottan jó eszköz a CloudCompare. A CloudCompare egy ingyenes, nyílt-forráskódú szoftver, ami remek eszközpalettát biztosít a pontfelhők elemzésére. A CloudCompare szoftvert IDE kattintva éred el.
A CloudCompare kimeneti fájljai nagyméretű pontfelhők, ortomozaikok, digitális magasságmodellek (DEM) és 3D modellek lehetnek. Ezeket nehéz lehet megosztani az ügyféllel és a kollégákkal, ezért erősen ajánlott a SurveyTransfer adatmegosztó szoftver használata! További információkért keresd fel a szoftvergyártó weboldalát IDE kattintva.
Mikor is lehet szükség egy pontfelhő maszkolására és egy új felszín generálására? Két konkrét példát is mondok… Vegyük az egyszerűbb esetet először. Egy pontfelhőn vannak olyan épületek, növények, fák, munkagépek és egyéb objektumok, amiket szeretnél kitörölni a felvételezésedből, majd ezek helyét pótolnád egy síkkal.
A másik példa már egy bonyolultabb szituáció. Tételezzük fel, hogy anyagdepók térfogatát kell felmérned egy bányában vagy egy építkezésen. Az anyagdepók nekitámaszkodnak egy egyenetlen, dőlt falsíknak. Amennyiben ez a szituáció áll fenn, úgy nem tudod egy egyszerű síkkal meghatározni az anyagdepó térfogatát, hiszen a számításod így komoly hibával lesz terhelve. A problémát jól szemlélteti a következő ábra.
Ennek a problémának két lehetséges megoldása van. Kétszer mérsz fel (anyagdepó előtti és utáni állapotot), majd ezeket a pontfelhőket veted össze és mérsz térfogatot. A másik megoldás, hogy egy pontfelhő alapján maszkolod az anyagdepót (ábrán Stockpile) és az adathiányos térrészre (ábrán Volume calculation error) interpolálsz egy új felszín CloudCompare-ben. Utóbbi lehetőséget körbejárjuk a cikk folytatásában!
CloudCompare – Pontfelhő maszkolása 1. – CSF Plugin
A CloudCompare CSF (cloth simulation filtering) pluginjáról egy korrábbi írásunkban már esett szó, de újra leírom a módszer lényegét. Sokszor előfordul, hogy nem a teljes pontfelhő felszínére (Digital Surface Model), hanem annak csak a terepfelszínre (Digital Terrain Model) van szükség, azaz az épületeket, fákat és egyéb elemeket maszkolni kell.
Látszólag nem egyszerű feladat, de a CloudCompare CSF (cloth simulation filtering) pluginja segít a pontfelhő maszkolásában. Röviden és konyhanyelven leírom, hogy mit is csinál a CSF a pontfelhővel: a pontfelhő teljes felszínét a feje tetéjére fordítja, majd egy virtuális ruhadarabot helyez rá. Az épületek, növényzet és egyéb objektumok ezen az invertált állományon negatív geometriaként jelennek meg. A pontfelhő ezen „mélyedéseibe” csak korlátozottan illeszkedik a ruhadarab. A ruhadarab mesh modellje fogja jelenteni a feltételezhető terepfelszínt.
A CSF módszer jó megoldás, ha épületeket, fákat vagy munkagépeket akarsz maszkolni. A példa kedvéért kettő munkagépet maszkoltam ki.
CloudCompare – Pontfelhő maszkolása 2. – Manuális megoldás
A CloudCompare manuális pontfelhő maszkolása segít a korábban említett komplex módon elhelyezkedő anyagdepók mérésében. Nézzük meg, hogyan lehet a következő példában a törmeléket megfelelően maszkolni, majd megmérni annak térfogatát!
Megjegyzés: A CloudCompare néha munkamenet közben leáll, ezért javaslom, hogy rendszeresen mentsd el az egész munkádat. Ezt úgy teheted meg, ha az összes réteget kijelölöd a DB Tree-ben, majd a menüsávban a floppy ikonra kattintasz és egy „.bin” fájlt mentesz el. Sajnos ezt ugyanígy kell megtenned minden egyes mentés során.
Első lépésben CloudCompare-ben kell megnyitni a maszkolni kívánt pontfelhőt. A Segment () funkcióval körberajzolható a maszkolandó objektum. Ez az eszköz a felső menüsávból érhető el. Aktiválva, megjelenik egy külön funkcióablak. Ekkor már elkezdhető a maszkolandó tereptárgy körberajzolása. Töréspont bal egérgombbal rakható le és az alakzat a jobb egérgombbal zárható. Ezután a Segment out () gombbal lehet ténylegesen maszkolni a pontfelhőt.
A maszkolási metódus lezárásához a Confirm Segmentation () opciót kell választani. Ilyenkor a CloudCompare DB Tree-ben két pontfelhő jelenik meg: maszkolt (szegmentált) és visszamaradt pontfelhő. Javaslom, hogy ne töröld ki a visszamaradt (anyagdepót reprezentáló) pontfelhőt, mert még jól jöhet. 🙂
CloudCompare – Maszkolt pontfelhőben keletkezett adathiány pótlása 1.
Amennyiben egy olyan különálló tereptárgyat, például egy munkagépet kell maszkolni a pontfelhőből, amit körbevesz a vizsgálandó terepszint, akkor elegendő a CloudCompare felső menüsávjából kiválasztani a Rasterize függvényt (). Itt fontos, hogy az adathiányos területre (Empty cells/Fill with) az interpoláció legyen beállítva. Az Update grid nagy piros gombra kattintva megjelenik egy magasság szerint színezett előnézet. Mindezek után a Cloud gombra kattintva hozzáadhatod a CloudCompare rétegfájához az eredményt.
Jól látszik, hogy a létrehozott új pontfelhő (kék) szépen kitöltötte a maszkolás után keletkezett adathiányos területeket.
De mi a helyzet a másik maszkolási területtel, ott is alkalmazható ez a módszer? Ezen a területen kevésbé sikeres az interpoláció. Itt a maszkolás miatt nagy szintkülönbség alakult ki a rézsű felső és alsó része között, ezért a köztes részen „úgy gondolja” az algoritmus, hogy egy rámpaszerű lejtő várható. A következő fejezetben megmutatom, hogy ez hogyan javítható a pontfelhőn!
CloudCompare – Maszkolt pontfelhőben keletkezett adathiány pótlása 2.
Az előző fejezet végén felvázolt problémát úgy lehet megoldani, ha a maszkolás után fennmaradt pontfelhőn helyettesítő adatpontokat helyezünk el. Lássuk mindezt CloudCompare-ben!
A maszkolás után fennmaradt (anyagdepót megjelenítő) pontfelhőt jelöld ki a DB Tree-ből, majd válaszd ki a menüsávból a Point list picking () eszközt. Ezzel az eszközzel CloudCompare-ben pontokat helyezhetsz el a pontfelhőn bal egérgombbal kattintgatva. Úgy érdemes lehelyezni a pontokat, hogy azok X, Y koordinátái lekövessék a rézsű geometriáját. Nyilván ez a felhasználó becslésén alapuló eljárás, de az esetek többségében jól meghatározható, hogy hol is lehet a rézsű talpszintje. Minél sűrűbben helyezünk le pontokat, annál biztosabb, hogy az interpolációval jó eredményt kapunk.
A Point list picking eszközön belül a floppy ikon alatt lehet kimenteni a pontokat CSV fájlba (x,y,z). Ezt tegyük meg!
A Point list picking bezárható, majd a CloudCompare-ben maradva a másik maszkolt pontfelhőt (amiből hiányzik az anyagdepó) kiválasztva is el kell indítani a Point list picking eszközt. Amennyiben a rézsűtalp síkján elhelyezünk pontokat, úgy megkapjuk a Z koordináták értékeit is. Ez a példa esetében -178.62.
Notepad vagy Notepad++ programokban megnyitva a korábban kimentett CSV fájlt, átírhatók a Z koordináták értékei, ahova az előbb meghatározott rézsűtalp értékei helyettesíthetők be.
Megjegyzés: Ha valamelyik irányba dől a felszín, úgy célszerű több pontot lehelyezni és többször lekérdezni a rézsűtalp magassági értékeit.
A CSV fájl elmentése után, az megnyitható CloudCompare-ben, ahol pontfelhőként jelennek meg a pontok.
Mindezek után, ha biztosak akarunk lenni abban, hogy az interpoláció nem hoz létre hibásan kinéző pontfelhőt, akkor a maszkolás helyén fellépő adathiányt könnyedén fel lehet tölteni plusz adatokkal. Ehhez CloudCompare-ben válaszd ki a Trace polyline () eszközt, majd kösd össze a maszkolt pontfelhőn látható sík pontjait a feltételezett rézsűtalp pontjaival. A feltételezett rézsűtalp pontfelhő pontjait is javasolt összekötni egymással a következő minta szerint. Ha kész vagy, nyomj a Trace polyline helyi menüjében a Confirm gombra ().
Jelöld ki a CloudCompare DB Tree-ben az új polyline-t, majd válaszd ki az Edit/Polyline/Sample Points funkciót. Amennyiben megadunk egy tetszőleges pontszámot és leokézzuk a párbeszédablakot, úgy a berajzolt vonal mentén pontokat (egy új pontfelhőt) hoz létre a CloudCompare.
Megjegyzés: Ha van adat a lejtő névleges dőléséről, akkor CloudCompare-ben az Edit/Plane/Create funkcióval létrehozható egy egyszerű sík. Ezzel pontosítható a rézsű geometriája. Beállítható a sík centroidjának koordinátája, a dőlésiránya, dőlésszöge, magassága és szélessége. A létrejött sík tovább igazítható a Translate/Rotate funkcióval. Végezetül a síkból is pontfelhő gyártható a Sample Points funkcióval.
A pontfelhőket (maszkolt pontfelhő, Point list picking pontok, Trace polyline pontjai (+ a sík pontjai)) kijelölve a CloudCompare DB Tree-ben, összeolvaszthatók a pontfelhők egy újba. Ehhez az Edit/Merge funkciót kell kiválasztani. Ezután az összeolvasztott pontfelhőn lefuttatható a Rasterize függvény () interpolációval.
Érdekesség: A CloudCompare az interpoláció eredményének nem képes beállítani az eredeti/származtatott RGB színezést, de ez utómunkával visszaállítható akár QGIS alatt a WhiteboxTools eszközökkel.
Amennyiben a maszkolt pontfelhőt és a létrehozott interpolált pontfelhőt kijelölöd, úgy a Tools/Volume/Compute 2.5D volume függvénnyel kiszámolható az anyagdepó térfogata.
Természetesen ezek a kalkulációk is sokféle 2.5D, 3D fájlt eredményeznek, amiknek a megosztása nehézkes lehet. Próbáld ki a SurveyTransfert és tapasztald meg milyen, amikor könnyedén oszthatod meg a térinformatikai fájlokat másokkal!
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?