Von einem CRS/einer Projektion in ein anderes umwandeln
Die Umwandlung von einem CRS oder einer Projektion in ein anderes wird von den spTransform()-Methoden im Paket rgdal erledigt. spTransform() hat Methoden für alle sp-Objekte, einschließlich SpatialPolygonsDataFrame, funktioniert jedoch nicht für raster-Objekte. Das liegt daran, dass die Transformation eines Rasters etwas komplizierter ist; das transformierte rechteckige Gitter ist anschließend nicht mehr rechteckig. Wenn du neugierig bist, wie Raster transformiert werden, sieh dir ?raster::projectRaster an.
Die Transformation ist einfach. Das erste Argument von spTransform(), x, ist das zu transformierende räumliche Objekt, und das zweite, CRS, ist die Spezifikation des gewünschten CRS. Das CRS kann durch einen PROJ4-String angegeben werden, den du theoretisch selbst konstruieren könntest, aber es ist viel einfacher, ihn aus einem vorhandenen Objekt zu übernehmen (z. B. mit der Funktion proj4string()).
Zeit, deine beiden Polygon-Datensätze in dasselbe CRS zu bringen.
Diese Übung ist Teil des Kurses
Geodaten in R visualisieren
Anleitung zur Übung
- Transformiere
neighborhoodsso, dass es dasselbe CRS wienyc_tractshat, indem duspTransform()mit dem ArgumentCRS = proj4string(nyc_tracts)verwendest. - Überprüfe die Transformation, indem du dir das
head()voncoordinates(neighborhoods)ansiehst. - Prüfe, ob die Datensätze jetzt übereinanderliegen, indem du zuerst
neighborhoodsplottest, dannnyc_tractsmitadd = TRUEundcol = "red"und schließlichwatermitadd = TRUEundcol = "blue".
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
library(sp)
library(raster)
# Use spTransform on neighborhoods: neighborhoods
# head() on coordinates() of neighborhoods
# Plot neighborhoods, nyc_tracts and water