Konwersja między układami CRS i odwzorowaniami
Konwersję między układami CRS lub odwzorowaniami obsługują metody spTransform() z pakietu rgdal. Funkcja spTransform() działa ze wszystkimi obiektami sp, w tym z SpatialPolygonsDataFrame, ale nie obsługuje obiektów raster. Wynika to z tego, że transformacja rastra jest nieco bardziej złożona – po przekształceniu prostokątna siatka przestaje być prostokątna. Jeśli chcesz dowiedzieć się więcej o transformowaniu rastrów, zajrzyj do ?raster::projectRaster.
Sama transformacja jest prosta. Pierwszy argument spTransform(), x, to obiekt przestrzenny do przekształcenia, a drugi, CRS, określa docelowy układ współrzędnych. Układ CRS można podać jako ciąg PROJ4 – można go skonstruować ręcznie, ale znacznie wygodniej jest pobrać go z istniejącego obiektu (np. za pomocą funkcji proj4string()).
Czas doprowadzić oba zbiory danych wielokątów do wspólnego układu CRS.
To ćwiczenie jest częścią kursu
Wizualizacja danych geoprzestrzennych w R
Instrukcje do ćwiczenia
- Przekształć
neighborhoodstak, aby miał taki sam układ CRS jaknyc_tracts, używającspTransform()z argumentemCRSustawionym naproj4string(nyc_tracts). - Sprawdź wynik transformacji, przeglądając
head()zcoordinates(neighborhoods). - Zweryfikuj, czy zbiory danych się pokrywają, rysując
neighborhoods, następnienyc_tractszadd = TRUEicol = "red", a na końcuwaterzadd = TRUEicol = "blue".
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
library(sp)
library(raster)
# Use spTransform on neighborhoods: neighborhoods
# head() on coordinates() of neighborhoods
# Plot neighborhoods, nyc_tracts and water