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:
1 2 3 4 5 6 7 8 9 |
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:
1 2 |
library(rgeos) bbox = gEnvelope(kolej) |
Wyświetlmy wynik działania funkcji:
1 |
plot(bbox) |
Dodajmy jeszcze warstwę z której tworzyliśmy zasięg:
1 |
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:
1 |
bbox_single = gEnvelope(kolej, byid = T) |
Wyświetlmy wynik naszego działania:
1 2 |
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.