Convertendo de um CRS/projeção para outro
O processo de conversão de um CRS ou projeção para outro é feito pelos métodos spTransform() do pacote rgdal. O spTransform() tem métodos para todos os objetos sp, incluindo SpatialPolygonsDataFrame, mas não funciona com objetos raster. Isso acontece porque transformar um raster é um pouco mais complicado; a grade retangular transformada deixa de ser retangular. Você pode consultar ?raster::projectRaster se tiver curiosidade sobre como transformar rasters.
A transformação é simples. O primeiro argumento de spTransform(), x, é o objeto espacial a ser transformado e o segundo, CRS, é uma especificação do CRS desejado. O CRS pode ser especificado por uma string PROJ4, que você poderia construir manualmente, mas é muito mais fácil obtê-la de um objeto existente (por exemplo, com a função proj4string()).
Hora de colocar seus dois conjuntos de polígonos no mesmo CRS.
Este exercício faz parte do curso
Visualizando dados geoespaciais em R
Instruções do exercício
- Transforme
neighborhoodspara ter o mesmo CRS quenyc_tractsusandospTransform()com o argumentoCRSdefinido comoproj4string(nyc_tracts). - Verifique a transformação olhando o
head()decoordinates(neighborhoods). - Confira se os conjuntos agora se alinham plotando
neighborhoods, depois plotandonyc_tractscomadd = TRUEecol = "red", e por fim plotandowatercomadd = TRUEecol = "blue".
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
library(sp)
library(raster)
# Use spTransform on neighborhoods: neighborhoods
# head() on coordinates() of neighborhoods
# Plot neighborhoods, nyc_tracts and water