tisdag 4 februari 2014

Så gör man: Terrängmodell (3D)

Blå Jungfrun, Kalmar Sund. LiDAR-data. [LAStools/LASVIEW] 


Förutsättningar:
– Program: LAStools + Rhino (eller alt. 3D-program som kan läsa .OBJ- eller .txt-filer). Överkurs: Meshlab + QGIS 2.0
– Operativsystem: windows. Alternativ: du som kör mac, testa WineBottler. (bara ett tips, ej testat! – nu är det testat, och det verkar inte funka. Rekommenderas bara för riktigt för dem med mycket mycket tid och intresse. Lite info här. Använd BootCamp eller Parallells.)
– Höjddata: Lantmäteriets Vektor Laserdata (LiDAR-data från Lantmäteriet, mer info här.) Exempel: 10A040_63450_6075_25.las

Format
– Höjddata från Lantmäteriet kommer i LAS-format, och innehåller x,y,z-koordinater samt ytterligare information (koordinattyp: vatten, mark, byggnad etc)
– LAStools kan exportera ett antal olika format: 3D-mesh – .OBJ, koordinatfil – .txt, Shape-fil – .shp och några till. Med LAStools kan du välj hela eller bara en del av LAS-filen (eller filerna), och du kan också filtrera bort saker i 3D-molnet som du inte vill ha med (typ träd och vatten).
– Bra att veta: LASTools sparar alltid det du gör i samma folder som ursprungsfilen. Och skriver över ifall du gör samma sak fler gånger. Utan att fråga.


LASTools

Steg-för-steg
1. kör igång LAStools. Du hittar startfilen lastool.exe i en av underfoldrarna när du packar upp programmet: LASTOOLS/BIN/. Då får du ett program som ser ut som bilden ovan. Det är en samling småprogram som går att köra autonomt också, men öppna därför just lastools.exe för undvika förvirring. Sedan: öppna en LAS-fil: BROWSE... . Det kan vara lite svårt att navigera i filsystemet, men det går, använd \ för att röra dig uppåt. Byt hårddisk/partition, om det behövs, genom ändra prefix i DIRECTORY.
2.  Filtrera. Om du vill skapa en ren terrängmodell – utan träd och hus – kan du filtrera bort allt information utom den rena marken.
– Välj FILTER, enklast är det genom att välja klassifikation.
– Markkoordinater är CLASS 2, så välj BY CLASSIFICATION OR RETURN > KEEP CLASSIFICATION. Välj NUMBER AND VALUE: skriv 2 [som markklassen, 2].
– Klicka på ADD. Texten keep_classification 2 dyker upp.
3. Definiera projektionen. Det här kan – om du vill – du hoppa över första gången. I vissa situationer (vissa av LAStools kommandon) kan det krävas, att informationen har definierats, i vårt fall med Lantmäteridata, som SWEREF 99TM (3006). Under PROJECTION fyll i:
– TRANSVERSE MERCATOR
– FALSE EASTING: 500000
– FALSE NORTHING: 0
– UNITS: METER
– CENTER LONG: 15
– NAT ORIGIN LAT: 0
– SCALE FACTOR 0.9906 0.996
– ELLIPSOID: NAD83
– ELEVATION UNITS: METER
4. Om du vill kan du välja en liten del av det LAS-data du öppnar. Kanske har du fyra stora filer, kanske du bara vill ha några kvarter i en stad. Behöver du det, använder du dig av
– CLIP INPUT (längst ned, till höger) och PICK för att rita en rektangel där du vill beskära din höjdmodell. Eftersom du säkert inte har en aning om var som är var, gå först till LASVIEW för att se hur din modell ser ut.
– Välj LASVIEW, klicka RUN. Principen är likadan för alla programmets kommandon (eller småprogram). Du kör dem genom ett RUN och sedan START. Där kan du – om du känner dig avancerad – ändra i inställningar. Om du är sugen på det, läs in dig på vad, hur, syntax i README i respektive program. Inne i LASVIEW kan du rotera, zooma, ändra punktstorlek, panorera. MELLANSLAG växlar mellan vykommandon. Högermusknapp ger fler alternativ. Kolla att det är den del av landskapet du vill ha, kolla vilket utsnitt du vill ha, gå tillbaka till CLIP INPUT och beskär ifall du känner för det.
5. Exportera. Det finns tre olika sätt (åtminstone) du kan få ut informationen från LAStools till typ Rhino:

a) Mesh. Mest direkt är att ta över höjdmodellen som en meshad höjdmodell.
– Använd LAS2TIN. TIN står för Triangulated Irregular Network och kommandot exporterar modellen som SHAPE eller OBJ.
– Välj OBJ om du vill arbeta i Rhino. Läs mer om detaljerna i README. Kör RUN för att generera modellen. Modell-filen ligger i samma folder som LAS-filen. Sedan är det bara öppna upp i Rhino. Enheten är meter.

b) Koordinater. Gillar du punktmoln, kan du lätt exportera hela topografin som x,y,z-koordinater till Rhino för att skapa din Mesh där.
– Använd LAS2TXT.
– Inställningar: x y z  iklickat.
– PARSESTRING: XYZ
– SEPARATOR: SPACE (men vad som helst funkar, bara du berättar vad i Rhino (IMPORT, OPTIONS)
RUN.
– Så får du en textfil (.TXT) och den kan du bara öppna i Rhino OPEN/IMPORT, välj sedan samma DELIMITER som i LAStools (typ SPACE). Välj POINTCLOUD eller inte (om inte, kan det bli tungt). Rhinokommandot MESHFROMPOINTS skapar sedan ett mesh från koordinaterna.

c) Koordinater eller mesh igen. Ett alternativ om man inte tycker att varken LAStools eller Rhino ger dig en bra mesh är att experimentera med programmet MeshLab (gratis), finns för windows, ubuntu och vissa mac. Du behöver samma textfil som ovan men du måste ändra suffixet, från .TXT till .XYZ. Eller så tar du in din mesh via .OBJ och bearbetar den där med diverse algoritmer (smoothing, sharpening etc).

d) Höjdkurvor. Du kan också få samma resultat som från QGIS och DEM-filen, vanliga höjdkurvor. Men till skillnad från DEM/QGIS är dessa i 3D.
– Använd LAS2ISO.
– Inställningar: EVERY N UNITS (gör höjdkurvar var N meter) och där du definierar N nedan i UNITS/ISOVALUE.
– Exporterar gör du i KML (testat) eller SHAPE (har ej testat).
– Starta QGIS 2.0
– Lägg till vektorlager
– LAGER > SPARA SOM > FORMAT: AUTOCAD DXF > OK
– Öppna i Rhino.

LAS2TIN: Mesh från LASTools (Blå Jungfrun)

LAS2TXT: Mesh från Pointcloud i Rhino

LAS2ISO: Höjdkurvor från LAStools

Exempelsektion, detaljeringsnivå, Blå Jungfrun, från LAS2TIN