Import lidarových dat

Před importem dat je potřeba vytvořit příslušnou lokaci, viz kapitola struktura dat a tvorba lokace ze školení GRASS GIS pro začátečníky. Lokaci pro import dat v textovém či binárním formátu lidarových dat vytvoříme typicky na základě EPSG kódu.

Obecně řečeno lze vstupní lidarová data importovat do systému GRASS jako vektorová nebo rastrová data. V případě importu lidarových dat do rastrové reprezentace hraje zásadní roli výpočetní region.

Textový formát XYZ

Vstupní soubor obsahuje souřadnice x,y,z pro každý bod na jednom řádku. Souřadnice jsou odděleny většinou bílým znakem jako je mezera nebo tabulátor. Pro vytvoření rastrového výstupu lze použít modul r.in.xyz, resp. v.in.ascii v případě výstupu vektorového. Druhý uvedený modul importuje bodová data tak, jak jsou uvedena na vstupu. Modul r.in.xyz se chová odlišně, vytvoří na základě agregace načtených bodů do rastrových buněk aktuálního výpočetního regionu dle zvolené statistické metody (parametr method, výchozí je průměrná hodnota - mean) novou rastrovou mapu.

Rastrová reprezentace

Příklad importu si ukážeme na souboru HLIN04_5g.xyz z kapitoly Tvorba DMR a DMP.

-625002.344 -1089749.632 502.825
-625000.53 -1089735.192 502.585
-625006.071 -1089779.418 504.849
...

Poznámka

V tomto případě jsou data v souřadnicovém systému S-JTSK (EPSG:5514).

Modul r.in.xyz vzhledem k tomu, že provádí agregaci načtených dat, se na rozdíl od ostatních importních modulů řídí aktuálním výpočetním regionem. Proto je třeba před importem nastavit na základě vstupních dat výpočetní region. K tomu nám poslouží přepínače -sg.

r.in.xyz -sg input=HLIN04_5g.xyz separator=space

n=-1088000.076 s=-1090000.059 e=-624999.829 w=-627499.828 b=461.312 t=554.334

Poznámka

Ve verzi GRASS GIS 7.2.0 a nižší je třeba ještě zadat parametr output, a to i přestože modul žádný výstup v tomto případě nevytváří.

Výsledek nám poslouží pro nastavení rozsahu výpočetního regionu pomocí g.region, na nás bude zvolit vhodné prostorové rozlišení. V našem případě zvolíme 1 metr.

g.region n=-1088000.076 s=-1090000.059 e=-624999.829 w=-627499.828 b=461.312 t=554.334 res=1

Poznámka

Přepínačem -p můžeme vytisknout pro kontrolu aktuální nastavení.

g.region -p
north:      -1088000.076
south:      -1090000.059
west:       -627499.828
east:       -624999.829
nsres:      0.9999915
ewres:      0.9999996

Modul g.region provádí zarovnání na hraniční souřadnice, proto prostorové rozlišení neodpovídá přesně zadané hodnotě. Zarovnání regionu na rozlišení můžeme vynutit pomocí přepínače -a.

g.region n=-1088000.076 s=-1090000.059 e=-624999.829 w=-627499.828 b=461.312 t=554.334 res=1 -pa
north:      -1088000
south:      -1090001
west:       -627500
east:       -624999
nsres:      1
ewres:      1

Další možností je nastavit region tak, aby vstupní body padly do centra rastrových buněk. V tomto případě rozšíříme rozsah regionu o polovinu nastaveného prostorového rozlišení, v našem případě tedy o 0,5 metru.

g.region n=-1088000.076 s=-1090000.059 e=-624999.829 w=-627499.828 b=461.312 t=554.334
g.region n=n+0.5 s=s-0.5 w=w-0.5 e=e+0.5 res=1 -p
north:      -1087999.576
south:      -1090000.559
west:       -627500.328
east:       -624999.329
nsres:      0.9999915
ewres:      0.9999996

Poté již provedeme import (vynecháme přepínače -sg a přidáme parametr output):

r.in.xyz input=HLIN04_5g.xyz separator=space output=HLIN04_5g

Vektorová reprezentace

Pokud chceme vstupní data importovat jako bodovou vektorovou mapu, použijeme modul v.in.ascii. V tomto případě se data naimportují v původní podobě, nedochází k žádné formě agregace tak jako u r.in.xyz.

v.in.ascii input=HLIN04_5g.xyz output=HLIN04_5g separator=space z=3 -tbz

Důležité

Import lze urychlit přepínačem -t (nevytvářet atributovou tabulku) a -b (nesestavovat topologii).

Ve výchozím nastavení modul importuje body jako 2D. Pomocí přepínače -z si vynutíme výstup do 3D vektorové mapy. Index sloupce se z-tovou souřadnici definujeme pomocí parametru z.

../_images/import-rast-vect.png

Obr. 50 Ilustrace importu lidarových dat do rastrové a vektorové bodové mapy.

Binární formát LAS/LAZ

Data v binárním formátu LAS či komprimované formě LAZ lze do systému GRASS naimportovat podobně jako data v textovém formátu, a to jako rastrovou mapu (r.in.lidar) anebo jako mapu vektorovou (v.in.lidar).

Rastrová reprezentace

Modul r.in.lidar podobně jako r.in.xyz (viz Textový formát XYZ) provádí agregaci vstupních bodů v aktuálním výpočetním regionu, a to na základě zvolené statistické metody (parametr method, výchozí metoda je průměrná hodnota mean).

