Chuyển đổi từ một CRS/phép chiếu sang một CRS/phép chiếu khác
Quá trình chuyển đổi từ một CRS hoặc phép chiếu sang phép chiếu khác được xử lý bởi các phương thức spTransform() trong gói rgdal. spTransform() có phương thức cho mọi đối tượng sp, bao gồm SpatialPolygonsDataFrame, nhưng không hoạt động với đối tượng raster. Lý do là việc biến đổi raster phức tạp hơn; lưới hình chữ nhật sau khi biến đổi sẽ không còn là hình chữ nhật nữa. Nếu bạn tò mò về việc biến đổi raster, hãy xem ?raster::projectRaster.
Việc chuyển đổi khá đơn giản. Đối số đầu tiên của spTransform(), x, là đối tượng không gian cần chuyển đổi và đối số thứ hai, CRS, là đặc tả của CRS mong muốn. CRS có thể được chỉ định bằng chuỗi PROJ4, bạn có thể tự xây dựng, nhưng dễ hơn nhiều là lấy từ một đối tượng hiện có (ví dụ dùng hàm proj4string()).
Đến lúc đưa hai bộ dữ liệu polygon của bạn về cùng một CRS.
Bài tập này là một phần của khóa học
Trực quan hóa dữ liệu địa lý trong R
Hướng dẫn bài tập
- Chuyển đổi
neighborhoodsđể có cùng CRS vớinyc_tractsbằng cách dùngspTransform()với đối sốCRSđặt làproj4string(nyc_tracts). - Xác minh việc chuyển đổi bằng cách xem
head()củacoordinates(neighborhoods). - Kiểm tra xem các bộ dữ liệu đã khớp nhau chưa bằng cách vẽ
neighborhoods, sau đó vẽnyc_tractsvớiadd = TRUEvàcol = "red", và cuối cùng vẽwatervớiadd = TRUEvàcol = "blue".
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
library(sp)
library(raster)
# Use spTransform on neighborhoods: neighborhoods
# head() on coordinates() of neighborhoods
# Plot neighborhoods, nyc_tracts and water