CRS/투영 간 변환하기
하나의 CRS나 투영에서 다른 것으로 변환하는 작업은 rgdal 패키지의 spTransform() 메서드가 처리합니다. spTransform()은 SpatialPolygonsDataFrame을 포함한 모든 sp 객체에 대해 메서드를 제공하지만, raster 객체에는 작동하지 않아요. 래스터는 변환이 조금 더 복잡한데, 변환 후 직사각형 격자가 더 이상 직사각형이 아니게 되기 때문입니다. 래스터 변환이 궁금하시다면 ?raster::projectRaster를 참고하세요.
변환 자체는 간단합니다. spTransform()의 첫 번째 인수 x는 변환할 공간 객체이고, 두 번째 인수 CRS는 원하는 CRS의 정의입니다. CRS는 PROJ4 문자열로 지정할 수 있는데, 직접 작성할 수도 있지만, 기존 객체에서 가져오는 편이 훨씬 수월해요(예: proj4string() 함수 사용).
이제 두 개의 폴리곤 데이터셋을 동일한 CRS로 맞춰 보세요.
이 연습은 강의의 일부입니다
R로 지리공간 데이터 시각화하기
연습 안내
spTransform()을 사용해CRS인수를proj4string(nyc_tracts)로 설정하여neighborhoods를nyc_tracts와 동일한 CRS로 변환하세요.coordinates(neighborhoods)의head()를 확인해 변환이 적용됐는지 검증하세요.- 두 데이터셋이 제대로 맞춰졌는지 확인하려면, 먼저
neighborhoods를 그린 다음nyc_tracts를add = TRUE,col = "red"로 겹쳐 그리고, 마지막으로water를add = TRUE,col = "blue"로 그리세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
library(sp)
library(raster)
# Use spTransform on neighborhoods: neighborhoods
# head() on coordinates() of neighborhoods
# Plot neighborhoods, nyc_tracts and water