Conversione da un CRS/proiezione a un altro
La conversione da un CRS o una proiezione a un’altra è gestita dai metodi spTransform() del pacchetto rgdal. spTransform() ha metodi per tutti gli oggetti sp, inclusi i SpatialPolygonsDataFrame, ma non funziona sugli oggetti raster. Questo perché trasformare un raster è un po’ più complicato: la griglia rettangolare trasformata non sarà più rettangolare. Se ti incuriosisce la trasformazione dei raster, dai un’occhiata a ?raster::projectRaster.
La trasformazione è semplice. Il primo argomento di spTransform(), x, è l’oggetto spaziale da trasformare e il secondo, CRS, è la specifica del CRS desiderato. Il CRS può essere indicato tramite una stringa PROJ4, che potresti costruire a mano, ma è molto più semplice prenderla da un oggetto esistente (ad esempio con la funzione proj4string()).
È il momento di portare i due dataset di poligoni nello stesso CRS.
Questo esercizio fa parte del corso
Visualizzare dati geospaziali in R
Istruzioni dell'esercizio
- Trasforma
neighborhoodsin modo che abbia lo stesso CRS dinyc_tractsusandospTransform()con l’argomentoCRSimpostato aproj4string(nyc_tracts). - Verifica la trasformazione guardando la
head()dicoordinates(neighborhoods). - Controlla che ora i dataset siano allineati tracciando
neighborhoods, poi tracciandonyc_tractsconadd = TRUEecol = "red", e infine tracciandowaterconadd = TRUEecol = "blue".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
library(sp)
library(raster)
# Use spTransform on neighborhoods: neighborhoods
# head() on coordinates() of neighborhoods
# Plot neighborhoods, nyc_tracts and water