Správa topologie

Při práci s vektory se nakonec vždy objeví hláška:

Vytvářím topologii ...
3791 primitiv zaregistrováno
Building areas:  100%
737 ploch vytvořeno
42 ostrovů vytvořeno
Přidávání ostrovů:  100%
Připojování centroidů:  100%
Topologie byla vytvořena.
Počet uzlů          :   2947
Počet primitiv      :   3791
Počet bodů          :   90
Počet linií         :   825
Počet hranic        :   2139
Počet centroidů     :   737
Počet ploch         :   737
Počet ostrovů       :   42

Což znamená, že se topologie vybudovala.

Topologii můžeme přebudovat modulem v.build

K čištění topolgie slouží v.clean (nástroje snap, break, rmline, ...)

v.clean

break
Na průsečíku linií vytvoří uzel (node).
rmdupl
Odstraní duplicitní linie, pozor na atributy.
rmdangle
Odstraňuje tzv. dangels („přestřelení ). Důležité je nastavit správnou hodnotu okolí (threshold).
chdangle
Změní datový typ tzv. dangels z hranice (boundary) na linii. Důležité je opět nastavit správnou hodnotu okolí (threshold).
rmbridge
Odstraňuje topologicky ilegální spojení mezi plochou a ostrovem nebo mezi dvěma ostrovy.
chbridge
Mění datový typ spojení mezi plochou a ostrovem nebo mezi dvěma ostrovy z hra nice (boundary) na linii.
snap
V závislosti na hodnotě „threshold jsou linie připojeny k nejbližším uzlům.
rmdac
Odstraňuje duplicitní centroidy ploch.
bpol
„Čištění topologie dat, která nejsou topologická (např. ShapeFile).
prune
Odstraňuje uzly v závislosti na zadané hodnotě threshold z linií a hranic, a to tak, aby byla topologie změněna nebo poškozena.
rmarea
Odstraňuje malé plochy v závislosti na zadané hodnotě threshold a přiřazuje je nejbližší velké ploše.
rmsa
Odstraňuje malé úhly mezi liniemi a uzly.

Příklad čištění topologie

Spojíme vektory cesty a reky:

GRASS> v.patch in=roads,streams out=cestyreky

    ...
    Počet uzlů          :   815
    Počet linií         :   929
    ...

Zobrazení topologie:

GRASS> d.vect mapa=cestyreky display=topo,shape
../_images/d_vect_topology.png

Vyčištění topologie, nástroj break:

GRASS> v.clean --help
GRASS> v.clean in=cestyreky out=cestyrekycisty tool=break

...
Počet uzlů          :   1026
Počet linií         :   1351
...
../_images/d_vect_topology02.png