Na rozdíl od výše zmíněného modulu umožňuje r.in.lidar nastavit výpočetní region pro import automaticky na základě vstupních dat. K tomu slouží přepínač -e. V tomto ohledu se hodí použít ještě přepínač -n, který nastaví po importu výpočetní region na základě vstupních dat. Prostorové rozlišení regionu nastavíme parametrem resolution.

r.in.lidar input=pf_VIMP27_g.laz output=pf_VIMP27_g resolution=1 -ne

Důležité

V případě, že vstupní soubor neobsahuje informace o souřadnicovém připojení, tak příkaz skončí chybou:

ERROR: Projection of dataset does not appear to match current location.

GRASS LOCATION PROJ_INFO is:
name: S-JTSK / Krovak East North
datum: S_JTSK
ellps: bessel
proj: krovak
lat_0: 49.5
lon_0: 24.83333333333333
alpha: 30.28813972222222
k: 0.9999
x_0: 0
y_0: 0
no_defs: defined
towgs84: 570.8,85.7,462.8,4.998,1.587,5.261,3.56

Import dataset PROJ_INFO is:
Dataset proj = 0 (unreferenced/unknown)

In case of no significant differences in the projection definitions,
use the -o flag to ignore them and use current location definition.
Consider generating a new location with 'location' parameter from
input data set.

V tomto případě, pokud jste si jisti, že vstupní data jsou lokalizována v souřadnicovém systému aktuální GRASS lokace, přidejte přepínač -o, který kontrolu souřadnicového systému přeskočí.

Tip

Rozsah souřadnic vstupních dat lze zjistit pomocí přepínače -p.

r.in.lidar input=pf_VIMP27_g.laz -p
Using LAS Library Version 'libLAS 1.8.1 with GeoTIFF 1.4.2 LASzip 2.0.1'
...
Number of Point Records:           4997968
...
Min X Y Z:                         -807500 -1.156e+06 804.294
Max X Y Z:                         -805000 -1.154e+06 1061.49
...

Z výše uvedeného je zřejmé, že jsou vstupní data v souřadnicovém systému S-JTSK EPSG:5514.

Poznámka

Pokud si přejete větší kontrolu nad procesem importu, tak lze podobně jako v případě importu textových dat rozložit proces do dvou kroků. Nejprve určit nastavení výpočetního regionu na základě vstupních dat a poté provést samotný import.

r.in.lidar input=pf_VIMP27_g.laz -sgo

Výsledek, v našem případě

n=-1154000.000000 s=-1155999.999000 e=-805000.000000 w=-807499.998000 b=804.294000 t=1061.487000

použijeme pro nastavení výpočetního regionu včetně požadovaného rozlišení (parametr res). Nezapomene na přepínač -a, který zarovná nastavení právě podle hodnoty prostorového rozlišení.

g.region n=-1154000.000 s=-1155999.999 e=-805000.000 w=-807499.998 b=804.294 t=1061.487 res=1 -a

Poté již provedeme import:

r.in.lidar input=pf_VIMP27_g.laz output=pf_VIMP27_g -o

Základní metadata importované rastrové mapy vypíšeme pomocí modulu r.info.

r.info map=pf_VIMP27_g
|   Rows:         2000                                                       |
|   Columns:      2500                                                       |
|   Total Cells:  5000000                                                    |
...
|            N:   -1154000    S:   -1156000   Res:     1                     |
|            E:    -805000    W:    -807500   Res:     1                     |
|   Range of data:    min = 804.313  max = 1061.487                          |
...

Vektorová reprezentace

Pro vytvoření vektorové mapy na základě vstupních dat slouží modul v.in.lidar.

v.in.lidar input=pf_VIMP27_g.laz output=pf_VIMP27_g

Důležité

Podobně jako v případě importu textových dat lze proces urychlit tím, že nebudeme vytvářet atributová data (pokud je nepotřebujeme, např. v případě již klasifikovaných dat určených pro tvorbu digitálního modelu terénu, viz kapitola Tvorba DMR a DMP) a současně přeskočíme tvorbu topologie, která u bodových dat stejně nedává smysl. V našem případě ještě použijeme přepínač -o, který přeskočí kontrolu souřadnicového systému.

v.in.lidar input=pf_VIMP27_g.laz output=pf_VIMP27_g  -otb
../_images/import-rast-vect-holes.png

Obr. 51 Ilustrace importu lidarových dat do rastrové a vektorové bodové mapy. V rastrové mapě jsou zřetelná místa bez vstupních bodových dat (no-data).

Základní metadata můžeme vypsat pomocí modulu v.info.

v.info map=pf_VIMP27_g
|   Number of points:       4997968         Number of centroids:  0          |
...
|               N:          -1154000    S:      -1155999.999                 |
|               E:           -805000    W:       -807499.998                 |
|               B:           804.294    T:          1061.487                 |

Hustotu importovaných bodů můžeme ověřit pomocí modulu v.lidar.edgedetection. Vzhledem k tomu, že tento modul používá pro výpočet nastavení aktualního výpočetního region, je potřeba jej nejprve nastavit pomocí g.region (nastavení regionu může trvat několik sekund neboť chybí u vstupních dat topologie a modul musí rozsah souřadnic spočítat přímo z bodových dat).

g.region vector=pf_VIMP27_g
v.lidar.edgedetection -e input=pf_VIMP27_g
Estimated point density: 0.9996
Estimated mean distance between points: 1