GISProjekt R

Zasięg – Boundary Box

Często chcemy uzyskać zasięg naszej warstwy wektorowej, tzw. bounding box. Jak to zrobić w R? Możemy zastosować funkcję extent z pakietu raster, która zwróci nam graniczne współrzędne warstwy:

library(raster)
extent(kolej)

> extent(kolej)
class       : Extent
xmin        : 638667.5
xmax        : 678777.7
ymin        : 490053.6
ymax        : 519583.1

Gdy chcemy uzyskać wektorową warstwę zawierającą zasięg, możemy skorzystać z używanej już wcześniej biblioteki rgeos. Biblioteka ta zawiera narzędzie o nazwie gEnvelope zwracające warstwę zasięgu, którą zapiszemy do zmiennej bbox:

library(rgeos)
bbox = gEnvelope(kolej)

Wyświetlmy wynik działania funkcji:

plot(bbox)

Dodajmy jeszcze warstwę z której tworzyliśmy zasięg:

plot(kolej, add = TRUE, col = "red")

Wygenerowaliśmy warstwę zasięgu warstwy kolej. A jak wygenerować zasięgi dla poszczególnych odcinków linii w warstwie kolej. Nic trudnego wystarczy do naszej funkcji gEnvelope dodać argument używany przez nas już wcześniej byid:

bbox_single = gEnvelope(kolej, byid = T)

Wyświetlmy wynik naszego działania:

plot(bbox_single)
plot(kolej,add = T,col="red")

Pamiętaj, że najpierw trzeba dane wektorowe wczytać! Do pokazania Wam funkcji gEnvelope wykorzystaliśmy dane z poprzednich wpisów.